oh-my-opencode 4.19.1 → 4.19.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.
Files changed (184) hide show
  1. package/README.ja.md +2 -2
  2. package/README.ko.md +2 -2
  3. package/README.md +2 -2
  4. package/README.ru.md +2 -2
  5. package/README.zh-cn.md +2 -2
  6. package/dist/agents/atlas/agent.d.ts +4 -2
  7. package/dist/agents/explore.d.ts +4 -2
  8. package/dist/agents/hephaestus/agent.d.ts +4 -2
  9. package/dist/agents/librarian.d.ts +4 -2
  10. package/dist/agents/metis.d.ts +4 -2
  11. package/dist/agents/momus.d.ts +3 -2
  12. package/dist/agents/multimodal-looker.d.ts +4 -2
  13. package/dist/agents/oracle.d.ts +4 -2
  14. package/dist/agents/sisyphus/claude-opus-5.d.ts +33 -0
  15. package/dist/agents/sisyphus/index.d.ts +2 -0
  16. package/dist/agents/sisyphus-agent-factory.d.ts +5 -2
  17. package/dist/agents/sisyphus-junior/agent.d.ts +4 -1
  18. package/dist/agents/types.d.ts +2 -2
  19. package/dist/cli/index.js +23454 -19200
  20. package/dist/cli-node/index.js +23454 -19200
  21. package/dist/config/schema/agent-names.d.ts +26 -26
  22. package/dist/config/schema/agent-overrides.d.ts +400 -400
  23. package/dist/config/schema/browser-automation.d.ts +2 -2
  24. package/dist/config/schema/categories.d.ts +36 -36
  25. package/dist/config/schema/commands.d.ts +2 -2
  26. package/dist/config/schema/dynamic-context-pruning.d.ts +1 -1
  27. package/dist/config/schema/experimental.d.ts +1 -1
  28. package/dist/config/schema/fallback-models.d.ts +25 -25
  29. package/dist/config/schema/hooks.d.ts +43 -43
  30. package/dist/config/schema/internal/permission.d.ts +9 -9
  31. package/dist/config/schema/keyword-detector.d.ts +6 -6
  32. package/dist/config/schema/oh-my-opencode-config.d.ts +402 -402
  33. package/dist/config/schema/tmux.d.ts +6 -6
  34. package/dist/create-hooks.d.ts +35 -35
  35. package/dist/features/background-agent/spawner/tmux-callback-invoker.d.ts +11 -0
  36. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  37. package/dist/features/claude-tasks/types.d.ts +4 -4
  38. package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +1 -1
  39. package/dist/features/team-mode/team-runtime/shutdown-test-fixtures.d.ts +4 -4
  40. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +42 -42
  41. package/dist/features/tmux-subagent/environment-eligibility.d.ts +2 -0
  42. package/dist/features/tmux-subagent/index.d.ts +1 -0
  43. package/dist/features/tmux-subagent/tracked-session-state.d.ts +1 -0
  44. package/dist/features/tui-sidebar/snapshot-schema.d.ts +6 -6
  45. package/dist/help/schema/acp.d.ts +3 -3
  46. package/dist/help/schema/doctor.d.ts +4 -4
  47. package/dist/help/schema/status.d.ts +3 -3
  48. package/dist/hooks/goal/types.d.ts +5 -5
  49. package/dist/hooks/non-interactive-env/constants.d.ts +4 -1
  50. package/dist/hooks/start-work/parse-user-request.d.ts +2 -0
  51. package/dist/hooks/start-work/worktree-block.d.ts +5 -0
  52. package/dist/index.js +25231 -20301
  53. package/dist/mcp/types.d.ts +3 -3
  54. package/dist/oh-my-opencode.schema.json +1 -1
  55. package/dist/plugin/chat-message/loop-commands.d.ts +1 -0
  56. package/dist/plugin/command-execute-before.d.ts +3 -3
  57. package/dist/plugin/hooks/create-core-hooks.d.ts +25 -25
  58. package/dist/shared/tmux/tmux-utils/environment.d.ts +1 -1
  59. package/dist/shared/tmux/tmux-utils.d.ts +1 -1
  60. package/dist/shared/typescript-native-source-parser.d.ts +7 -0
  61. package/dist/skills/coding-agent-sessions/SKILL.md +5 -2
  62. package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  63. package/dist/skills/coding-agent-sessions/references/senpi.md +15 -5
  64. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  65. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  66. package/dist/skills/debugging/SKILL.md +2 -1
  67. package/dist/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  68. package/dist/skills/programming/SKILL.md +11 -1
  69. package/dist/skills/programming/references/logging.md +6 -1
  70. package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  71. package/dist/skills/start-work/SKILL.md +12 -2
  72. package/dist/skills/ulw-plan/SKILL.md +1 -1
  73. package/dist/skills/ulw-plan/references/full-workflow.md +12 -1
  74. package/dist/skills/ulw-plan/references/intent-clear.md +1 -1
  75. package/dist/tools/task/types.d.ts +10 -10
  76. package/dist/tui.js +23468 -19218
  77. package/package.json +14 -14
  78. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +2 -2
  79. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  80. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8 -4
  81. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  82. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  83. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +296 -206
  84. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +126 -86
  85. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  86. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +21 -42
  87. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +3 -4
  88. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +12 -23
  89. package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +5 -0
  90. package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +33 -5
  91. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +6 -1
  92. package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +6 -0
  93. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +1 -0
  94. package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +5 -5
  95. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +1 -0
  96. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +24 -13
  97. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +58 -64
  98. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  99. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  100. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  101. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  102. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  103. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  104. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  105. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  106. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  107. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  108. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  109. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +1 -1
  110. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  111. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  112. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  113. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  114. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  115. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  116. package/packages/omo-codex/plugin/components/ultrawork/directive.md +12 -7
  117. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  118. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  119. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +12 -7
  120. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
  121. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +12 -1
  122. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +1 -1
  123. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +12 -7
  124. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  125. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  126. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +2 -1
  127. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  128. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  129. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  130. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  131. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  132. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  133. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  134. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  135. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  136. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  137. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  138. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  139. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  140. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  141. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  142. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  143. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  144. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  145. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  146. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  147. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  148. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  149. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  150. package/packages/omo-codex/plugin/package-lock.json +13 -13
  151. package/packages/omo-codex/plugin/package.json +1 -1
  152. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +10 -9
  153. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +5 -2
  154. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  155. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +15 -5
  156. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  157. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  158. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -1
  159. package/packages/omo-codex/plugin/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  160. package/packages/omo-codex/plugin/skills/programming/SKILL.md +11 -1
  161. package/packages/omo-codex/plugin/skills/programming/references/logging.md +6 -1
  162. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  163. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +12 -2
  164. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +12 -7
  165. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +2 -1
  166. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
  167. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +12 -1
  168. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +1 -1
  169. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +22 -0
  170. package/packages/omo-codex/scripts/install-dist/install-local.mjs +1 -1
  171. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +5 -2
  172. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  173. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +15 -5
  174. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  175. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  176. package/packages/shared-skills/skills/debugging/SKILL.md +2 -1
  177. package/packages/shared-skills/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  178. package/packages/shared-skills/skills/programming/SKILL.md +11 -1
  179. package/packages/shared-skills/skills/programming/references/logging.md +6 -1
  180. package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  181. package/packages/shared-skills/skills/start-work/SKILL.md +12 -2
  182. package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
  183. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +12 -1
  184. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +1 -1
