From 13304f935edc3e2be1124ca156fab8de89d29e34 Mon Sep 17 00:00:00 2001 From: Forge Date: Tue, 22 Sep 2026 03:56:46 +0000 Subject: [PATCH] Record process recovery matrix, regression evidence and repair guidance --- CHANGELOG.md | 2 + docs/extensions/authoring.md | 41 + .../extensions-process-recovery-20260922.json | 2444 +++++++++++++++++ .../extensions-process-recovery-20260922.md | 135 + .../desktop-installed.png | Bin 0 -> 97557 bytes 5 files changed, 2622 insertions(+) create mode 100644 docs/validation/extensions-process-recovery-20260922.json create mode 100644 docs/validation/extensions-process-recovery-20260922.md create mode 100644 docs/validation/extensions-process-recovery-20260922/desktop-installed.png diff --git a/CHANGELOG.md b/CHANGELOG.md index f569f7342..1e03fb1d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -154,6 +154,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- Interrupted extension installs and changes recover their last consistent configuration and graph, while conflicting user edits produce repair instructions instead of being overwritten. + - Rust calls on `self` now stay with the enclosing type instead of linking to an unrelated type’s same-named method. Thanks @L4XB. (#1861) - Turning telemetry off now resets its identity and stops running processes from recording, sending, or restoring unsent data. (#1869) diff --git a/docs/extensions/authoring.md b/docs/extensions/authoring.md index 96375cdb6..45a755d59 100644 --- a/docs/extensions/authoring.md +++ b/docs/extensions/authoring.md @@ -231,3 +231,44 @@ and may bind the displayed selection via `selected: { version, integrity }`. They resolve only against the connected marketplace. Existing exact `url` plus `integrity` commands keep their artifact semantics. All commands retain the origin, window, local-host and bearer checks. + + +## Interrupted lifecycle operations + +Managed install/update/enable/disable/remove writes a recovery journal before +changing package trust or project settings. After a killed process, opening or +indexing the project, reading extension status/list, or starting another managed +operation automatically reconciles that journal. You can also run: + +```sh +codegraph extensions recover --path /absolute/path/project +``` + +Before the graph transaction commits, recovery restores the previous plugin +settings and trust and retains the old graph. After that commit, recovery +finishes the new state. Recovery does not execute extension code. A failed first +install into an uninitialized project returns that project to uninitialized. +Previously installed immutable packages remain available; an uncommitted new +package and transaction-owned temporary graph files are cleaned up. + +A live operation excludes another writer and pending-state readers. Wait for +it to finish and retry; an old timestamp is never permission to take its lock. +Modern ownership comes from a SQLite transaction, which the OS releases when +the process exits, rather than from a PID that could be reused. Legacy live or +ambiguous PID locks require operator confirmation, not a timeout override. + +Unrelated config fields and trust entries survive recovery. If plugin settings, +indexing rules, or transaction-owned trust/package bytes changed independently, +recovery stops with the conflicting field and journal path. Keep a copy of your +edit and the journal. Restore the indicated recorded plugin/settings or package +bytes, run recovery, then reapply the intended edit and reindex. Do not discard +a journal or remove a live lock to hide the conflict. Invalid/checksum-failing +journals need a verified backup or manual repair; they are never guessed away. +The companion returns the recovery error instead of claiming the project is +ready. + +The current validation covers process death on Linux using local files and +SQLite locking. Native Windows/macOS, machine power loss, network filesystems, +and mixed older writers that bypass the coordinator have not been validated. +Direct edits to the graph database, deliberate deletion of the coordination +files, and concurrent project destruction are outside this recovery contract. diff --git a/docs/validation/extensions-process-recovery-20260922.json b/docs/validation/extensions-process-recovery-20260922.json new file mode 100644 index 000000000..c833c99d9 --- /dev/null +++ b/docs/validation/extensions-process-recovery-20260922.json @@ -0,0 +1,2444 @@ +{ + "generated_at": "2026-09-22T03:56:46.028902+00:00", + "checkout": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "branch": "feature/extensions-author-kit-20260922", + "source_revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "platform": "Linux x86_64", + "node": "v22.23.2", + "source_hashes": { + "src/plugins/recovery.ts": "2919e820cc580f28a458cf4cade2c6af78371fb9455c6d993476875be4baea35", + "src/plugins/manager.ts": "48de2dc9059aa28a8d324c68172fa98dc4e36c05ed0c85c5fa718600324ba076", + "src/index.ts": "ff272caafad3fbf8c474326bc2bf23cc665c787ff8d4e0d2e23504c0d169dc6e", + "src/plugins/bridge.ts": "4bfbab7cb9dfbb12be7523e6c61cdbe69e965e280f9e06474419f79655fe55d0", + "src/plugins/cli.ts": "21ff297862a43b030ab3a761cf1023e3b41811c873cece7ae2911fe209fdb330", + "src/bin/codegraph.ts": "e29864579360da81ee072dd878d7cf8d81358c0f3c5d8b426b2d25e3326b81c1", + "scripts/validation/extensions-recovery.cjs": "8b8f53e05cd5115db17b45c8c165f66eef8d051f2a49b97df14a5711482fc23b", + "scripts/validation/extensions-runtime.test.cjs": "18e92220c7e39f08e8063940b5410b7579b02d2869cc123e7ef8f9205c7b249d", + "scripts/validation/extensions-compatibility.cjs": "7fa68bf41f1db9580cb8794e5ef07d329c1bd254d3fe5645431a2e0f2ce55ea7", + "scripts/validation/marketplace-browser.cjs": "76194905d863800ad7d173d54137eb0195038fde2bae9a1eb450d6f2c0be3153" + }, + "compiled_hashes": { + "dist/index.js": "119ef1b12f4943fbecd4bb30c58c3ca4a67cb6d857dc173d2a42084e27d15248", + "dist/plugins/recovery.js": "77e109522130bfd39c34eb73e540380928050cac49f8e8e65af4f9909ad3d33e", + "dist/plugins/manager.js": "143535f6590b35b55180f48d39b6ab6d2d94062938da418c8ac5bdf856ee4400", + "dist/plugins/bridge.js": "a98b1159482e5b312dd40d5fbf0387e0d52e8ffde5ff56f0de61b3187f55ef12", + "dist/plugins/cli.js": "7ac05be6d5bc7637bde48006c948a6c2ac326ff4e0fa163e6f4ceb04e3a69dd1", + "dist/bin/codegraph.js": "e97fd6d507fb6735cdadff6277c77f6fd760a881f177b19ebf94a3971572274c" + }, + "receipts": [ + { + "receipt": { + "path": ".qa/recovery/recovery-final-build.json", + "sha256": "278a7dc5b926f12b226e7e4988e76d273f07f8bf33be38764830a2dba821c3a8", + "bytes": 383 + }, + "log": { + "path": ".qa/recovery/recovery-final-build.log", + "sha256": "fe66a7e58369256409c964c3e6f5ac356f8c97968f0185bbab1a2f5c3f40ad5b", + "bytes": 5016 + }, + "result": { + "command": [ + "npm", + "run", + "build" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:49:35.937493+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": "", + "exit_code": 0, + "seconds": 33.999, + "finished_at": "2026-09-22T03:50:09.936850+00:00", + "summary": [] + } + }, + { + "receipt": { + "path": ".qa/recovery/recovery-kills-final.json", + "sha256": "a9c4dc48c99028a30dd6fade9e2e54d6554be40965764b01e55f4e83906d29ac", + "bytes": 411 + }, + "log": { + "path": ".qa/recovery/recovery-kills-final.log", + "sha256": "f7eb010cd04554b67e09c570d41c5a50f27f474b7da4b4dc71cebd92edeb66ec", + "bytes": 38281 + }, + "result": { + "command": [ + "node", + "scripts/validation/extensions-recovery.cjs" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:50:32.911515+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": "", + "exit_code": 0, + "seconds": 108.392, + "finished_at": "2026-09-22T03:52:21.303515+00:00", + "summary": [] + } + }, + { + "receipt": { + "path": ".qa/recovery/recovery-focused-final.json", + "sha256": "b8a2cb092096fe72e87aafd8342ffc636c102c42f8139bf16202074c3742cad3", + "bytes": 1272 + }, + "log": { + "path": ".qa/recovery/recovery-focused-final.log", + "sha256": "db1ce0492571d249ff558d560ef94dacbfadfb83f6afdae144d533ba5794a3eb", + "bytes": 21953 + }, + "result": { + "command": [ + "npx", + "vitest", + "run", + "__tests__/extension-releases.test.ts", + "__tests__/extension-marketplace.test.ts", + "__tests__/extension-author.test.ts", + "__tests__/plugins.test.ts", + "__tests__/extension-explore.test.ts", + "__tests__/npm-sdk.test.ts", + "__tests__/cli-install-init.test.ts", + "__tests__/cli-version.test.ts", + "__tests__/status-json.test.ts", + "__tests__/sync.test.ts", + "__tests__/sync-rebuild-convergence.test.ts", + "__tests__/index-command.test.ts", + "__tests__/db-reopen-on-replace.test.ts", + "__tests__/concurrent-locking.test.ts", + "__tests__/watcher.test.ts", + "--maxWorkers=2", + "--minWorkers=1" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:52:29.471784+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": " M CHANGELOG.md\n M docs/extensions/authoring.md\n", + "exit_code": 0, + "seconds": 56.356, + "finished_at": "2026-09-22T03:53:25.827407+00:00", + "summary": [ + "Test Files 15 passed (15)", + "Tests 157 passed | 1 skipped (158)", + "Duration 54.38s (transform 4.55s, setup 0ms, collect 16.10s, tests 81.30s, environment 5ms, prepare 2.37s)" + ] + } + }, + { + "receipt": { + "path": ".qa/recovery/recovery-workers-final.json", + "sha256": "3a3544592ce2b3d858a15d8f95fd55d0b4b8fc390278150510aec66983b805fe", + "bytes": 537 + }, + "log": { + "path": ".qa/recovery/recovery-workers-final.log", + "sha256": "4d0efb705fc4bba2fe8f683ce9a13d1bae8b9917d9a2c71612ae7cb16b9e678c", + "bytes": 5538 + }, + "result": { + "command": [ + "node", + "--test", + "scripts/validation/extensions-runtime.test.cjs" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:54:09.110014+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": " M CHANGELOG.md\n M docs/extensions/authoring.md\n?? docs/validation/extensions-process-recovery-20260922.md\n", + "exit_code": 0, + "seconds": 7.902, + "finished_at": "2026-09-22T03:54:17.011802+00:00", + "summary": [] + } + }, + { + "receipt": { + "path": ".qa/recovery/recovery-compatibility-final.json", + "sha256": "4eb0c1f25b6ec3068ed8ad3a4bab022448156851a89a6095076d21d924d9a1fc", + "bytes": 525 + }, + "log": { + "path": ".qa/recovery/recovery-compatibility-final.log", + "sha256": "2e073520c22f630c5dc9bade5d2b9c84a576a7a7f7ffb3cc445890478c03c24e", + "bytes": 3121 + }, + "result": { + "command": [ + "node", + "scripts/validation/extensions-compatibility.cjs" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:54:35.738686+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": " M CHANGELOG.md\n M docs/extensions/authoring.md\n?? docs/validation/extensions-process-recovery-20260922.md\n", + "exit_code": 0, + "seconds": 25.563, + "finished_at": "2026-09-22T03:55:01.301546+00:00", + "summary": [] + } + }, + { + "receipt": { + "path": ".qa/recovery/recovery-browser-final.json", + "sha256": "d0513198f9afa7a5ac9a427d2e5469e703e9fc9c60027598db6ed3dc7d17ca60", + "bytes": 520 + }, + "log": { + "path": ".qa/recovery/recovery-browser-final.log", + "sha256": "a75f9b58660eb4607daaf5c0df45fd5fec719f69f893f7c6925f296fc6409ed2", + "bytes": 2153 + }, + "result": { + "command": [ + "node", + "scripts/validation/marketplace-browser.cjs" + ], + "cwd": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph", + "started_at": "2026-09-22T03:55:27.375244+00:00", + "revision": "9ab6959d26fc8b1deddecbb136f08e109505e055", + "working_tree": " M CHANGELOG.md\n M docs/extensions/authoring.md\n?? docs/validation/extensions-process-recovery-20260922.md\n", + "exit_code": 0, + "seconds": 14.125, + "finished_at": "2026-09-22T03:55:41.500166+00:00", + "summary": [] + } + } + ], + "artifacts": [ + { + "path": ".qa/recovery/process-recovery-final/matrix.json", + "sha256": "1a1d6ba5b63a2c26aa250db38aadce277b0bc2c9749f7492844dfa1ddc2a1c1a", + "bytes": 5091 + }, + { + "path": ".qa/recovery/process-recovery-final/result.json", + "sha256": "8e54daf817cbf43253adf0b7bf368d4ab2c40c884990a5c7be38d767c473271f", + "bytes": 5617 + }, + { + "path": ".qa/recovery/process-recovery-final/commands.json", + "sha256": "68c26de5b6d620f550cfc459100da96144542dd67c2d534aca4364945d06913b", + "bytes": 57497 + }, + { + "path": ".qa/recovery/compat-after-recovery/result.json", + "sha256": "66a6600aeddc9abe7821d1a0a7e0f62e9517754fa27c3cfa7345f3eb2a48eab2", + "bytes": 7848 + }, + { + "path": ".qa/recovery/compat-after-recovery/commands.json", + "sha256": "8f0e649ba2fb7796da630b9e50f13648baeb14a45c9308d0f077c28abf13b4b1", + "bytes": 4742 + }, + { + "path": ".qa/recovery/browser-after-recovery/result.json", + "sha256": "eee8468a62f4b9690c1f3136a72f2797c1e4e03020aa0cf47b30a5ad3461f081", + "bytes": 672 + }, + { + "path": "docs/validation/extensions-process-recovery-20260922/desktop-installed.png", + "sha256": "d0701b5a77ea935c4744278b30f28fbcdf007cceada3c780870784305e8cb300", + "bytes": 97557 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-1.log", + "sha256": "64f1ac60c8ad25f6569563d24914759b70acf1b73e5cffeef4feb12ce4c226b9", + "bytes": 243 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-10.log", + "sha256": "f03135c33691b92a8cd0834b0ab07175f81eb68d071d2e495c7ef96f6cbb5e69", + "bytes": 143 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-11.log", + "sha256": "08588ddba0b05a3667ca2e4858c6625aaa7cfdd4b248283e284b36ca7bfd3b0f", + "bytes": 263 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-12.log", + "sha256": "303e141e174839575e69f0ae0ddf92ead0470e6dca049ac1edd45fb64b607bde", + "bytes": 95 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-2.log", + "sha256": "d93afb7d84337fce0fb443fb79883800bb478b4c94635140b8f67f9734ed2b26", + "bytes": 293 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-3.log", + "sha256": "78fff926f4f8969d8e1705c0a1271cbd63b822579f81d715c2042ad94c80ad45", + "bytes": 122 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-4.log", + "sha256": "83a7b90bfd2c211c6fb4afcf72e261ef7b42bfd6dc21cfb72d530fb970aef44a", + "bytes": 290 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-5.log", + "sha256": "5a0ae6eb30e6659515338894feeb98ebeabbcd4f66e01f425110e75e83d7986d", + "bytes": 257 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-6.log", + "sha256": "38c1d85e306b15c18732c81df087390b3dfbd3873bc8836e36be492a1fb8a7fa", + "bytes": 530 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-7.log", + "sha256": "74798a107028fa391113eb0b6fa7efac8bfee9c644dbb121892993443666f2f0", + "bytes": 241 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-8.log", + "sha256": "be1f77d7dd153abaab34b2a75bdd5c2d036b406fc11da38ee8d4362bd4c26387", + "bytes": 241 + }, + { + "path": ".qa/recovery/compat-after-recovery/command-9.log", + "sha256": "fec96b4acb520e5ee4d8a42660e9a876f54f08d60c1fc98bcc7b1dcfd2ba6748", + "bytes": 142 + } + ], + "recovery_matrix": { + "platform": "linux", + "node": "v22.23.2", + "rows": [ + { + "action": "install", + "boundary": "prepared", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "install", + "boundary": "config_written", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "install", + "boundary": "graph_before_commit", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "install", + "boundary": "graph_committed", + "decision": "complete", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "update", + "boundary": "prepared", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "update", + "boundary": "config_written", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "update", + "boundary": "graph_before_commit", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "update", + "boundary": "graph_committed", + "decision": "complete", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "disable", + "boundary": "prepared", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "disable", + "boundary": "config_written", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "disable", + "boundary": "graph_before_commit", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "disable", + "boundary": "graph_committed", + "decision": "complete", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "enable", + "boundary": "prepared", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "enable", + "boundary": "config_written", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "enable", + "boundary": "graph_before_commit", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "enable", + "boundary": "graph_committed", + "decision": "complete", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "remove", + "boundary": "prepared", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "remove", + "boundary": "config_written", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "remove", + "boundary": "graph_before_commit", + "decision": "rollback", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "remove", + "boundary": "graph_committed", + "decision": "complete", + "repeatedRecovery": true, + "passed": true + }, + { + "action": "update", + "boundary": "package_ready", + "decision": "rollback and discard new package/trust", + "passed": true + }, + { + "action": "update", + "boundary": "trust_written", + "decision": "rollback and discard new package/trust", + "passed": true + }, + { + "action": "first uninitialized install", + "boundary": "graph_before_commit", + "entry": "CLI status", + "passed": true + }, + { + "action": "kill recovery itself", + "boundary": "recovery_config", + "decision": "idempotent rollback", + "passed": true + }, + { + "action": "live aged owner", + "decision": "mutation/read/index excluded; no timeout stealing", + "passed": true + }, + { + "action": "PID reuse and legacy owners", + "decision": "SQLite ownership authoritative; live legacy blocked, dead legacy reclaimed", + "passed": true + }, + { + "action": "torn records", + "decision": "invalid journal/unknown owner fail closed; valid journal recovers torn owner", + "passed": true + }, + { + "action": "unrelated config/trust edits", + "boundary": "config_written", + "decision": "preserved", + "passed": true + }, + { + "action": "conflicting plugin edit", + "boundary": "config_written", + "decision": "no overwrite; actionable repair then recovery", + "passed": true + }, + { + "action": "unrelated config/trust edits", + "boundary": "graph_committed", + "decision": "preserved", + "passed": true + }, + { + "action": "conflicting plugin edit", + "boundary": "graph_committed", + "decision": "no overwrite; actionable repair then recovery", + "passed": true + }, + { + "action": "live aged/torn legacy graph lock", + "decision": "no age-based stealing or guessing", + "passed": true + }, + { + "action": "graph-affecting external config edit", + "decision": "preserved and blocked with repair instructions", + "passed": true + }, + { + "action": "changed installed package", + "decision": "trust revalidated; blocked until bytes restored", + "passed": true + }, + { + "action": "long-lived reader after fresh-process recovery", + "decision": "old cached node invalidated by commit marker", + "passed": true + } + ], + "commands": 103 + }, + "child_receipts": [ + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/1", + "install", + "prepared" + ], + "pid": 32, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.332, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-1.log", + "sha256": "bc26f2ff1e8dac0c39ba9d8b959410b2bb75a86bfcd2026542cbeeebb3125377" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/1", + "list" + ], + "pid": 40, + "exit": 0, + "signal": null, + "seconds": 0.38, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-2.log", + "sha256": "aa39d718868ea7ef39c90530812442d2fbc5c18089e87b2b1358e76e4874dc18" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/1", + "recover" + ], + "pid": 48, + "exit": 0, + "signal": null, + "seconds": 0.358, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-3.log", + "sha256": "fb5c5d389b4d012478a2a17da9182c02c0d7e6d2ebb86bac7b5a75b17f24fd29" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/2", + "install", + "config_written" + ], + "pid": 67, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.345, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-4.log", + "sha256": "52640aeb07d004c5c39074d85c3f68c500cfa7d13bba3f1c6315353daef6b514" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/2", + "index" + ], + "pid": 75, + "exit": 0, + "signal": null, + "seconds": 1.25, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-5.log", + "sha256": "3f2f4d85d914bf73d31e9454762d229373c0dcc1901465fc1596e862b8b29ad2" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/2", + "recover" + ], + "pid": 99, + "exit": 0, + "signal": null, + "seconds": 0.335, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-6.log", + "sha256": "f6463d33bc17428833cb2e5125e933ab9f9de4758b104712dc38a3dec99c3560" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/3", + "install", + "graph_before_commit" + ], + "pid": 118, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.313, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-7.log", + "sha256": "d7456ede8bf4537e129c9c571d40c0b6874fbd6939f8cec5cc936569ed1da0f2" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/3", + "inspect" + ], + "pid": 141, + "exit": 0, + "signal": null, + "seconds": 0.374, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-8.log", + "sha256": "1466ac5b418ae402cfb5098609d30e322254d51738bc3e98bd1483780adcb7ea" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/3", + "recover" + ], + "pid": 149, + "exit": 0, + "signal": null, + "seconds": 0.341, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-9.log", + "sha256": "29cb72fa67457d2012930ab1b9a6335a2a4940b153204f851661cdf3cb485ed9" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/4", + "install", + "graph_committed" + ], + "pid": 168, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.205, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-10.log", + "sha256": "eda344de320bafbf7108050b8b99881d9a69cfd1fffdb4b7bc33c58374090fba" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/4", + "inspect" + ], + "pid": 191, + "exit": 0, + "signal": null, + "seconds": 0.373, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-11.log", + "sha256": "01a00e0febd6f3eca8d07a0505409ac50d7fd30eb80d3272677b79773869b85c" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/4", + "recover" + ], + "pid": 199, + "exit": 0, + "signal": null, + "seconds": 0.357, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-12.log", + "sha256": "5cb84409a0b7ca7cfcd4e8c3952bb85847fee65efc265c15b7d119d9ba9b4602" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/5", + "update", + "prepared" + ], + "pid": 229, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.335, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-13.log", + "sha256": "c4571a8f18daa53f79a768c14f554f865c0e08239f2d645fb7f4760d233ba47d" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/5", + "list" + ], + "pid": 237, + "exit": 0, + "signal": null, + "seconds": 0.364, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-14.log", + "sha256": "beec5f36627591d6786976967bd3a5de8c361ff680493fa1ad40e267bbaed98e" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/5", + "recover" + ], + "pid": 245, + "exit": 0, + "signal": null, + "seconds": 0.357, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-15.log", + "sha256": "97a30c218e16eeecab76c12f9ca171e365f762be06ce4a5ad30e86142008d847" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/6", + "update", + "config_written" + ], + "pid": 275, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.373, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-16.log", + "sha256": "37e2fdca619301dde6b5c090be432b29bccfac00ea567d7439c3c524dffc2727" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/6", + "index" + ], + "pid": 283, + "exit": 0, + "signal": null, + "seconds": 1.25, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-17.log", + "sha256": "dabb28dd6e09f76bcb1b9bb6deede7bf832509dfddeef19805b472f22aa4a3e6" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/6", + "recover" + ], + "pid": 307, + "exit": 0, + "signal": null, + "seconds": 0.345, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-18.log", + "sha256": "e94351bf2d5116ab2d2f6716d3a90fc8ad194e074805a60599243760ec287a91" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/7", + "update", + "graph_before_commit" + ], + "pid": 337, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.219, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-19.log", + "sha256": "20113171708069c7cd20647a5a1774215bd5fa0ab3bac7ae4d75015ef7488264" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/7", + "inspect" + ], + "pid": 360, + "exit": 0, + "signal": null, + "seconds": 0.422, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-20.log", + "sha256": "a177017d9d91352bffadf07f8cabfcb573a3e25cf8e26442f35dc813973ce865" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/7", + "recover" + ], + "pid": 368, + "exit": 0, + "signal": null, + "seconds": 0.374, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-21.log", + "sha256": "fb5138d42e3aabee539b104ca93e0718b391ab6e6c7ff17e68dbf236e43f5baa" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/8", + "update", + "graph_committed" + ], + "pid": 398, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.221, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-22.log", + "sha256": "f4d9be8a4e5e86a4e7929dbd86fccfb45c035ce3ac52a45178e1610302724c76" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/8", + "inspect" + ], + "pid": 421, + "exit": 0, + "signal": null, + "seconds": 0.398, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-23.log", + "sha256": "cf784224c683e127118eeb25f2a8e2aa169dfe42881ff662eed22b4fac5b8ff0" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/8", + "recover" + ], + "pid": 429, + "exit": 0, + "signal": null, + "seconds": 0.346, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-24.log", + "sha256": "7dc12c3ad7f0ed14943a0ed70422cf5ebc9362f25e71a62beac81cdcba8accc1" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/9", + "disable", + "prepared" + ], + "pid": 459, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.322, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-25.log", + "sha256": "500cd6b5b73a7ffddd3c69ea1a1b99febf11c8a88a5150a7ae817876213b5b21" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/9", + "list" + ], + "pid": 467, + "exit": 0, + "signal": null, + "seconds": 0.395, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-26.log", + "sha256": "aaf517c802e84e3100066814c88fc40d56691d14ef53fb9bb485182b31b9712d" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/9", + "recover" + ], + "pid": 475, + "exit": 0, + "signal": null, + "seconds": 0.347, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-27.log", + "sha256": "48eac12f29d6a0183fcf9486b253ff5cc76cfdb8edabdbfebb7a6da959c11ad0" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/10", + "disable", + "config_written" + ], + "pid": 505, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.338, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-28.log", + "sha256": "3c7286b6f4df28e624fd4f420439598db2664303aae3d0ce6bab67cdde357b3a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/10", + "index" + ], + "pid": 513, + "exit": 0, + "signal": null, + "seconds": 1.33, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-29.log", + "sha256": "5be0e4ef805046c37608ea94022aed18cfbf32266af9576367086a6721b9e622" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/10", + "recover" + ], + "pid": 537, + "exit": 0, + "signal": null, + "seconds": 0.346, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-30.log", + "sha256": "b8b8e120880878e8eaaff6e0a92c119ca50eaff4b21f76584e81e18574add5f2" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/11", + "disable", + "graph_before_commit" + ], + "pid": 567, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.212, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-31.log", + "sha256": "70cf2aad762dcefed81ee83a12e3a350918d017eb6e46a3e676e2d8e73190d9b" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/11", + "inspect" + ], + "pid": 590, + "exit": 0, + "signal": null, + "seconds": 0.426, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-32.log", + "sha256": "48b394f0e026e93392e5f31894a17b1eadfba8a71ae64ed7d9f68dc43acaac51" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/11", + "recover" + ], + "pid": 598, + "exit": 0, + "signal": null, + "seconds": 0.374, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-33.log", + "sha256": "cde030996371cfe5632590ef92de666cb37577d712f032dc919f72d001cdb27f" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/12", + "disable", + "graph_committed" + ], + "pid": 628, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.191, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-34.log", + "sha256": "828a7c23b02d3acad2938d0315fbe7f061654350ccc0e7bd4609437d1a16bf6c" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/12", + "inspect" + ], + "pid": 651, + "exit": 0, + "signal": null, + "seconds": 0.414, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-35.log", + "sha256": "c1cf6b359352d73d65a005d5c66cf9976e8754c46c403d324c45fd29f0476846" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/12", + "recover" + ], + "pid": 659, + "exit": 0, + "signal": null, + "seconds": 0.391, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-36.log", + "sha256": "890a18d3914d44f980ef044952015cc5866795a83cbd4f4ef5d1656fe4043839" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/13", + "enable", + "prepared" + ], + "pid": 700, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.373, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-37.log", + "sha256": "afd70f5317bbf61bd0b93ffa4177167e4fb9a5b0143a03106bc760322b82d23f" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/13", + "list" + ], + "pid": 708, + "exit": 0, + "signal": null, + "seconds": 0.371, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-38.log", + "sha256": "b502f26ae461380a4058d4fe71f49d6b13aca14d21003c807216788c464751fa" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/13", + "recover" + ], + "pid": 716, + "exit": 0, + "signal": null, + "seconds": 0.337, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-39.log", + "sha256": "0ea4ec02fe00f55686b8ef39b4abfb03365d030374c34f8193330e6b1d08bcae" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/14", + "enable", + "config_written" + ], + "pid": 757, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.342, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-40.log", + "sha256": "8fee9856cd069c9f9c77c17e4e580ab7769ab091bb5a38039a2f949ae856b762" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/14", + "index" + ], + "pid": 765, + "exit": 0, + "signal": null, + "seconds": 1.241, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-41.log", + "sha256": "7ddec23e2c4688bab5ddd9672a705cfe0a01218ce14a60bac0ad7e2a568573ca" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/14", + "recover" + ], + "pid": 789, + "exit": 0, + "signal": null, + "seconds": 0.321, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-42.log", + "sha256": "63ce882c64441730224bc92495b64123a5674cab8e3347ef177e03a58fa8238e" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/15", + "enable", + "graph_before_commit" + ], + "pid": 830, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.124, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-43.log", + "sha256": "cbbfbb55d221fd270351f974d5d32903c38c8ebb26d716948dda7e2704dd3fa0" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/15", + "inspect" + ], + "pid": 853, + "exit": 0, + "signal": null, + "seconds": 0.386, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-44.log", + "sha256": "3ba970a5ff8ec524187ece006e0b5022d182b6227af747411ea77f0810507e9d" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/15", + "recover" + ], + "pid": 861, + "exit": 0, + "signal": null, + "seconds": 0.374, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-45.log", + "sha256": "e825390bfdc8deb61c6c754a4298edecfdb67aa0a88e7c2304cb0db948db436e" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/16", + "enable", + "graph_committed" + ], + "pid": 902, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.379, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-46.log", + "sha256": "24e80fce4ead9e748fd195e80d2078a81476345d1c7c2f521390bf73a4474cca" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/16", + "inspect" + ], + "pid": 925, + "exit": 0, + "signal": null, + "seconds": 0.396, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-47.log", + "sha256": "c3c975573441a767a5344b6b0b98899f81eb68d641086daa421ae7e383f980e9" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/16", + "recover" + ], + "pid": 933, + "exit": 0, + "signal": null, + "seconds": 0.38, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-48.log", + "sha256": "9b146b8af0f360df5057f799f7fef44e2fca682c76f274f686b1027ecbf74511" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/17", + "remove", + "prepared" + ], + "pid": 963, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.369, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-49.log", + "sha256": "3e4bbc00d7d13203b4c1fedf83013bdfe51146b6ff46b2faf8f4ef09109ff983" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/17", + "list" + ], + "pid": 971, + "exit": 0, + "signal": null, + "seconds": 0.385, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-50.log", + "sha256": "2987c4f4fd5bc0bb4f8bfd48c2a2ad4248ed7266502415e72c3b2d675d6dba85" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/17", + "recover" + ], + "pid": 979, + "exit": 0, + "signal": null, + "seconds": 0.415, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-51.log", + "sha256": "aa5cfe8c218c13117de51ee52175283ee8ccae6fa5784d3758ad489532af03fb" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/18", + "remove", + "config_written" + ], + "pid": 1009, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.357, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-52.log", + "sha256": "9764650a97cae72fbe904944d823c2f2416cf87ee6754767d5a52a46e4238dfa" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/18", + "index" + ], + "pid": 1017, + "exit": 0, + "signal": null, + "seconds": 1.258, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-53.log", + "sha256": "82c1199a115204c7be173e9cdd375e7fd236277acc7dddccb822ce3b9a88f380" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/18", + "recover" + ], + "pid": 1041, + "exit": 0, + "signal": null, + "seconds": 0.349, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-54.log", + "sha256": "eb60c8ce7e0c9c025afc7b7c9162653f455ddbc47bac88d9f14e247bc9f2bdcc" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/19", + "remove", + "graph_before_commit" + ], + "pid": 1071, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.207, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-55.log", + "sha256": "3ac410feb459c607fb7f7bad79dbe331d727d07ff8d4800d53519a840da490ad" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/19", + "inspect" + ], + "pid": 1094, + "exit": 0, + "signal": null, + "seconds": 0.373, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-56.log", + "sha256": "7b0c4320d1daa41de5ef37676a8a695279ba3913d2669b96b32fde30f0d92026" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/19", + "recover" + ], + "pid": 1102, + "exit": 0, + "signal": null, + "seconds": 0.327, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-57.log", + "sha256": "b376232604c3c54101e20b534e80b72331afb5cbf4862c562a539626a475265f" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/20", + "remove", + "graph_committed" + ], + "pid": 1132, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.183, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-58.log", + "sha256": "fe9f37cb0925427373b1339321d5dcd5ba3418a2c332802a2220a9d8b89515b3" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/20", + "inspect" + ], + "pid": 1155, + "exit": 0, + "signal": null, + "seconds": 0.389, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-59.log", + "sha256": "10ec309cd7d5421c14d060a7f99014c5dbbf17044d43a3b131727e3630aec7e4" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/20", + "recover" + ], + "pid": 1163, + "exit": 0, + "signal": null, + "seconds": 0.35, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-60.log", + "sha256": "3c67f0eb2ff025f068a1636fca4742685510df91a7ae70bc6d02bfdc54913dbe" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/21", + "update", + "package_ready" + ], + "pid": 1193, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.366, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-61.log", + "sha256": "af7ff482c0aaac7c91ab3e8f36c8a005cdc2c11c9792204e88c9c0a4bd4fba22" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/21", + "inspect" + ], + "pid": 1201, + "exit": 0, + "signal": null, + "seconds": 0.445, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-62.log", + "sha256": "3543866e1f54685efe696330eb961264de674417934b7ab30e6f79109bc2a58f" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/22", + "update", + "trust_written" + ], + "pid": 1231, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.341, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-63.log", + "sha256": "ec56ae732bd987a0427e3442533a8ed63633feb64a8edd0a2a19cadb8ef6ba1c" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/22", + "inspect" + ], + "pid": 1239, + "exit": 0, + "signal": null, + "seconds": 0.419, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-64.log", + "sha256": "ee8169f7aec183eae668d136c9b55869ebeb717872cc2c737172a82791a29222" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/23", + "install", + "graph_before_commit" + ], + "pid": 1247, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.359, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-65.log", + "sha256": "4860334b96f47722c6ce5a31d50fa630b887dee50236c224375bc6e3298a6015" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "status", + "/tmp/cg-kill-owned-5KrJhE/23", + "--json" + ], + "pid": 1270, + "exit": 0, + "signal": null, + "seconds": 0.216, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-66.log", + "sha256": "071b726e1f7cefa685786e406baa6c3a6d1b53b0cdfc006c00fdd5a04d39e88a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/24", + "update", + "config_written" + ], + "pid": 1300, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.332, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-67.log", + "sha256": "5fd69cbd5d6c270fe255756264af545417f67fabca4a3830ba8e3a5ca23d7fdd" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/24", + "inspect", + "recovery_config" + ], + "pid": 1308, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.384, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-68.log", + "sha256": "71d204d502b6e4f846fc66c5e832a27dcdeac0ad83aa13c587b05ff8999d5b97" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/24", + "inspect" + ], + "pid": 1316, + "exit": 0, + "signal": null, + "seconds": 0.382, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-69.log", + "sha256": "39a6979f1a6e3606204b74f97725c1783517852396f296c7a45b8717afa2c32a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/25", + "install" + ], + "pid": 1354, + "exit": 1, + "signal": null, + "seconds": 0.345, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-70.log", + "sha256": "1467c8036a3a7f5c44f8d3eef194239c080c3c8b5f9d8f7456be44ad19a98e9f" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/25", + "inspect" + ], + "pid": 1362, + "exit": 1, + "signal": null, + "seconds": 0.373, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-71.log", + "sha256": "9562efbf99a50dff8d34808f5eb0d5dd5d8b6280a7d7bda0cd6e04b2116d5b93" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/25", + "index" + ], + "pid": 1370, + "exit": 1, + "signal": null, + "seconds": 0.363, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-72.log", + "sha256": "862d1247395d497a3823764fe8156af54b463750249332e46de516fbd72658e9" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/25", + "update", + "config_written" + ], + "pid": 1346, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.448, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-73.log", + "sha256": "588ec9094258331f91a9af1e585251aad7697168c55d9ec21784abb29f01d5ae" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/25", + "inspect" + ], + "pid": 1378, + "exit": 0, + "signal": null, + "seconds": 0.368, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-74.log", + "sha256": "582480a5919af86726d46acc00e69d2b5a1f0e003b926bfad6f0f2736e5a85d3" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/26", + "inspect" + ], + "pid": 1408, + "exit": 0, + "signal": null, + "seconds": 0.393, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-75.log", + "sha256": "4edc7ef87bfc795342153ded61a4bced7344dc64e6f1f05c4a3e6723b1b84795" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/26", + "inspect" + ], + "pid": 1416, + "exit": 1, + "signal": null, + "seconds": 0.352, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-76.log", + "sha256": "32938d4ac209ad7718259a94e0f6575ee35c860c17222c3e8103d72c11012b73" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/26", + "update", + "prepared" + ], + "pid": 1424, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.35, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-77.log", + "sha256": "986b08e84d7b508668163fc0e125d8f70fb77569e0f9ea643e3c1c1fdb7b39ac" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/26", + "inspect" + ], + "pid": 1432, + "exit": 0, + "signal": null, + "seconds": 0.472, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-78.log", + "sha256": "409815b7915b9028da8c8ac3d3b99123eb799d52411629f3114a19c1d6801934" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/26", + "inspect" + ], + "pid": 1440, + "exit": 0, + "signal": null, + "seconds": 0.383, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-79.log", + "sha256": "422822595179347484d4e3862701572b6928ccf829b6e1050a1d2acb1719048a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/27", + "update", + "config_written" + ], + "pid": 1470, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.394, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-80.log", + "sha256": "edccc5c8b6a7a73fa6e28df44605147e80ced28874672e0e268f348afd217688" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/27", + "inspect" + ], + "pid": 1478, + "exit": 1, + "signal": null, + "seconds": 0.356, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-81.log", + "sha256": "726401651696fd9d57786d45928a3cc517079be67b779f5c9346c2e90df533c7" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/27", + "inspect" + ], + "pid": 1486, + "exit": 0, + "signal": null, + "seconds": 0.366, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-82.log", + "sha256": "4d85305ee669cc4abd6554e0b510387993084f1500b724fb07c3d50aaa6ce987" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/27", + "inspect" + ], + "pid": 1494, + "exit": 1, + "signal": null, + "seconds": 0.356, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-83.log", + "sha256": "8758378c0e300e62a5403b9fa262c3622bcdb550ed1e40c737d70f05008347d2" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/28", + "update", + "config_written" + ], + "pid": 1524, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.348, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-84.log", + "sha256": "efd1681ecba4b851ab1daf6d1c72af3b68bd742c2a6c65248787e486d1182a80" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/28", + "inspect" + ], + "pid": 1532, + "exit": 0, + "signal": null, + "seconds": 0.395, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-85.log", + "sha256": "d288f10e2f8e0d8cde03378973d97ca1aef309f25958ff93a264f06cfa6c0ddf" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/29", + "update", + "config_written" + ], + "pid": 1562, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.371, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-86.log", + "sha256": "7eb6d1b6418715c2919a8224c61494036bdd77c9c137412ed32965fb3dc33b75" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/29", + "inspect" + ], + "pid": 1570, + "exit": 1, + "signal": null, + "seconds": 0.349, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-87.log", + "sha256": "ecf28cac1a9e456c1b648927dc4963fa34997c16c280c2a9323822e1a01c272d" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/29", + "inspect" + ], + "pid": 1578, + "exit": 0, + "signal": null, + "seconds": 0.368, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-88.log", + "sha256": "a042f6168b14cb487e24e637f293ec34573adcc0070bce091bdf63f826f3fdef" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/30", + "update", + "graph_committed" + ], + "pid": 1608, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.271, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-89.log", + "sha256": "4052f753e79c94579c6f87065fec6d0d5ee7e9aa42c6908f57577c5a637c013e" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/30", + "inspect" + ], + "pid": 1631, + "exit": 0, + "signal": null, + "seconds": 0.394, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-90.log", + "sha256": "7d04fcf3bc530c35b81302008da592b3b9c97f4fbce9ef3610ab6c009c32f5a7" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/31", + "update", + "graph_committed" + ], + "pid": 1661, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.276, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-91.log", + "sha256": "b79d3dda5501d5c6107050242d0b828c39a5786a928d2cdaf10bfaad2e0e6808" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/31", + "inspect" + ], + "pid": 1684, + "exit": 1, + "signal": null, + "seconds": 0.379, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-92.log", + "sha256": "ed740c2e0971f00be8a984d886e36b7adda575ee92937970a393b55f46d840bf" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/31", + "inspect" + ], + "pid": 1692, + "exit": 0, + "signal": null, + "seconds": 0.392, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-93.log", + "sha256": "56a184c52ff719cb58a94c78770262c426c33928d6667f1d9b6e0991318ef7f1" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/32", + "update" + ], + "pid": 1722, + "exit": 1, + "signal": null, + "seconds": 0.348, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-94.log", + "sha256": "920302b5bf8b733443631a8c06fce01326f1a158100d1834a7a10205e0851b0a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/32", + "index" + ], + "pid": 1730, + "exit": 1, + "signal": null, + "seconds": 0.371, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-95.log", + "sha256": "3b96fea2ae14b8ea408894b27ee1e888e6f9dc525921446657b1b896b593bca0" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/33", + "update", + "config_written" + ], + "pid": 1760, + "exit": null, + "signal": "SIGKILL", + "seconds": 0.357, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-96.log", + "sha256": "8fcd03bbf76108f4fd6c49de9ba489e049c4144d1b45406f998901fa02d5b5dc" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/33", + "inspect" + ], + "pid": 1768, + "exit": 1, + "signal": null, + "seconds": 0.346, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-97.log", + "sha256": "c20e7119291b88928c6550af8c3a5f1ec8d855f5d0e3d1b92f7bb9f78f3acda9" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/33", + "inspect" + ], + "pid": 1776, + "exit": 0, + "signal": null, + "seconds": 0.402, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-98.log", + "sha256": "346e4a2a500a8d2ad598ea51c06f63fb884167b78ed52011c504438b6d89bf25" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/34", + "update", + "graph_committed" + ], + "pid": 1806, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.237, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-99.log", + "sha256": "9c1875d48dc01e1dcff05e4f408095054d425b0d8103c655cf738340df9f1022" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/34", + "inspect" + ], + "pid": 1829, + "exit": 1, + "signal": null, + "seconds": 0.369, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-100.log", + "sha256": "54d0c377240479ce0503b87425447de3db2c2b9166064b65bcea22d2960d5f6a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/34", + "inspect" + ], + "pid": 1837, + "exit": 0, + "signal": null, + "seconds": 0.386, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-101.log", + "sha256": "30025d75172e22cc467abe3ab29f572b0b2ace486d867fd4e9a1c80238c40e9a" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/35", + "update", + "graph_committed" + ], + "pid": 1867, + "exit": null, + "signal": "SIGKILL", + "seconds": 1.227, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-102.log", + "sha256": "8c7158f21b7d619558a7e689b0f43640aecccc5ce5b9afd9ed90c2dc79cb797b" + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/scripts/validation/extensions-recovery.cjs", + "--child", + "/tmp/cg-kill-owned-5KrJhE/35", + "inspect" + ], + "pid": 1890, + "exit": 0, + "signal": null, + "seconds": 0.428, + "log": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/.qa/recovery/process-recovery-final/child-103.log", + "sha256": "f5088be305c341c1834994d2419efc97f7b7f6a7d74f0a757573df70604acc36" + } + ], + "compatibility": { + "checks": [ + "signed immutable versions; semantic catalog order independent of publication order", + "one browser Install selects 1.10.0 over incompatible 9.0.0 and preview; actual Python graph refreshed only in chosen destination", + "no-compatible browser selection/command fails usefully and preserves existing config/graph", + "headless automatic selection agrees; exact incompatible pin/no-compatible/missing update fail without mutation", + "prerelease requires explicit exact pin; automatic update refuses downgrade; explicit lower pin remains exact", + "compatible but broken update retains previous version and graph", + "browser and headless update to highest compatible stable; stale graph labels removed", + "exact artifact URL/file semantics and build-metadata pin identity preserved", + "removal cleans contributions; desktop/mobile display actual destination compatibility; no page errors" + ], + "releases": [ + { + "id": "compatible-demo", + "version": "1.10.0", + "engines": ">=1.6.0 <2", + "integrity": "d59f9b1e9bd7d027081de45ab004aefe3236708ddeb4fc7135c92502ce0866d8" + }, + { + "id": "compatible-demo", + "version": "1.9.0", + "engines": ">=1.6.0 <2", + "integrity": "07e64445b8c7205ec9a1d76c9e29affbd55d45e0817e9c3d92572b9f00486fcd" + }, + { + "id": "compatible-demo", + "version": "0.5.0", + "engines": ">=1.6.0 <2", + "integrity": "ad3c944ff2bea24feb81cb25839746b72e4845b9dae3cba3a4e2ce872855114d" + }, + { + "id": "compatible-demo", + "version": "20.0.0-beta.1", + "engines": ">=1.6.0 <2", + "integrity": "1a24723ecad51739315c4a6439227ff0a884700647ac505db74a12949fa99c82" + }, + { + "id": "compatible-demo", + "version": "9.0.0", + "engines": ">=9", + "integrity": "c3f802635737b02d15f6fe3e82cde56c41a1c83c8a9cc0858ef964b49be206c9" + }, + { + "id": "unavailable-demo", + "version": "1.0.0", + "engines": ">=9", + "integrity": "bc25c179402f994d59e586491cc0921d01ddc6dcf12bea9274982df745f42ef0" + }, + { + "id": "compatible-demo", + "version": "2.0.0", + "engines": ">=1.6.0 <2", + "integrity": "5b2f2099fbe51f94a4242f8e81570bacf3a7c16625e8439af3853adab1de65f1" + }, + { + "id": "compatible-demo", + "version": "3.0.0", + "engines": ">=1.6.0 <2", + "integrity": "e9f0eecbf6621e6f0ba7fc139d1eb91ffa2899548e0b5e615e3443a0496c8081" + }, + { + "id": "compatible-demo", + "version": "1.10.0+fixture.1", + "engines": ">=1.6.0 <2", + "integrity": "b78efa83378ef1de9e79e8f6e4c18f0470382d8946481c4680fd0cbe2c6c349f" + } + ], + "commands": [ + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.714 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--version", + "9.0.0", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 1, + "seconds": 0.403 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "update", + "unavailable-demo", + "--registry", + "http://127.0.0.1:44859", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 1, + "seconds": 0.316 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "unavailable-demo", + "--registry", + "http://127.0.0.1:44859", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 1, + "seconds": 0.432 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--version", + "20.0.0-beta.1", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.643 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "update", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 1, + "seconds": 0.46 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--version", + "1.9.0", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.54 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "update", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.725 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "http://127.0.0.1:44859/api/download/compatible-demo/1.9.0", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.575 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "/tmp/cg-compatible-ztntwo/pinned.cgext", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.501 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "install", + "compatible-demo", + "--registry", + "http://127.0.0.1:44859", + "--version", + "1.10.0+fixture.1", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.765 + }, + { + "command": [ + "/usr/local/bin/node", + "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/codegraph/dist/bin/codegraph.js", + "extensions", + "remove", + "compatible-demo", + "--path", + "/tmp/cg-compatible-ztntwo/headless-python-project" + ], + "exit": 0, + "seconds": 1.493 + } + ], + "engineVersion": "1.6.0", + "platform": "linux", + "browser": "153.0.8010.36" + }, + "browser": { + "browser": "153.0.8010.36", + "platform": "linux", + "checks": [ + "real browser signed publisher upload", + "browser publisher ownership rejection", + "browser invalid-signature failure state", + "browser malformed-package rejection without publication", + "one-click selected-project install verified in SQLite", + "real postMessage wrong-window command ignored", + "failed browser update preserves working version and graph", + "browser update replaces stale graph contributions", + "browser disable/enable/remove verified in SQLite", + "mobile detail fits viewport", + "real postMessage wrong-origin command ignored" + ], + "pageErrors": [] + }, + "environment_overrides": { + "recovery-kills-final": { + "RECOVERY_OUTPUT": ".qa/recovery/process-recovery-final" + }, + "recovery-compatibility-final": { + "COMPAT_OUTPUT": ".qa/recovery/compat-after-recovery", + "PLAYWRIGHT_MODULE": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/browser-tools/node_modules/playwright" + }, + "recovery-browser-final": { + "BROWSER_OUTPUT": ".qa/recovery/browser-after-recovery", + "PLAYWRIGHT_MODULE": "/data/workspace/Chats/109197f0a288be0afa6b7f8902925630f5a0bfde/browser-tools/node_modules/playwright" + } + }, + "prior_nonfinal_receipts": [ + { + "path": ".qa/recovery/recovery-first-build.json", + "sha256": "8f267552ad67ba3804dd493e5037d70e40de834f0c65dd3ac302e2eb25e5b4cb", + "bytes": 529 + }, + { + "path": ".qa/recovery/recovery-build-fixed.json", + "sha256": "922e11d8290ea7615f47d2ea4098783ff87df14ed0765cdc2b1e1b0203c1fec8", + "bytes": 529 + }, + { + "path": ".qa/recovery/recovery-build-third.json", + "sha256": "bb2feea4a04a38eb6836ec1453e9dad81ebf9625437c61eec2e8b5c434126e7a", + "bytes": 576 + }, + { + "path": ".qa/recovery/recovery-kills-first.json", + "sha256": "7df628839bc5025a95927adbecee86f9e67e10d49707f3f57d80b7625765f0eb", + "bytes": 603 + }, + { + "path": ".qa/recovery/recovery-build-fourth.json", + "sha256": "c40de29dbf8190bc716856ac05a6174731fd2f264b8cc9af1e72938ab3968614", + "bytes": 502 + }, + { + "path": ".qa/recovery/recovery-focused-first.json", + "sha256": "c967a3b0afc6d4a291aed3caa6f0d5df44b8688d148468cd076983c69cc03556", + "bytes": 1087 + } + ], + "limits": [ + "Linux/local process death only; native Windows/macOS and power-loss/network-filesystem tests pending", + "Historical 4545-pass full suite predates author/compatibility/recovery; no current whole-suite or hosted CI claim", + "Historical Drupal measured rebuild overhead 22\u201330%; no fresh corpus/performance rerun", + "No hosted HTTPS/durable registry/Vercel acceptance, merge or release" + ] +} diff --git a/docs/validation/extensions-process-recovery-20260922.md b/docs/validation/extensions-process-recovery-20260922.md new file mode 100644 index 000000000..9e566ea1b --- /dev/null +++ b/docs/validation/extensions-process-recovery-20260922.md @@ -0,0 +1,135 @@ +# Managed extension process-death recovery — 2026-09-22 + +This increment extends draft PR #1911 on `feature/extensions-author-kit-20260922`. +Source tested: `9ab6959d26fc8b1deddecbb136f08e109505e055` (implementation checkpoints +`e7f89a4`, `4c13016`, `9ab6959`). This is Linux/local acceptance, not a release or +hosted CI result. The final evidence commit changes documentation only. + +## Recovery contract + +A checksummed, atomically written and fsynced transaction record captures the +previous/proposed config and trust before mutation. Immutable package staging +is recorded too. The candidate graph replaces the active graph in one SQLite +transaction, with the lifecycle transaction ID committed in that same transaction. +A fresh process uses that marker to roll back an uncommitted change or complete +a committed one. Recovery itself is repeatable after interruption and evaluates +no extension modules. Package identity/version/trust is checked before clearing +the journal; candidate config/trust is checked again before graph commit. + +A dedicated SQLite `BEGIN IMMEDIATE` coordinates managed operations and normal +index/sync/init/recreate writers for their full run. Kernel-released ownership +survives neither a dead process nor PID reuse; timestamps do not authorize +stealing a lock. Legacy live/ambiguous PID owners and torn records fail closed. +Legacy graph owners are checked before reaching the older file-lock helper, so +its age-based behavior cannot override a live owner on these guarded paths. + +Fresh CodeGraph open/read/index, CLI status, extension list/status and subsequent +lifecycle operations reconcile pending state. Explicit `extensions recover` is +also available. A companion status conflict returns an actionable error instead +of ready. A long-lived graph reader clears cached nodes when another process's +lifecycle commit marker changes. + +Only the transaction's plugin fields and changed trust entries are reconciled; +unrelated config/trust edits and other files survive. Conflicting plugin edits, +index-affecting settings, changed package bytes, or damaged journals block with +repair instructions and retain evidence. The operator preserves their edit, +restores the indicated side, recovers, then reapplies/reindexes. New package and +candidate files from a rollback are removed; previously present package caches +are retained. A first install without a prior database returns to uninitialized +when its graph has not committed. + +## Real process-kill matrix + +`RECOVERY_OUTPUT=.qa/recovery/process-recovery-final node scripts/validation/extensions-recovery.cjs` +exited **0** in **108.392 seconds** at the tested source. **35 matrix cases passed**. +The harness created disposable Python projects and killed only subprocesses it +spawned; it never killed a shared service. Fresh processes checked actual SQLite +route contributions, config bytes, installed package version/digest/trust, +transaction/staging cleanup, and preservation of an unrelated file. + +| Operations | Kill boundary | Required result | Cases | +| --- | --- | --- | ---: | +| Install, update, enable, disable, remove | Journal prepared; config written; inside graph transaction before commit | Restore previous settings, trust and graph | 15 | +| Same five operations | After graph commit, before cleanup/ready | Complete new settings, trust and graph | 5 | +| Update | Package ready; trust written | Roll back, remove newly staged package/trust | 2 | +| First install into an uninitialized project | Before graph commit | Fresh real CLI status reports uninitialized | 1 | +| Recovery itself | After recovered config, before remaining cleanup | Second fresh recovery finishes idempotently | 1 | +| Live aged owner | Paused after config change | Concurrent install, open/read, index all rejected; owner not stolen | 1 | +| Reused/legacy PID owners | Current SQLite ownership vs plain PID | Current orphan reclaimed despite reused/live PID; legacy live blocks, dead reclaims | 1 | +| Invalid/torn journal/owner | Damaged persisted records | No guessing or overwrites; verified journal restores recoverability | 1 | +| Unrelated config/trust edits | Before and after graph commit | Preserve edits and reconcile lifecycle fields | 2 | +| Conflicting plugin edit | Before and after graph commit | Preserve bytes, actionable failure, recovery after operator repair | 2 | +| Aged/torn legacy graph lock | Before next writer | Live PID protected regardless of age; unknown owner blocked | 1 | +| Changed indexing rule | After config change | Preserve edit; require explicit reconciliation | 1 | +| Tampered installed package | After graph commit | Refuse recovery until recorded bytes restored | 1 | +| Long-lived reader | Another process recovers committed update | Cached old route becomes new route without reopening reader | 1 | + +The matrix has **103 child receipts**: 35 intentional SIGKILLs, 56 exit-0 runs, +and 12 expected exit-1 rejection cases. Those rejections are acceptance checks, +not unhandled failures. Every normal lifecycle matrix row includes a repeated +recovery check. Raw child logs and per-command exit/signal/hash records are in +`.qa/recovery/process-recovery-final/`; their hashes and the matrix are preserved +in the companion JSON evidence ledger. + +## Other validation + +At `9ab6959`, the engine/UI build exited 0 (33.999 seconds); the focused +regression passed **157 tests across 15 files**, with **1 Windows-only database +replacement case skipped**, exit 0 (56.356 seconds). This includes installer, +compatibility, author harness, SDK, status, sync, database replacement, +concurrent reads, and watcher tests. Both compiled-worker lifecycle/isolation +and failed parse/resolver update rollback tests passed, exit 0 (7.902 seconds). +The browser/headless compatibility run passed **9 checks and 12 CLI receipts**, +exit 0 (25.563 seconds). The publisher/lifecycle/origin/window browser regression +passed **11 checks**, exit 0 (14.125 seconds), with no page errors. The current +[installed-state capture](extensions-process-recovery-20260922/desktop-installed.png) +was inspected: selected 1.10.0, CodeGraph 1.6.0/API 1, destination and successful +graph refresh are visible. These preserve immutable ownership/signature checks, +exact pins/preview handling, automatic no-downgrade, and rollback behavior. + +The [JSON ledger](extensions-process-recovery-20260922.json) records exact +commands, exits, source/compiled hashes, raw-log hashes, all child receipts, +compatibility receipts and the recovery matrix. No final-source check failed. + +The earlier 110-test focused pass at `4c13016` is retained separately. The first 31-case kill +pass preceded the extra trust/config/cache/legacy-lock checks. Two initial build +failures were TypeScript syntax mistakes in guard insertion; their failed +receipts are retained rather than presented as passing runs. + +Reproduce the committed harnesses after `npm ci` and `npm run build`: + +```sh +node scripts/validation/extensions-recovery.cjs +node --test scripts/validation/extensions-runtime.test.cjs +PLAYWRIGHT_MODULE=/path/to/playwright node scripts/validation/extensions-compatibility.cjs +PLAYWRIGHT_MODULE=/path/to/playwright node scripts/validation/marketplace-browser.cjs +``` + +Browser harnesses require local Chrome and Playwright; output-directory overrides +and the exact regression/build commands are preserved in the evidence JSON. +The compiled harness forces bounded workers and uses fresh subprocesses. + +## Limits and remaining gates + +Validated on Linux x86_64, Node 22.23.2, local filesystem/SQLite only. No actual +Windows/macOS, power-loss simulation, network-filesystem locking, mixed older +writers bypassing the coordinator, raw database edits, deliberate deletion of +coordination files, or concurrent project destruction is claimed. Corrupt +journals need a verified backup/manual repair; PID-only live ambiguity is not +resolved by guessing. No automatic deletion of all older immutable packages. + +The historical full suite (4,545 passed / 192 skipped at `07b0a10`) predates the +author/compatibility/recovery increments and is **not** current whole-suite +proof. Unaffected Drupal extraction/flow/determinism/incremental evidence is +reused without a corpus rerun. Historical Drupal rebuild overhead remains +**22–30% versus built-in**, with limited samples; it is not a fresh performance +measurement of these guards or exhaustive framework coverage. Agent A/B remains +outside the authorized scope. + +Next bounded step: native Windows/macOS lifecycle and recovery validation. +Hosted HTTPS acceptance, durable registry/artifact storage/backups and Vercel +integration, plus broader Drupal/performance review remain open. Local recovery +is reviewable; full product completion, hosted preview readiness and release are +not claimed. No merge, production deployment, npm release, paid resources, +contributor announcements or extra model sessions were used. These tests concern +installer process death, not the unknown cause of earlier Hoblets task interruptions. diff --git a/docs/validation/extensions-process-recovery-20260922/desktop-installed.png b/docs/validation/extensions-process-recovery-20260922/desktop-installed.png new file mode 100644 index 0000000000000000000000000000000000000000..a73753918d9da0731857377cbb1831668a54ffdf GIT binary patch literal 97557 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

G+fx6wl|BbL;gei;B`_ZM9OKNlqH82zHjhxfNIr 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

6URx7q_F8^TspJ5bf$eg<;w}yX3OKJ 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 x3%H4G0Q|kcyugD0Uht5gc)?$