退役AGC独立Agent Runtime与CLI执行面
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m50s
Project CI / Backend tests (pull_request) Failing after 24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 6m20s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m50s
Project CI / Backend tests (pull_request) Failing after 24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 6m20s
- 删除 agent/runtime_driver、runtime_protocol、runtime_tools、runtime_actions、runtime_state、runtime_adapter、context_compaction、collaboration、delegation、goal 等自建 Runtime 执行面及专属测试与 fixture - CliCommand 收敛为 LlmStatus | EnvironmentCheck | PreviewServe,删除 --agent-run / --agent-task / --agent-goal-* / --agent-resume / --agent-context-compact 等 CLI 与 Tauri 命令白名单条目 - 外部 Runner 收缩为编辑器桥 RPC 与 runner.attach_gui_owner + GUI owner 参与锁 / watchdog,保留 --agent-runner - 前端删除 AgentRuntime* / AgentGoal* 状态与命令调用链,移除 agent-runtime real-e2e / steer / smoke / llm-transient-fault 脚本与对应 CI job - 内置工具错误收口为 typed error,抽取 agent/tool/error.rs 共享错误供各工具复用 - 新增 agent/redaction.rs、runtime_models.rs、json_sidecar.rs、task_lock.rs、process_identity.rs、art_manifest.rs、design_session.rs、direct_events.rs - 同步更新 ADR、decision-log、Runtime V1.1、App 实施计划、本地开发运维、pitfalls 与 CI 脚本
This commit is contained in:
@@ -120,12 +120,6 @@ echo '[rust-cache] warming AGC Rust lanes'
|
||||
cargo test --locked --manifest-path Cargo.toml \
|
||||
--bin genarrative-ai-game-creator-shell --no-run
|
||||
)
|
||||
cargo clean --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml
|
||||
echo '[rust-cache] warming AGC agent-run smoke executable'
|
||||
(
|
||||
cd apps/ai-game-creator-shell
|
||||
cargo build --manifest-path src-tauri/Cargo.toml
|
||||
)
|
||||
du -sh /opt/genarrative-ci/rust-cache/objects
|
||||
WARM
|
||||
docker cp "${container_id}:/opt/genarrative-ci/rust-cache/." "${work_dir}/snapshot/"
|
||||
|
||||
@@ -78,8 +78,6 @@ const aiGameCreatorViteConfigSource = fs.readFileSync(
|
||||
// - agc-rust-shard-1..4:AGC 壳自身的 Rust bin target 单测,按名单切成 4 片,片内仍保持
|
||||
// `--test-threads=1`;CI 由两条 lane job 各顺序运行两片,每个分片分组都会做一次
|
||||
// 「片并集等于全集且互斥」的自校验。
|
||||
// - agc-rust-smoke:会用 `src-tauri/Cargo.toml` spawn `cargo run` 的 agent-run smoke。
|
||||
// 与分片分开,免得把已经压到 4 分钟级的片 job 拖长。
|
||||
// - release:发布构建 smoke 和依赖发布产物的落盘断言。
|
||||
const nativeShellGateGroups = [
|
||||
'contract',
|
||||
@@ -90,7 +88,6 @@ const nativeShellGateGroups = [
|
||||
'agc-rust-shard-2',
|
||||
'agc-rust-shard-3',
|
||||
'agc-rust-shard-4',
|
||||
'agc-rust-smoke',
|
||||
'release',
|
||||
];
|
||||
const requestedNativeShellGroups = readRequestedNativeShellGroups(
|
||||
@@ -2396,14 +2393,6 @@ const steps = [
|
||||
'--shard-index=4',
|
||||
],
|
||||
},
|
||||
// agent-run smoke 会用 `src-tauri/Cargo.toml` spawn `cargo run`,因此单独一个分组,
|
||||
// 落在同样预热了 AGC 壳 Cargo 依赖的 job 里。
|
||||
{
|
||||
group: 'agc-rust-smoke',
|
||||
label: 'ai-game-creator-shell-agent-run-smoke',
|
||||
command: npmCommand,
|
||||
args: ['run', 'ai-game-creator-shell:agent-run:smoke'],
|
||||
},
|
||||
{
|
||||
group: 'release',
|
||||
label: 'ai-game-creator-shell-release-build-smoke',
|
||||
|
||||
@@ -26,7 +26,6 @@ CHUNK_BYTES = 8 * 1024**2
|
||||
JOBS = {
|
||||
"ai-game-creator-shell-rust-lane-1",
|
||||
"ai-game-creator-shell-rust-lane-2",
|
||||
"ai-game-creator-shell-rust-smoke",
|
||||
"ai-game-creator-shell-rust-crates",
|
||||
"backend-tests",
|
||||
"native-shell-tests",
|
||||
|
||||
@@ -11,7 +11,6 @@ import stat
|
||||
JOBS = {
|
||||
"ai-game-creator-shell-rust-lane-1",
|
||||
"ai-game-creator-shell-rust-lane-2",
|
||||
"ai-game-creator-shell-rust-smoke",
|
||||
"ai-game-creator-shell-rust-crates",
|
||||
"backend-tests",
|
||||
"native-shell-tests",
|
||||
|
||||
@@ -33,7 +33,6 @@ LABEL = re.compile(r'(?m)^(\s*-\s*[\"\x27]?)genarrative-ci:docker://(sha256:[0-9
|
||||
JOBS = {
|
||||
"AI game creator shell Rust lane 1/2",
|
||||
"AI game creator shell Rust lane 2/2",
|
||||
"AI game creator shell Rust smoke",
|
||||
"AI game creator shell Rust crates",
|
||||
"Backend tests", "Native shell tests", "Frontend tests",
|
||||
"Repository checks", "AI game creator shell web tests",
|
||||
@@ -41,7 +40,6 @@ JOBS = {
|
||||
RUST_JOB_IDS = {
|
||||
"AI game creator shell Rust lane 1/2": "ai-game-creator-shell-rust-lane-1",
|
||||
"AI game creator shell Rust lane 2/2": "ai-game-creator-shell-rust-lane-2",
|
||||
"AI game creator shell Rust smoke": "ai-game-creator-shell-rust-smoke",
|
||||
"AI game creator shell Rust crates": "ai-game-creator-shell-rust-crates",
|
||||
"Backend tests": "backend-tests",
|
||||
"Native shell tests": "native-shell-tests",
|
||||
|
||||
@@ -63,12 +63,11 @@ const jobNames = [
|
||||
'ai-game-creator-shell-web-tests',
|
||||
'ai-game-creator-shell-rust-lane-1',
|
||||
'ai-game-creator-shell-rust-lane-2',
|
||||
'ai-game-creator-shell-rust-smoke',
|
||||
'ai-game-creator-shell-rust-crates',
|
||||
] as const;
|
||||
|
||||
// crate 级测试只跑共享 / 平台 / 编辑器插件的 Cargo manifest,不构建 AGC 壳。
|
||||
// 壳的 Rust 分片与 agent-run smoke 会执行 build.rs,需要 npm 安装的 Claude Agent SDK。
|
||||
// 壳的 Rust 分片会执行 build.rs,需要 npm 安装的 Claude Agent SDK。
|
||||
const jobsWithoutNpmInstall: readonly string[] = [
|
||||
'ai-game-creator-shell-rust-crates',
|
||||
];
|
||||
@@ -92,7 +91,6 @@ const nativeShellGateGroupScripts = {
|
||||
'agc-rust-shard-2': 'npm run check:native-shells:agc-rust-shard-2',
|
||||
'agc-rust-shard-3': 'npm run check:native-shells:agc-rust-shard-3',
|
||||
'agc-rust-shard-4': 'npm run check:native-shells:agc-rust-shard-4',
|
||||
'agc-rust-smoke': 'npm run check:native-shells:agc-rust-smoke',
|
||||
release: 'npm run check:native-shells:release',
|
||||
} as const;
|
||||
|
||||
@@ -141,7 +139,6 @@ describe('project CI workflow', () => {
|
||||
const producers = [
|
||||
'ai-game-creator-shell-rust-lane-1',
|
||||
'ai-game-creator-shell-rust-lane-2',
|
||||
'ai-game-creator-shell-rust-smoke',
|
||||
'ai-game-creator-shell-rust-crates',
|
||||
'backend-tests',
|
||||
'native-shell-tests',
|
||||
@@ -175,8 +172,6 @@ describe('project CI workflow', () => {
|
||||
'Run AI game creator shell Rust shard 1/4',
|
||||
'ai-game-creator-shell-rust-lane-2':
|
||||
'Run AI game creator shell Rust shard 3/4',
|
||||
'ai-game-creator-shell-rust-smoke':
|
||||
'Run AI game creator shell agent-run smoke',
|
||||
'ai-game-creator-shell-rust-crates':
|
||||
'Run AI game creator shell shared crate gates',
|
||||
'backend-tests': 'Run server-rs workspace tests',
|
||||
@@ -242,9 +237,6 @@ describe('project CI workflow', () => {
|
||||
'cargo test --locked -p spacetime-module --no-fail-fast --manifest-path server-rs/Cargo.toml --no-run',
|
||||
);
|
||||
expect(warmCommands).toContain('cd apps/ai-game-creator-shell/src-tauri');
|
||||
expect(warmCommands).toContain(
|
||||
'cd apps/ai-game-creator-shell cargo build --manifest-path src-tauri/Cargo.toml',
|
||||
);
|
||||
expect(warmCommands).toContain(
|
||||
'cargo test --manifest-path apps/desktop-shell/src-tauri/Cargo.toml --no-run',
|
||||
);
|
||||
@@ -678,13 +670,6 @@ describe('project CI workflow', () => {
|
||||
nativeShellGateScript.match(/ai-game-creator-shell:check:rust:shell/gu),
|
||||
).toHaveLength(4);
|
||||
|
||||
const smokeJob = jobSection('ai-game-creator-shell-rust-smoke');
|
||||
expect(smokeJob).toContain(
|
||||
'run: npm run check:native-shells:agc-rust-smoke',
|
||||
);
|
||||
expect(smokeJob).toContain('cargo fetch --locked');
|
||||
expect(smokeJob).not.toContain('server-rs/Cargo.toml');
|
||||
|
||||
const cratesJob = jobSection('ai-game-creator-shell-rust-crates');
|
||||
expect(cratesJob).toContain(
|
||||
'run: npm run check:native-shells:agc-rust-crates',
|
||||
@@ -704,7 +689,7 @@ describe('project CI workflow', () => {
|
||||
// 拆开的 web / rust 两段必须还是原 `ai-game-creator-shell:check` 的同一条命令序列,
|
||||
// rust 段再拆成 crate 级与壳分片两段后在聚合脚本里保持同序。
|
||||
expect(rootPackageJson.scripts?.['ai-game-creator-shell:check']).toBe(
|
||||
'npm run ai-game-creator-shell:check:web && npm run ai-game-creator-shell:check:rust && npm run ai-game-creator-shell:agent-run:smoke',
|
||||
'npm run ai-game-creator-shell:check:web && npm run ai-game-creator-shell:check:rust',
|
||||
);
|
||||
expect(rootPackageJson.scripts?.['ai-game-creator-shell:check:web']).toBe(
|
||||
'npm run ai-game-creator-shell:typecheck && npm --prefix apps/ai-game-creator-shell run bundled-resources:test && npm run test -- apps/ai-game-creator-shell/tests',
|
||||
|
||||
Reference in New Issue
Block a user