@@ -3,66 +3,70 @@ import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "nod
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
 
6
+ import { CODEGRAPH_PINNED_VERSION } from "../../../../../utils/src/codegraph/manifest.ts";
6
7
  import { resolveCodegraphCommandInvocation, runCodegraphSessionStartWorker } from "../src/hook.ts";
7
8
 
8
9
  describe("CodeGraph SessionStart worker flow", () => {
9
- it("#given Windows install_dir has codegraph.cmd #when worker resolves provisioned CodeGraph #then it uses the cmd shim", async () => {
10
- await withProcessPlatform("win32", async () => {
11
- // given
12
- const workspace = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-win32-"));
13
- const homeDir = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-win32-home-"));
14
- const installDir = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-win32-install-"));
15
- const binPath = join(installDir, "bin", "codegraph.cmd");
16
- const calls: { readonly args: readonly string[]; readonly command: string; readonly env: Record<string, string> }[] = [];
17
- const outcomes: unknown[] = [];
18
- try {
19
- mkdirSync(join(installDir, "bin"), { recursive: true });
20
- writeFileSync(binPath, "");
10
+ it("#given install_dir has the pinned platform binary #when worker resolves provisioned CodeGraph #then it uses that launcher", async () => {
11
+ // given
12
+ const workspace = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-platform-"));
13
+ const homeDir = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-platform-home-"));
14
+ const installDir = mkdtempSync(join(tmpdir(), "omo-codegraph-worker-platform-install-"));
15
+ const binPath = join(installDir, "bin", process.platform === "win32" ? "codegraph.cmd" : "codegraph");
16
+ const calls: { readonly args: readonly string[]; readonly command: string; readonly env: Record<string, string> }[] = [];
17
+ const outcomes: unknown[] = [];
18
+ try {
19
+ mkdirSync(join(installDir, "bin"), { recursive: true });
20
+ mkdirSync(join(installDir, ".provisioned"), { recursive: true });
21
+ writeFileSync(binPath, "");
22
+ writeFileSync(
23
+ join(installDir, ".provisioned", `codegraph-${CODEGRAPH_PINNED_VERSION}.json`),
24
+ `${JSON.stringify({ binPath, version: CODEGRAPH_PINNED_VERSION })}\n`,
25
+ );
21
26
 
22
- // when
23
- const result = await runCodegraphSessionStartWorker({
24
- config: { codegraph: { enabled: true, install_dir: installDir }, sources: [], trustedCodegraphInstallDir: installDir, warnings: [] },
25
- nodeVersion: "22.14.0",
26
- cwd: workspace,
27
- env: { HOME: homeDir },
28
- logOutcome: (outcome) => outcomes.push(outcome),
29
- deps: {
30
- ensureGitignored: () => true,
31
- ensureProvisioned: () => {
32
- throw new Error("provisioning should not run when install_dir binary exists");
33
- },
34
- prepareWorkspace: () => ({
35
- dataDir: join(homeDir, ".omo/codegraph/projects/test"),
36
- dataRoot: join(homeDir, ".omo/codegraph"),
37
- linked: true,
38
- mode: "global-linked",
39
- projectLink: join(workspace, ".codegraph"),
40
- }),
41
- resolveCommand: (options) => {
42
- const provisioned = options?.provisioned?.() ?? null;
43
- return { argsPrefix: [], command: provisioned ?? "missing-codegraph", exists: provisioned !== null, source: provisioned === null ? "path" : "provisioned" };
44
- },
45
- runCommand: (_projectRoot, command, args, options) => {
46
- calls.push({ args, command, env: options.env });
47
- return Promise.resolve({ exitCode: 0, stdout: calls.length === 1 ? '{"initialized":false}' : "", timedOut: false });
48
- },
27
+ // when
28
+ const result = await runCodegraphSessionStartWorker({
29
+ config: { codegraph: { enabled: true, install_dir: installDir }, sources: [], trustedCodegraphInstallDir: installDir, warnings: [] },
30
+ nodeVersion: "22.14.0",
31
+ cwd: workspace,
32
+ env: { HOME: homeDir },
33
+ logOutcome: (outcome) => outcomes.push(outcome),
34
+ deps: {
35
+ ensureGitignored: () => true,
36
+ ensureProvisioned: () => {
37
+ throw new Error("provisioning should not run when install_dir binary exists");
49
38
  },
50
- });
39
+ prepareWorkspace: () => ({
40
+ dataDir: join(homeDir, ".omo/codegraph/projects/test"),
41
+ dataRoot: join(homeDir, ".omo/codegraph"),
42
+ linked: true,
43
+ mode: "global-linked",
44
+ projectLink: join(workspace, ".codegraph"),
45
+ }),
46
+ resolveCommand: (options) => {
47
+ const provisioned = options?.provisioned?.() ?? null;
48
+ return { argsPrefix: [], command: provisioned ?? "missing-codegraph", exists: provisioned !== null, source: provisioned === null ? "path" : "provisioned" };
49
+ },
50
+ runCommand: (_projectRoot, command, args, options) => {
51
+ calls.push({ args, command, env: options.env });
52
+ return Promise.resolve({ exitCode: 0, stdout: calls.length === 1 ? '{"initialized":false}' : "", timedOut: false });
53
+ },
54
+ },
55
+ });
51
56
 
52
- // then
53
- expect(result).toEqual({ action: "initialized" });
54
- expect(calls.map((call) => ({ args: [...call.args], command: call.command }))).toEqual([
55
- { args: ["status", "--json"], command: binPath },
56
- { args: ["init"], command: binPath },
57
- ]);
58
- expect(calls[0]?.env["CODEGRAPH_INSTALL_DIR"]).toBe(installDir);
59
- expect(outcomes).toEqual([{ action: "initialized", exitCode: 0, projectRoot: workspace, source: "provisioned", timedOut: false }]);
60
- } finally {
61
- rmSync(workspace, { recursive: true, force: true });
62
- rmSync(homeDir, { recursive: true, force: true });
63
- rmSync(installDir, { recursive: true, force: true });
64
- }
65
- });
57
+ // then
58
+ expect(result).toEqual({ action: "initialized" });
59
+ expect(calls.map((call) => ({ args: [...call.args], command: call.command }))).toEqual([
60
+ { args: ["status", "--json"], command: binPath },
61
+ { args: ["init"], command: binPath },
62
+ ]);
63
+ expect(calls[0]?.env["CODEGRAPH_INSTALL_DIR"]).toBe(installDir);
64
+ expect(outcomes).toEqual([{ action: "initialized", exitCode: 0, projectRoot: workspace, source: "provisioned", timedOut: false }]);
65
+ } finally {
66
+ rmSync(workspace, { recursive: true, force: true });
67
+ rmSync(homeDir, { recursive: true, force: true });
68
+ rmSync(installDir, { recursive: true, force: true });
69
+ }
66
70
  });
67
71
 
68
72
  it("#given Windows codegraph.cmd #when default worker runner builds invocation #then it runs through cmd.exe", () => {
@@ -251,13 +255,3 @@ describe("CodeGraph SessionStart worker flow", () => {
251
255
  }
252
256
  });
253
257
  });
254
-
255
- async function withProcessPlatform(platform: NodeJS.Platform, run: () => Promise<void>): Promise<void> {
256
- const descriptor = Object.getOwnPropertyDescriptor(process, "platform");
257
- Object.defineProperty(process, "platform", { configurable: true, enumerable: true, value: platform });
258
- try {
259
- await run();
260
- } finally {
261
- if (descriptor !== undefined) Object.defineProperty(process, "platform", descriptor);
262
- }
263
- }
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 4.19.1) Checking Comments"
11
+ "statusMessage": "(OmO 4.19.2) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 4.19.1) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 4.19.2) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 4.19.1) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 4.19.2) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 4.19.1) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 4.19.2) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "4.19.1",
4
- "inputDigest": "sha256:b64d94982c0d046c8e6ab9bf7628f1f18be57ac6418179257b2fda95228dc38a",
3
+ "version": "4.19.2",
4
+ "inputDigest": "sha256:e3b790af9754f934c7eeebe6a7d023ac12cdff1e9f8f519e30fbcb53ada9ac14",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 4.19.1) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 4.19.2) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 4.19.1) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 4.19.2) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 4.19.1) Loading Project Rules"
10
+ "statusMessage": "(OmO 4.19.2) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 4.19.1) Loading Project Rules"
22
+ "statusMessage": "(OmO 4.19.2) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 4.19.1) Matching Project Rules"
35
+ "statusMessage": "(OmO 4.19.2) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 4.19.1) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 4.19.2) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -40,7 +40,7 @@ You are mid-flight on a Prometheus work plan; this turn is an automatic continua
40
40
 
