oh-my-opencode 4.18.0 → 4.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/codex-qa/scripts/lsp-e2e.sh +3677 -0
- package/.agents/skills/opencode-qa/scripts/lsp-e2e.sh +3154 -0
- package/.agents/skills/work-with-pr/SKILL.md +16 -37
- package/.agents/skills/work-with-pr-workspace/evals/evals.json +3 -3
- package/.opencode/skills/work-with-pr/SKILL.md +16 -37
- package/.opencode/skills/work-with-pr-workspace/evals/evals.json +3 -3
- package/bin/AGENTS.md +33 -0
- package/dist/cli/index.js +500 -158
- package/dist/cli-node/index.js +500 -158
- package/dist/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.d.ts +6 -0
- package/dist/hooks/category-skill-reminder/hook.d.ts +9 -1
- package/dist/hooks/comment-checker/hook.d.ts +8 -1
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +3 -0
- package/dist/index.js +956 -702
- package/dist/plugin/messages-transform.d.ts +1 -0
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +2 -0
- package/dist/tui.js +43 -4
- package/package.json +16 -16
- package/packages/git-bash-mcp/dist/cli.js +81 -19
- package/packages/lsp-core/package.json +4 -0
- package/packages/lsp-core/src/index.ts +1 -0
- package/packages/lsp-core/src/lsp/cleanup-errors.test.ts +18 -0
- package/packages/lsp-core/src/lsp/cleanup-errors.ts +12 -3
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +261 -0
- package/packages/lsp-core/src/lsp/client-wrapper.test.ts +63 -0
- package/packages/lsp-core/src/lsp/client-wrapper.ts +35 -5
- package/packages/lsp-core/src/lsp/client.ts +262 -80
- package/packages/lsp-core/src/lsp/config-loader.ts +5 -17
- package/packages/lsp-core/src/lsp/connection.ts +12 -6
- package/packages/lsp-core/src/lsp/directory-diagnostics.test.ts +221 -0
- package/packages/lsp-core/src/lsp/directory-diagnostics.ts +61 -28
- package/packages/lsp-core/src/lsp/errors.ts +11 -0
- package/packages/lsp-core/src/lsp/fixtures/diagnostics-freshness-contract-probe.ts +283 -0
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-contract-probe.ts +196 -0
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +215 -0
- package/packages/lsp-core/src/lsp/formatters.ts +3 -0
- package/packages/lsp-core/src/lsp/json-rpc-connection-cancellation.test.ts +97 -0
- package/packages/lsp-core/src/lsp/json-rpc-connection.ts +73 -5
- package/packages/lsp-core/src/lsp/server-install-state.ts +3 -6
- package/packages/lsp-core/src/lsp/transport-protocol.ts +52 -0
- package/packages/lsp-core/src/lsp/transport.ts +96 -70
- package/packages/lsp-core/src/lsp/workspace-apply-edit-failure.ts +19 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-lease.integration.test.ts +214 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-sync.integration.test.ts +113 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit-test-support.ts +163 -0
- package/packages/lsp-core/src/lsp/workspace-apply-edit.integration.test.ts +163 -0
- package/packages/lsp-core/src/lsp/workspace-document-state.test.ts +67 -0
- package/packages/lsp-core/src/lsp/workspace-document-state.ts +368 -0
- package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +113 -0
- package/packages/lsp-core/src/lsp/workspace-edit-commit.test.ts +140 -0
- package/packages/lsp-core/src/lsp/workspace-edit-commit.ts +220 -0
- package/packages/lsp-core/src/lsp/workspace-edit-contract-evidence.test.ts +56 -0
- package/packages/lsp-core/src/lsp/workspace-edit-contract-evidence.ts +30 -0
- package/packages/lsp-core/src/lsp/workspace-edit-fingerprint.ts +44 -0
- package/packages/lsp-core/src/lsp/workspace-edit-options.test.ts +147 -0
- package/packages/lsp-core/src/lsp/workspace-edit-parse-helpers.ts +59 -0
- package/packages/lsp-core/src/lsp/workspace-edit-parser.ts +130 -0
- package/packages/lsp-core/src/lsp/workspace-edit-path.ts +98 -0
- package/packages/lsp-core/src/lsp/workspace-edit-plan-types.ts +60 -0
- package/packages/lsp-core/src/lsp/workspace-edit-plan.ts +73 -0
- package/packages/lsp-core/src/lsp/workspace-edit-prevalidation.test.ts +174 -0
- package/packages/lsp-core/src/lsp/workspace-edit-resource-parser.ts +89 -0
- package/packages/lsp-core/src/lsp/workspace-edit-simulation.ts +183 -0
- package/packages/lsp-core/src/lsp/workspace-edit-snapshot.ts +53 -0
- package/packages/lsp-core/src/lsp/workspace-edit-text.ts +125 -0
- package/packages/lsp-core/src/lsp/workspace-edit-types.ts +121 -0
- package/packages/lsp-core/src/lsp/workspace-edit.characterization.test.ts +95 -0
- package/packages/lsp-core/src/lsp/workspace-edit.ts +49 -200
- package/packages/lsp-core/src/lsp/workspace-mutation-controller.ts +182 -0
- package/packages/lsp-core/src/mcp.ts +18 -7
- package/packages/lsp-core/src/missing-dependency-result.test.ts +105 -0
- package/packages/lsp-core/src/missing-dependency-result.ts +57 -0
- package/packages/lsp-core/src/post-edit/index.ts +1 -0
- package/packages/lsp-core/src/post-edit/orchestration.test.ts +157 -0
- package/packages/lsp-core/src/post-edit/orchestration.ts +178 -0
- package/packages/lsp-core/src/request-context.test.ts +171 -0
- package/packages/lsp-core/src/request-context.ts +222 -9
- package/packages/lsp-core/src/tool-surface.test.ts +4 -1
- package/packages/lsp-core/src/tools/diagnostics.ts +32 -13
- package/packages/lsp-core/src/tools/navigation.ts +12 -12
- package/packages/lsp-core/src/tools/rename.ts +10 -15
- package/packages/lsp-core/src/tools/symbols.ts +11 -11
- package/packages/lsp-core/src/tools/types.ts +2 -1
- package/packages/lsp-daemon/dist/cli.js +3330 -764
- package/packages/lsp-daemon/dist/client.d.ts +105 -0
- package/packages/lsp-daemon/dist/client.js +5995 -0
- package/packages/lsp-daemon/dist/daemon-client.d.ts +12 -7
- package/packages/lsp-daemon/dist/daemon-client.js +139 -32
- package/packages/lsp-daemon/dist/daemon-server.d.ts +1 -0
- package/packages/lsp-daemon/dist/daemon-server.js +40 -15
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +10 -8
- package/packages/lsp-daemon/dist/ensure-daemon.js +135 -51
- package/packages/lsp-daemon/dist/index.d.ts +2 -2
- package/packages/lsp-daemon/dist/index.js +3093 -786
- package/packages/lsp-daemon/dist/ipc-protocol.d.ts +46 -0
- package/packages/lsp-daemon/dist/ipc-protocol.js +187 -0
- package/packages/lsp-daemon/dist/lock.js +14 -4
- package/packages/lsp-daemon/dist/ownership.d.ts +49 -0
- package/packages/lsp-daemon/dist/ownership.js +168 -0
- package/packages/lsp-daemon/dist/paths.d.ts +33 -9
- package/packages/lsp-daemon/dist/paths.js +72 -33
- package/packages/lsp-daemon/dist/proxy.d.ts +5 -0
- package/packages/lsp-daemon/dist/proxy.js +123 -16
- package/packages/lsp-daemon/dist/request-routing.d.ts +7 -2
- package/packages/lsp-daemon/dist/request-routing.js +71 -22
- package/packages/lsp-daemon/dist/run-daemon.js +9 -2
- package/packages/lsp-daemon/dist/runtime-contract.d.ts +21 -0
- package/packages/lsp-daemon/dist/runtime-contract.js +58 -0
- package/packages/lsp-daemon/dist/socket-jsonrpc.js +6 -1
- package/packages/lsp-daemon/package.json +12 -3
- package/packages/lsp-tools-mcp/dist/cli.js +2189 -454
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +1741 -148
- package/packages/lsp-tools-mcp/dist/mcp.js +2206 -471
- package/packages/lsp-tools-mcp/dist/request-context.js +176 -6
- package/packages/lsp-tools-mcp/dist/tools.js +2119 -447
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/.mcp.json +2 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +100 -28
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +100 -28
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +21 -9
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +35 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +69 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +57 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/.mcp.json +2 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +55 -0
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +3033 -936
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook-cli.js +0 -4
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.d.ts +5 -2
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +41 -62
- package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.d.ts +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +24 -15
- package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.d.ts +3 -7
- package/packages/omo-codex/plugin/components/lsp/dist/lsp-session-state.js +23 -49
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +3 -2
- package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-daemon.mjs +31 -1
- package/packages/omo-codex/plugin/components/lsp/scripts/build-lsp-daemon.test.mjs +76 -0
- package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.mjs +201 -0
- package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.test.mjs +55 -0
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook-cli.ts +0 -4
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +49 -71
- package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +26 -15
- package/packages/omo-codex/plugin/components/lsp/src/lsp-session-state.ts +26 -64
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +16 -17
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +30 -4
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +20 -5
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -3
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/README.md +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +3 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/boulder-reader.ts +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +15 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +20 -0
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +50 -33
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +50 -33
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +5 -6
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +6 -5
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +5 -6
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +2 -2
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +26 -14
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/build-bundled-mcp-runtimes.mjs +2 -3
- package/packages/omo-codex/plugin/scripts/build-components.mjs +13 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +9 -1
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +7 -0
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +6 -5
- package/packages/omo-codex/plugin/test/aggregate-build.test.mjs +8 -0
- package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +128 -15
- package/packages/omo-codex/plugin/test/install-time-build-runtime.test.mjs +10 -0
- package/packages/omo-codex/plugin/test/lsp-prebuild-layouts.test.mjs +2 -0
- package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +7 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +34 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +328 -63
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Resetting LSP Diagnostics Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Resetting Project Rule Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking CodeGraph Init Guidance",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 30,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Comments",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 60,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking LSP Diagnostics",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Checking Thread Title Hygiene",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Matching Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Enforcing Unlimited Goal Budget",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Guarding Ulw-Loop Spawns",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Recommending Git Bash MCP",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Auto Update",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking CodeGraph Bootstrap",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Recording Session Telemetry",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ulw-Loop Resume",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Verifying LazyCodex Executor Evidence",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ultrawork Trigger",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ulw-Loop Steering",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "4.18.
|
|
9
|
+
"version": "4.18.2",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/codegraph",
|
|
12
12
|
"components/comment-checker",
|
|
@@ -32,6 +32,13 @@
|
|
|
32
32
|
"@oh-my-opencode/utils": "workspace:*"
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
|
+
"../../lsp-core": {
|
|
36
|
+
"name": "@oh-my-opencode/lsp-core",
|
|
37
|
+
"version": "0.1.0",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@oh-my-opencode/mcp-stdio-core": "workspace:*"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
35
42
|
"../../lsp-daemon": {
|
|
36
43
|
"name": "@code-yeongyu/lsp-daemon",
|
|
37
44
|
"version": "0.1.0",
|
|
@@ -93,7 +100,7 @@
|
|
|
93
100
|
},
|
|
94
101
|
"components/codegraph": {
|
|
95
102
|
"name": "@sisyphuslabs/codex-codegraph",
|
|
96
|
-
"version": "4.18.
|
|
103
|
+
"version": "4.18.2",
|
|
97
104
|
"bin": {
|
|
98
105
|
"omo-codegraph": "dist/cli.js"
|
|
99
106
|
},
|
|
@@ -112,7 +119,7 @@
|
|
|
112
119
|
},
|
|
113
120
|
"components/comment-checker": {
|
|
114
121
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
115
|
-
"version": "4.18.
|
|
122
|
+
"version": "4.18.2",
|
|
116
123
|
"license": "MIT",
|
|
117
124
|
"bin": {
|
|
118
125
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -133,7 +140,7 @@
|
|
|
133
140
|
},
|
|
134
141
|
"components/git-bash": {
|
|
135
142
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
136
|
-
"version": "4.18.
|
|
143
|
+
"version": "4.18.2",
|
|
137
144
|
"bin": {
|
|
138
145
|
"omo-git-bash-hook": "dist/cli.js"
|
|
139
146
|
},
|
|
@@ -148,7 +155,7 @@
|
|
|
148
155
|
},
|
|
149
156
|
"components/lazycodex-executor-verify": {
|
|
150
157
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
151
|
-
"version": "4.18.
|
|
158
|
+
"version": "4.18.2",
|
|
152
159
|
"license": "MIT",
|
|
153
160
|
"bin": {
|
|
154
161
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -165,10 +172,11 @@
|
|
|
165
172
|
},
|
|
166
173
|
"components/lsp": {
|
|
167
174
|
"name": "@code-yeongyu/codex-lsp",
|
|
168
|
-
"version": "4.18.
|
|
175
|
+
"version": "4.18.2",
|
|
169
176
|
"license": "MIT",
|
|
170
177
|
"dependencies": {
|
|
171
|
-
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon"
|
|
178
|
+
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
179
|
+
"@oh-my-opencode/lsp-core": "file:../../../../lsp-core"
|
|
172
180
|
},
|
|
173
181
|
"bin": {
|
|
174
182
|
"omo-lsp": "dist/cli.js"
|
|
@@ -185,7 +193,7 @@
|
|
|
185
193
|
},
|
|
186
194
|
"components/rules": {
|
|
187
195
|
"name": "@code-yeongyu/codex-rules",
|
|
188
|
-
"version": "4.18.
|
|
196
|
+
"version": "4.18.2",
|
|
189
197
|
"license": "MIT",
|
|
190
198
|
"dependencies": {
|
|
191
199
|
"picomatch": "^4.0.3"
|
|
@@ -207,7 +215,7 @@
|
|
|
207
215
|
},
|
|
208
216
|
"components/start-work-continuation": {
|
|
209
217
|
"name": "@code-yeongyu/codex-start-work-continuation",
|
|
210
|
-
"version": "4.18.
|
|
218
|
+
"version": "4.18.2",
|
|
211
219
|
"license": "MIT",
|
|
212
220
|
"bin": {
|
|
213
221
|
"omo-start-work-continuation": "dist/cli.js"
|
|
@@ -224,7 +232,7 @@
|
|
|
224
232
|
},
|
|
225
233
|
"components/teammode": {
|
|
226
234
|
"name": "@sisyphuslabs/codex-teammode",
|
|
227
|
-
"version": "4.18.
|
|
235
|
+
"version": "4.18.2",
|
|
228
236
|
"devDependencies": {
|
|
229
237
|
"@types/node": "^25.9.3",
|
|
230
238
|
"bun-types": "^1.3.1",
|
|
@@ -237,7 +245,7 @@
|
|
|
237
245
|
},
|
|
238
246
|
"components/telemetry": {
|
|
239
247
|
"name": "@code-yeongyu/codex-telemetry",
|
|
240
|
-
"version": "4.18.
|
|
248
|
+
"version": "4.18.2",
|
|
241
249
|
"license": "MIT",
|
|
242
250
|
"bin": {
|
|
243
251
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -255,7 +263,7 @@
|
|
|
255
263
|
},
|
|
256
264
|
"components/ultrawork": {
|
|
257
265
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
258
|
-
"version": "4.18.
|
|
266
|
+
"version": "4.18.2",
|
|
259
267
|
"license": "MIT",
|
|
260
268
|
"bin": {
|
|
261
269
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -273,7 +281,7 @@
|
|
|
273
281
|
},
|
|
274
282
|
"components/ulw-loop": {
|
|
275
283
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
276
|
-
"version": "4.18.
|
|
284
|
+
"version": "4.18.2",
|
|
277
285
|
"license": "MIT",
|
|
278
286
|
"bin": {
|
|
279
287
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -663,6 +671,10 @@
|
|
|
663
671
|
"resolved": "../../comment-checker-core",
|
|
664
672
|
"link": true
|
|
665
673
|
},
|
|
674
|
+
"node_modules/@oh-my-opencode/lsp-core": {
|
|
675
|
+
"resolved": "../../lsp-core",
|
|
676
|
+
"link": true
|
|
677
|
+
},
|
|
666
678
|
"node_modules/@oh-my-opencode/prompts-core": {
|
|
667
679
|
"resolved": "../../prompts-core",
|
|
668
680
|
"link": true
|
|
@@ -16,8 +16,7 @@ const runtimes = [
|
|
|
16
16
|
{
|
|
17
17
|
label: "lsp-daemon",
|
|
18
18
|
packageRoot: join(repoPackagesRoot, "lsp-daemon"),
|
|
19
|
-
requiredOutputs: ["dist/cli.js", "dist/index.js", "dist/index.d.ts"],
|
|
20
|
-
install: true,
|
|
19
|
+
requiredOutputs: ["dist/cli.js", "dist/client.js", "dist/client.d.ts", "dist/index.js", "dist/index.d.ts"],
|
|
21
20
|
},
|
|
22
21
|
{
|
|
23
22
|
label: "git-bash-mcp",
|
|
@@ -42,7 +41,7 @@ function buildRuntime(runtime) {
|
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
if (runtime.
|
|
44
|
+
if (existsSync(join(runtime.packageRoot, "package-lock.json")) && !existsSync(join(runtime.packageRoot, "node_modules"))) {
|
|
46
45
|
const install = spawnSync("npm", ["ci"], {
|
|
47
46
|
cwd: runtime.packageRoot,
|
|
48
47
|
shell: process.platform === "win32",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { spawn } from "node:child_process";
|
|
3
3
|
import { availableParallelism } from "node:os";
|
|
4
|
-
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
4
|
+
import { readdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
5
5
|
import { builtinModules } from "node:module";
|
|
6
6
|
import { dirname, join } from "node:path";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
@@ -55,6 +55,7 @@ async function runTasksWithConcurrency(items, limit) {
|
|
|
55
55
|
|
|
56
56
|
async function buildComponent(task) {
|
|
57
57
|
await runCaptured(task.buildCommand, task.buildArgs, task.buildCwd, `Building ${task.componentPath}`);
|
|
58
|
+
if (await hasComponentOwnedBundle(task.componentPath)) return;
|
|
58
59
|
await bundleCli(task.componentPath);
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -84,6 +85,17 @@ async function bundleCli(workspace) {
|
|
|
84
85
|
await normalizeBuiltinImports(output);
|
|
85
86
|
}
|
|
86
87
|
|
|
88
|
+
async function hasComponentOwnedBundle(workspace) {
|
|
89
|
+
try {
|
|
90
|
+
const manifest = JSON.parse(await readFile(join(root, workspace, "dist", ".omo-runtime-manifest.json"), "utf8"));
|
|
91
|
+
const cli = await stat(join(root, workspace, "dist", "cli.js"));
|
|
92
|
+
return manifest?.schemaVersion === 1 && cli.isFile() && cli.size > 0;
|
|
93
|
+
} catch (error) {
|
|
94
|
+
if (error instanceof Error && "code" in error && error.code === "ENOENT") return false;
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
87
99
|
// Buffers each child's stdout/stderr and flushes it as one contiguous block so
|
|
88
100
|
// concurrent builds never interleave, keeping a failing component's output readable.
|
|
89
101
|
function runCaptured(command, args, cwd, label) {
|
|
@@ -134,7 +134,8 @@ const startWorkCodexCompletion = `When all top-level checkboxes in \`## TODOs\`
|
|
|
134
134
|
1. Run the plan's final verification commands.
|
|
135
135
|
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
136
136
|
- Invoke the \`review-work\` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, \`BLOCKED:\`, or inconclusive lane is a gate failure, not approval.
|
|
137
|
-
-
|
|
137
|
+
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to \`.omo/start-work/ledger.jsonl\` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
138
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to \`.omo/start-work/ledger.jsonl\`. Reuse it only after re-reading an exact audit/SHA match.
|
|
138
139
|
- If any review lane or debugging hypothesis fails, invoke the \`debugging\` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
139
140
|
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing \`.omo/start-work/ledger.jsonl\`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
140
141
|
- If the work includes creating, updating, or handing off a PR, refresh \`git status\` and the PR/branch state from the task-owned worktree after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
@@ -156,6 +157,13 @@ failed, investigate the underlying uncertainty with the \`debugging\` skill when
|
|
|
156
157
|
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
157
158
|
before claiming completion, creating or handing off a PR, or merging.
|
|
158
159
|
|
|
160
|
+
After each lane reaches PASS, immediately append a durable task-evidence record
|
|
161
|
+
to the active ledger with the lane name, exact full commit SHA, PASS verdict,
|
|
162
|
+
and report artifact/source. Before reusing coverage after continuation or
|
|
163
|
+
compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
164
|
+
chat history, or an unstamped report is not coverage; a new commit requires
|
|
165
|
+
fresh applicable lane records.
|
|
166
|
+
|
|
159
167
|
A rejecting lane must name its blockers inline in its final message — each
|
|
160
168
|
blocker cites the violated goal criterion or requirement plus an evidence
|
|
161
169
|
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
@@ -70,6 +70,13 @@ failed, investigate the underlying uncertainty with the `debugging` skill when
|
|
|
70
70
|
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
71
71
|
before claiming completion, creating or handing off a PR, or merging.
|
|
72
72
|
|
|
73
|
+
After each lane reaches PASS, immediately append a durable task-evidence record
|
|
74
|
+
to the active ledger with the lane name, exact full commit SHA, PASS verdict,
|
|
75
|
+
and report artifact/source. Before reusing coverage after continuation or
|
|
76
|
+
compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
77
|
+
chat history, or an unstamped report is not coverage; a new commit requires
|
|
78
|
+
fresh applicable lane records.
|
|
79
|
+
|
|
73
80
|
A rejecting lane must name its blockers inline in its final message — each
|
|
74
81
|
blocker cites the violated goal criterion or requirement plus an evidence
|
|
75
82
|
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
@@ -178,7 +178,8 @@ When all top-level checkboxes in `## TODOs` and `## Final Verification Wave` are
|
|
|
178
178
|
1. Run the plan's final verification commands.
|
|
179
179
|
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
180
180
|
- Invoke the `review-work` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, `BLOCKED:`, or inconclusive lane is a gate failure, not approval.
|
|
181
|
-
-
|
|
181
|
+
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to `.omo/start-work/ledger.jsonl` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
182
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to `.omo/start-work/ledger.jsonl`. Reuse it only after re-reading an exact audit/SHA match.
|
|
182
183
|
- If any review lane or debugging hypothesis fails, invoke the `debugging` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
183
184
|
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing `.omo/start-work/ledger.jsonl`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
184
185
|
- If the work includes creating, updating, or handing off a PR, refresh `git status` and the PR/branch state from the task-owned worktree after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
@@ -112,9 +112,7 @@ notepad with a one-line reason each. Skipping a skill that fits the
|
|
|
112
112
|
task is a defect. Open a skill's body only when THIS session will
|
|
113
113
|
execute its workflow; skills a delegated session needs are named in
|
|
114
114
|
its prompt and read there, not here.
|
|
115
|
-
Next, fire the first discovery wave
|
|
116
|
-
things below): direct lookups plus `explorer` / `librarian` children
|
|
117
|
-
for unfamiliar layout or external contracts.
|
|
115
|
+
Next, fire the first discovery wave under Finding things below.
|
|
118
116
|
Then run Tier triage (above) on the change set and record the tier —
|
|
119
117
|
tier sizes evidence and review, never who plans. Size planning by
|
|
120
118
|
what the wave left UNDECIDED, not by how many steps you can list:
|
|
@@ -214,25 +212,27 @@ GOOD pair (test-first, ordered):
|
|
|
214
212
|
BAD: "Implement feature" / "Fix bug" / "Add tests later" / writing
|
|
215
213
|
production code before its failing test → rewrite.
|
|
216
214
|
|
|
217
|
-
# Finding things (lead with these,
|
|
215
|
+
# Finding things (lead with these, code-mode the first wave)
|
|
218
216
|
Never guess from memory — locate with the right tool, and re-read before
|
|
219
|
-
you claim or change.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
`
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
`
|
|
217
|
+
you claim or change. **USE CODE MODE AGGRESSIVELY FOR BOUNDED WAVES.**
|
|
218
|
+
When multiple independent tool calls produce results that can be materially
|
|
219
|
+
filtered, joined, deduplicated, or reduced, make ONE `exec` / eval JavaScript
|
|
220
|
+
program that calls eligible tools concurrently with `Promise.all` and emits only
|
|
221
|
+
decision-relevant evidence. For shell-native repo work without programmatic
|
|
222
|
+
tool access, use ONE Python script with `concurrent.futures`, `subprocess`,
|
|
223
|
+
and utility functions to batch commands and reduce output. Keep direct calls
|
|
224
|
+
when one result chooses the next action, outputs are already small, semantic
|
|
225
|
+
judgment is required between calls, approval or side effects are involved,
|
|
226
|
+
or native artifacts / citations must be preserved.
|
|
227
|
+
- Architecture / flow / blast radius → `codegraph_explore` first when
|
|
228
|
+
`codegraph_*` exists; if unavailable, continue with repo tools and LSP.
|
|
229
|
+
- **SYMBOLS REQUIRE LSP** — definitions, references, rename impact,
|
|
230
|
+
workspace symbols, and diagnostics use the available `lsp_*` tools, not
|
|
231
|
+
text search. Run diagnostics after edits and treat errors as blocking.
|
|
232
|
+
- Repo text / filenames / history / bounded shell output → `rg`,
|
|
233
|
+
`rg --files`, `git`, and native utilities; narrow output in-program.
|
|
234
|
+
- Structural call / function / class / import shapes and codemods → the
|
|
235
|
+
`ast-grep` skill or `sg` with `$VAR` / `$$$` metavariables.
|
|
236
236
|
When discovery needs multiple angles or the module layout is
|
|
237
237
|
unfamiliar, delegate to the `explorer` subagent (read-only codebase
|
|
238
238
|
search, absolute-path results). For research that leaves the repo —
|
|
@@ -296,21 +296,39 @@ Until every success criterion PASSES with its evidence captured:
|
|
|
296
296
|
vars. Append a one-line cleanup receipt to the notepad next to the
|
|
297
297
|
artifact, e.g. `cleanup: killed 12345; tmux kill-session ulw-qa-foo;
|
|
298
298
|
rm -rf /tmp/ulw.aB12cD`. No receipt → criterion stays in_progress.
|
|
299
|
-
6. Verify: LSP diagnostics clean on changed files +
|
|
300
|
-
green (no skipped, no xfail added this
|
|
299
|
+
6. Verify: LSP diagnostics clean on changed files + the test scope
|
|
300
|
+
this criterion touched green (no skipped, no xfail added this
|
|
301
|
+
turn). Re-run a validation command (suite, typecheck, build) only
|
|
302
|
+
when its inputs changed since its last green run; ONE full-suite
|
|
303
|
+
pass belongs immediately before the final message, not after
|
|
304
|
+
every increment.
|
|
301
305
|
7. Mark completed. Append non-obvious findings / learnings.
|
|
302
|
-
8. After each increment, re-run
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
8. After each increment, re-run the scenarios that increment could
|
|
307
|
+
have affected; re-run the full set once, right before the final
|
|
308
|
+
message. Record PASS/FAIL inline with the evidence paths AND the
|
|
309
|
+
cleanup receipt. Loop until all PASS.
|
|
310
|
+
|
|
311
|
+
Within a step, follow Finding things; NEVER parallelise RED and GREEN of
|
|
312
|
+
the same criterion.
|
|
313
|
+
|
|
314
|
+
# Waiting discipline (a poll costs a full model round)
|
|
315
|
+
Every status check you issue as a tool call replays the entire
|
|
316
|
+
accumulated context through the model. When a command will run long
|
|
317
|
+
(installs, builds, test suites, containers, CI), run it to completion
|
|
318
|
+
in ONE call with a timeout sized to the expected duration, or send
|
|
319
|
+
output to a log file and read it once when a completion signal is
|
|
320
|
+
expected. Never re-poll the same surface with empty reads or
|
|
321
|
+
sub-minute waits — batch waiting into the fewest, longest blocking
|
|
322
|
+
calls the harness allows, and do independent root work while the
|
|
323
|
+
command runs. If two consecutive checks show no state change, double
|
|
324
|
+
the wait before the next check or switch to a completion signal.
|
|
308
325
|
|
|
309
326
|
# Codex subagent reliability
|
|
310
327
|
Every `multi_agent_v1.spawn_agent` message is self-contained and starts with
|
|
311
|
-
`TASK: <imperative assignment>`, then names `DELIVERABLE`, `SCOPE`,
|
|
312
|
-
`VERIFY
|
|
313
|
-
|
|
328
|
+
`TASK: <imperative assignment>`, then names `DELIVERABLE`, `SCOPE`,
|
|
329
|
+
`VERIFY`, and `STOP WHEN` — the observable condition that ends the
|
|
330
|
+
child's run; a child without a stop condition wanders past its goal.
|
|
331
|
+
State that it is an executable assignment, not a context handoff. Use `fork_context: false` unless full history is truly
|
|
314
332
|
required; paste only the context the child needs. Full-history forks can
|
|
315
333
|
make the child continue old parent context instead of the delegated task.
|
|
316
334
|
If your tool list has a flat `spawn_agent` with a required `task_name` instead of `multi_agent_v1.*` (`multi_agent_v2`), rewrite: `fork_context: false` becomes `fork_turns: "none"`, `send_input` becomes `send_message`, finished agents end on their own (no `close_agent`; `followup_task` re-tasks, `interrupt_agent` stops), and `wait_agent` takes only `timeout_ms`, returning on any child mailbox activity.
|
|
@@ -420,7 +438,6 @@ message + present for approval.
|
|
|
420
438
|
- Never suppress lints / errors / test failures. Never delete, skip,
|
|
421
439
|
`.only`, `.skip`, `xfail`, or comment out tests to green the suite.
|
|
422
440
|
- Never claim done from inference — only from captured evidence.
|
|
423
|
-
- Parallel tool calls for any independent work.
|
|
424
441
|
|
|
425
442
|
# Output discipline
|
|
426
443
|
- First line literally: `ULTRAWORK MODE ENABLED!`
|