41
41
  # Final gate
42
42
 
43
- Before completion, satisfy all five `review-work` lanes and a `debugging` runtime audit; inconclusive lanes or an inconclusive audit fail. Each pass binds to the exact full commit SHA it reviewed. Immediately append a durable task-evidence record to `{{LEDGER_PATH}}` for every passing lane and the debugging audit with its name, full SHA, verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and verify the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable coverage. Do not create a PR, PR handoff, branch handoff, merge, or final completion answer until this gate passes. For PR/branch work, stay in the task-owned worktree: create/update the PR, wait for CI/review/Cubic gates, merge by default unless explicitly opted out, then clean up. After the gate and lifecycle pass, mark the Boulder work completed before the final answer. Redact secrets, tokens, credentials, auth headers, cookies, env dumps, logs, and PII.
43
+ Before completion, satisfy all five `review-work` lanes and a `debugging` runtime audit; inconclusive lanes or an inconclusive audit fail. Each pass binds to the exact full commit SHA it reviewed. Immediately append a durable task-evidence record to `{{LEDGER_PATH}}` for every passing lane and the debugging audit with its name, full SHA, verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and verify the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable coverage. Do not create a PR, PR handoff, branch handoff, merge, or final completion answer until this gate passes. For PR/branch work, stay in the task-owned worktree: create/update the PR, wait for CI/review/Cubic gates, merge by default unless explicitly opted out, then clean up. After the gate and lifecycle pass, mark the Boulder work completed before the final answer. Redact secrets, tokens, credentials, auth headers, cookies, env dumps, logs, and PII. Honor the delivery mode recorded in the goal/ledger at session start: `--make-pr` hands off with the PR URL after the PR opens (merge only on explicit user ask); `--ship` keeps working until the PR is MERGED - CI and review gates fixed and addressed - then removes the worktree and syncs `.omo/` state back.
44
44
 
45
45
  # Stop conditions for THIS turn
46
46
 
@@ -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.19.1) Checking Start-Work Continuation"
10
+ "statusMessage": "(OmO 4.19.2) Checking Start-Work Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 4.19.1) Checking Start-Work Continuation"
22
+ "statusMessage": "(OmO 4.19.2) Checking Start-Work Continuation"
23
23
  }
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-start-work-continuation",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex start-work plans.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 4.19.1) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 4.19.2) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 4.19.1) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 4.19.2) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -404,13 +404,18 @@ Procedure (NON-NEGOTIABLE):
404
404
  2-attempt stop rule below) — do not loop further.
405
405
 
406
406
  # Commits
407
- Atomic, Conventional Commits (`<type>(<scope>): <imperative>` feat /
408
- fix / refactor / test / docs / chore / build / ci / perf). One logical
409
- change per commit; each commit builds + tests green on its own. No WIP
410
- on the final branch. If a plan file exists, final commit footer:
411
- `Plan: .omo/plans/<slug>.md`. Do NOT auto-`git commit` unless the user
412
- requested or preauthorised this session default is stage + draft
413
- message + present for approval.
407
+ Commit frequently: one atomic commit per verified increment (RED→GREEN
408
+ + its evidence), never one end-of-run omnibus; each commit builds +
409
+ tests green on its own; no WIP on the final branch.
410
+ BEFORE composing each message, read the history and mimic it: run
411
+ `git log --oneline -20` plus `git log -5 -- <touched paths>` and match
412
+ the observed convention subject shape, scope names, message language,
413
+ body style, and typical commit size. Default to Conventional Commits
414
+ (`<type>(<scope>): <imperative>` — feat / fix / refactor / test / docs /
415
+ chore / build / ci / perf) only where history shows no stronger local
416
+ convention. If a plan file exists, final commit footer:
417
+ `Plan: .omo/plans/<slug>.md`. Skip committing only when the user forbade
418
+ commits this session — then stage + draft the message instead.
414
419
 
415
420
  # Constraints
416
421
  - Every behavior change needs a failing-first proof captured BEFORE
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 4.19.1) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 4.19.2) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -411,13 +411,18 @@ Procedure (NON-NEGOTIABLE):
411
411
  2-attempt stop rule below) — do not loop further.
412
412
 
413
413
  # Commits
414
- Atomic, Conventional Commits (`<type>(<scope>): <imperative>` feat /
415
- fix / refactor / test / docs / chore / build / ci / perf). One logical
416
- change per commit; each commit builds + tests green on its own. No WIP
417
- on the final branch. If a plan file exists, final commit footer:
418
- `Plan: .omo/plans/<slug>.md`. Do NOT auto-`git commit` unless the user
419
- requested or preauthorised this session default is stage + draft
420
- message + present for approval.
414
+ Commit frequently: one atomic commit per verified increment (RED→GREEN
415
+ + its evidence), never one end-of-run omnibus; each commit builds +
416
+ tests green on its own; no WIP on the final branch.
417
+ BEFORE composing each message, read the history and mimic it: run
418
+ `git log --oneline -20` plus `git log -5 -- <touched paths>` and match
419
+ the observed convention subject shape, scope names, message language,
420
+ body style, and typical commit size. Default to Conventional Commits
421
+ (`<type>(<scope>): <imperative>` — feat / fix / refactor / test / docs /
422
+ chore / build / ci / perf) only where history shows no stronger local
423
+ convention. If a plan file exists, final commit footer:
424
+ `Plan: .omo/plans/<slug>.md`. Skip committing only when the user forbade
425
+ commits this session — then stage + draft the message instead.
421
426
 
422
427
  # Constraints
423
428
  - Every behavior change needs a failing-first proof captured BEFORE
@@ -108,5 +108,5 @@ Roles: `explorer` (internal patterns/conventions/tests), `librarian` (external d
108
108
 
109
109
  ## Stop rules
110
110
 
111
- - Plan file exists, template filled, every todo has references + acceptance + QA + commit, dependency matrix consistent, and any required high-accuracy receipts are recorded: present the summary, then (CLEAR without `review_required`) ask the start-or-high-accuracy question, or (CLEAR with `review_required` / UNCLEAR) report the review result - and stop. **Never begin execution yourself.**
111
+ - Plan file exists, template filled, every todo has references + acceptance + QA + commit, dependency matrix consistent, and any required high-accuracy receipts are recorded: present the handoff explanation (Phase 4 delivery format in `references/full-workflow.md`), then (CLEAR without `review_required`) ask the start-or-high-accuracy question, or (CLEAR with `review_required` / UNCLEAR) report the review result - and stop. **Never begin execution yourself.**
112
112
  - Brief presented and `status: awaiting-approval` recorded: wait. Do not re-explore unless the user changes scope.
@@ -168,6 +168,17 @@ Runs in parallel; ALL must APPROVE; surface results and wait for the user's expl
168
168
  - CLEAR with `review_required: true`: run the high-accuracy review before delivery, record receipts, then present the plan summary and review result. Do not ask whether to run the review; the user already asked.
169
169
  - UNCLEAR: run the high-accuracy review AUTOMATICALLY before presenting (unless Classify=Trivial), then present a brief that LEADS with the derived approach and the adopted defaults; still wait for the user's explicit okay.
170
170
 
171
+ ### Handoff explanation (the mandatory shape of every plan summary)
172
+
173
+ Every "present the plan summary/brief" above delivers THIS structure, in the user's language, derived from the finished plan file (COUNT the rows - never estimate):
174
+
175
+ 1. **What this plan drives** - the work it performs, in 1-2 sentences.
176
+ 2. **End state** - the concrete things that will exist or behave differently once execution finishes.
177
+ 3. **Shape** - how many phases/waves and how many tasks: N implementation todos (`- [ ] N.` rows) + F final-verification tasks (`- [ ] F<n>.` rows).
178
+ 4. **Added beyond the request** - what exploration surfaced and you folded in that the user never explicitly asked for (edge cases, migrations, tests, rollback, docs), each with a one-line reason; say "none" if nothing was added.
179
+ 5. **Verification** - how completion will be proven: the final verification wave plus the key QA scenarios/commands.
180
+ 6. **Execution handoff** - the plan runs in a worker session via `$start-work <plan-name>`; introduce the options: `--worktree <absolute-path>` (task-owned worktree; required for PR/branch work), `--make-pr` (deliver as a PR; auto-creates a task-owned worktree), `--ship` (implies `--make-pr`, keeps working until the PR is reviewed and MERGED).
181
+
171
182
  ### High-accuracy review (dual review)
172
183
  The high-accuracy review is DUAL and both passes must return OKAY before handoff: (1) the native `momus` reviewer subagent, and (2) an independent Codex CLI review on gpt-5.6-sol at xhigh reasoning, run in a disposable isolated workspace and `CODEX_HOME` with the harness's normal approval and sandbox policy. Do not add flags that disable approvals or sandboxing. Momus runs at High and may take substantially longer than other agents. One round = exactly ONE `momus` + ONE independent review, dispatched together against the COMPLETE plan file (todos + TL;DR filled) at the draft's exact recorded `plan_path`. Keep Momus in flight and wait for its terminal result: elapsed time alone never justifies cancelling, duplicating, replacing, or treating it as failed. After both verdicts return, fix every cited issue and resubmit both fresh until each approves. CLEAR: runs when the user opts in or `review_required: true`. UNCLEAR: runs automatically unless Classify=Trivial.
173
184
 
@@ -212,6 +223,6 @@ If your tool list has a flat `spawn_agent` with a required `task_name` instead o
212
223
  Roles: `explorer`, `librarian`, `metis`, `momus`. Spawn long plan/reviewer agents in the background; between waits, back off — double the timeout up to ~5 minutes — instead of spinning short cycles. Require the child to send `WORKING: <task> - <phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A wait timeout only means no new mailbox update arrived; treat a running child as alive. Fall back only when the child completed without the deliverable, is ack-only after followup, explicitly `BLOCKED:`, or no longer running; then respawn a smaller `fork_context: false` job. Close each agent after integrating its result.
213
224
 
214
225
  ## Stop rules
215
- - Plan file exists, template filled, every todo has references + acceptance + QA + commit, dependency matrix consistent, and any required high-accuracy receipts recorded: present the summary, then (CLEAR without `review_required`) ask the start-or-high-accuracy question, or (CLEAR with `review_required` / UNCLEAR) report the review result - and stop. Execution belongs to the worker, never to you.
226
+ - Plan file exists, template filled, every todo has references + acceptance + QA + commit, dependency matrix consistent, and any required high-accuracy receipts recorded: present the handoff explanation (Phase 4 format), then (CLEAR without `review_required`) ask the start-or-high-accuracy question, or (CLEAR with `review_required` / UNCLEAR) report the review result - and stop. Execution belongs to the worker, never to you.
216
227
  - Brief presented and `status: awaiting-approval` recorded: wait. Do not re-explore unless the user changes scope.
217
228
  - Two research waves with no new useful facts: stop exploring, present the brief.
@@ -30,7 +30,7 @@ CLEARANCE CHECK after each turn: objective defined? scope IN/OUT explicit? appro
30
30
  </interview>
31
31
 
32
32
  <approval_and_deliver>
33
- Run the durable approval gate (mechanics in `full-workflow.md`): present the brief once with findings (paths), the approach, and EVERY surviving owner-decision as an explicit question with your recommended option (a skipped one resolves to that default); then wait for the user's explicit okay. If "start now, or review first?" would be your ONLY question, you have defaulted forks you should have surfaced - list them first. After approval: scaffold the files, run mandatory Metis, APPEND the todos, fill the human TL;DR last. Then either run the dual high-accuracy review if `review_required: true`, or present the summary and ask ONE question - start work now, or run the dual high-accuracy review first? Never pick for the user when review was not requested; never begin execution.
33
+ Run the durable approval gate (mechanics in `full-workflow.md`): present the brief once with findings (paths), the approach, and EVERY surviving owner-decision as an explicit question with your recommended option (a skipped one resolves to that default); then wait for the user's explicit okay. If "start now, or review first?" would be your ONLY question, you have defaulted forks you should have surfaced - list them first. After approval: scaffold the files, run mandatory Metis, APPEND the todos, fill the human TL;DR last. Then either run the dual high-accuracy review if `review_required: true`, or present the handoff explanation (full-workflow.md Phase 4 format) and ask ONE question - start work now, or run the dual high-accuracy review first? Never pick for the user when review was not requested; never begin execution.
34
34
  </approval_and_deliver>
35
35
 
36
36
  <worked_example>
@@ -404,13 +404,18 @@ Procedure (NON-NEGOTIABLE):
404
404
  2-attempt stop rule below) — do not loop further.
405
405
 
406
406
  # Commits
407
- Atomic, Conventional Commits (`<type>(<scope>): <imperative>` feat /
408
- fix / refactor / test / docs / chore / build / ci / perf). One logical
409
- change per commit; each commit builds + tests green on its own. No WIP
410
- on the final branch. If a plan file exists, final commit footer:
411
- `Plan: .omo/plans/<slug>.md`. Do NOT auto-`git commit` unless the user
412
- requested or preauthorised this session default is stage + draft
413
- message + present for approval.
407
+ Commit frequently: one atomic commit per verified increment (RED→GREEN
408
+ + its evidence), never one end-of-run omnibus; each commit builds +
409
+ tests green on its own; no WIP on the final branch.
410
+ BEFORE composing each message, read the history and mimic it: run
411
+ `git log --oneline -20` plus `git log -5 -- <touched paths>` and match
412
+ the observed convention subject shape, scope names, message language,
413
+ body style, and typical commit size. Default to Conventional Commits
414
+ (`<type>(<scope>): <imperative>` — feat / fix / refactor / test / docs /
415
+ chore / build / ci / perf) only where history shows no stronger local
416
+ convention. If a plan file exists, final commit footer:
417
+ `Plan: .omo/plans/<slug>.md`. Skip committing only when the user forbade
418
+ commits this session — then stage + draft the message instead.
414
419
 
415
420
  # Constraints
416
421
  - Every behavior change needs a failing-first proof captured BEFORE
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 4.19.1) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 4.19.2) Checking Ulw-Loop Steering"
11
11
  }
12
12
  ]
13
13
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 4.19.1) Enforcing Unlimited Ulw-Loop Budget"
23
+ "statusMessage": "(OmO 4.19.2) Enforcing Unlimited Ulw-Loop Budget"
24
24
  }
25
25
  ]
26
26
  },
@@ -31,7 +31,7 @@
31
31
  "type": "command",
32
32
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
33
33
  "timeout": 5,
34
- "statusMessage": "(OmO 4.19.1) Guarding Ulw-Loop Spawns"
34
+ "statusMessage": "(OmO 4.19.2) Guarding Ulw-Loop Spawns"
35
35
  }
36
36
  ]
37
37
  }
@@ -43,7 +43,7 @@
43
43
  "type": "command",
44
44
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
45
45
  "timeout": 10,
46
- "statusMessage": "(OmO 4.19.1) Checking Ulw-Loop Resume"
46
+ "statusMessage": "(OmO 4.19.2) Checking Ulw-Loop Resume"
47
47
  }
48
48
  ]
49
49
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "4.19.1",
3
+ "version": "4.19.2",
4
4
  "description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -20,6 +20,7 @@ This skill is intentionally compact. The full workflow lives in `references/full
20
20
  ## Non-Negotiables
21
21
 
22
22
  - Use the ulw-loop CLI state under `.omo/ulw-loop`; do not hand-edit goal state.
23
+ - Register goals up front (`omo ulw-loop create-goals`, then `create_goal` from the printed handoff) and mirror every atomic step into the live `update_plan` checklist: one ultra-granular step per action, exactly one in_progress, transitions marked the instant they happen.
23
24
  - After any compaction or context loss, re-read brief + goals + ledger FIRST plus `omo ulw-loop status --json`, then resume; never re-plan from scratch.
24
25
  - If `omo ulw-loop create-goals` says the existing aggregate is already complete, start unrelated new work with a fresh `--session-id <new-id>` instead of steering or forcing the completed default state. Use `--force` only to intentionally overwrite completed evidence.
25
26
  - Every success criterion needs observable evidence from a real surface: a channel (terminal/TUI via the xterm.js web terminal, HTTP, browser, computer-use) or, for CLI- or data-shaped criteria, an auxiliary surface (CLI stdout, DB diff, parsed config dump).
@@ -31,7 +32,7 @@ This skill is intentionally compact. The full workflow lives in `references/full
31
32
  - Track spawned agent names locally. Use `wait_agent` for mailbox signals, not proof of completion. A timeout only means no new mailbox update arrived. Treat a running child as alive.
32
33
  - While children run, surface the active subagent count, agent names, and latest `WORKING:` phase.
33
34
  - Fallback only when the child is completed without the deliverable, ack-only after `followup_task`, explicitly `BLOCKED:`, or no longer running. Then record inconclusive and respawn a smaller `fork_turns: "none"` task with the missing deliverable.
34
- - Use `git-master` for git-tracked edits: inspect recent and touched-path commit history, then commit each verified work unit atomically in the repository's observed language, scope, and message style with only that unit's files staged.
35
+ - Use `git-master` for git-tracked edits: inspect recent and touched-path commit history, then commit each verified work unit atomically in the repository's observed language, scope, and message style with only that unit's files staged. Never carry verified units into a later omnibus commit.
35
36
 
36
37
  ## Codex Tool Mapping
37
38
 
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 4.19.1) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 4.19.2) Resetting Git Bash MCP Reminder",
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 post-compact"
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-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 4.19.1) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 4.19.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
  ],