oh-my-opencode 5.0.0-beta.67 → 5.0.0-beta.68

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 (74) hide show
  1. package/dist/cli/index.js +14 -14
  2. package/dist/cli-node/index.js +14 -14
  3. package/dist/index.js +13 -13
  4. package/package.json +13 -13
  5. package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +9 -1
  6. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +43 -8
  7. package/packages/lsp-core/src/lsp/controlled-clock-test-support.ts +29 -0
  8. package/packages/lsp-core/src/lsp/workspace-document-state.ts +5 -0
  9. package/packages/lsp-daemon/dist/cli.js +2 -0
  10. package/packages/lsp-daemon/dist/client.js +2 -0
  11. package/packages/lsp-daemon/dist/index.js +2 -0
  12. package/packages/lsp-tools-mcp/dist/cli.js +2 -0
  13. package/packages/lsp-tools-mcp/dist/lsp/manager.js +2 -0
  14. package/packages/lsp-tools-mcp/dist/mcp.js +2 -0
  15. package/packages/lsp-tools-mcp/dist/tools.js +2 -0
  16. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  17. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  18. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  22. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  23. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  24. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  25. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  26. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +2 -0
  27. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  28. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  29. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  30. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  36. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +1 -0
  40. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +26 -2
  41. package/packages/omo-codex/plugin/components/ulw-loop/dist/ledger.js +6 -1
  42. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-commit.js +2 -1
  43. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.d.ts +2 -1
  44. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.js +30 -1
  45. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  46. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  47. package/packages/omo-codex/plugin/components/ulw-loop/src/ledger.ts +6 -1
  48. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-commit.ts +9 -1
  49. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-log.ts +30 -2
  50. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-log-legacy-projection.test.ts +228 -0
  51. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  72. package/packages/omo-codex/plugin/package-lock.json +12 -12
  73. package/packages/omo-codex/plugin/package.json +1 -1
  74. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
@@ -0,0 +1,228 @@
1
+ import { appendFileSync, existsSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { mkdtemp, rm } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
6
+ import { ulwLoopDir } from "../src/paths.js";
7
+ import { readLedger, readUlwLoopPlan } from "../src/plan-io.js";
8
+ import { readNewestRecord } from "../src/plan-log.js";
9
+ import { createAgentToolkit } from "../src/sdk.js";
10
+ import type { UlwLoopItem, UlwLoopLedgerEntry, UlwLoopPlan } from "../src/types.js";
11
+ import { goal } from "./fixtures/checkpoint-builders.js";
12
+
13
+ // Reproduces #8328: a run created under the removed `omo_agent_toolkit` tool path published
14
+ // `revisions/00000004.json` while the plan held one goal, then kept mutating goals.json and appending
15
+ // ledger.jsonl lines DIRECTLY (no `revision`, no `id`) for goals the commit log never saw. The
16
+ // agent-toolkit-sdk runtime then rebuilt the projection from the snapshot and every later goal vanished.
17
+ const SESSION = "legacy-projection";
18
+ const LEGACY_AT = "2026-09-16T01:00:00.000Z";
19
+ let cwd: string;
20
+ let dir: string;
21
+ let legacyGoals: UlwLoopItem[];
22
+
23
+ function toolkit() {
24
+ return createAgentToolkit({ cwd, sessionId: SESSION, surface: "omo-senpi" });
25
+ }
26
+ function ledgerLine(entry: UlwLoopLedgerEntry): string {
27
+ return `${JSON.stringify(entry)}\n`;
28
+ }
29
+ function goalsOnDisk(): UlwLoopPlan {
30
+ return JSON.parse(readFileSync(join(dir, "goals.json"), "utf8"));
31
+ }
32
+ async function seedSnapshotWithOneGoal(): Promise<void> {
33
+ const created = await toolkit().createGoals({ brief: "- alpha goal" });
34
+ if (!created.ok) throw new Error("fixture could not create goals");
35
+ const started = await toolkit().completeGoals({});
36
+ if (!started.ok || started.operation !== "complete-goals" || "done" in started.result)
37
+ throw new Error("fixture could not start alpha");
38
+ const goalId = started.result.goal.id;
39
+ const criteria = await toolkit().criteria({ goalId });
40
+ if (!criteria.ok || criteria.operation !== "criteria") throw new Error("fixture has no criteria");
41
+ // Two evidence captures on alpha -> revisions 3 and 4; the snapshot under test is 00000004.json.
42
+ for (const criterion of criteria.result.criteria.slice(0, 2)) {
43
+ const recorded = await toolkit().recordEvidence({
44
+ goalId,
45
+ criterionId: criterion.id,
46
+ status: "pass",
47
+ evidence: "alpha proof",
48
+ });
49
+ if (!recorded.ok) throw new Error("fixture could not record alpha evidence");
50
+ }
51
+ }
52
+ // The removed tool path rewrote goals.json wholesale (never stamping `revision`) and appended raw
53
+ // ledger lines; this is that write, byte-shape included.
54
+ function appendLegacyGoals(): void {
55
+ const plan = goalsOnDisk();
56
+ delete plan.revision;
57
+ legacyGoals = [
58
+ goal({
59
+ id: "G002-legacy-done",
60
+ title: "legacy done",
61
+ status: "complete",
62
+ completedAt: LEGACY_AT,
63
+ evidence: "legacy done proof",
64
+ }),
65
+ goal({ id: "G003-legacy-active", title: "legacy active", status: "in_progress", startedAt: LEGACY_AT }),
66
+ goal({ id: "G004-legacy-pending", title: "legacy pending", status: "pending", attempt: 0, successCriteria: [] }),
67
+ ];
68
+ plan.goals.push(...legacyGoals);
69
+ plan.activeGoalId = "G003-legacy-active";
70
+ plan.updatedAt = LEGACY_AT;
71
+ writeFileSync(join(dir, "goals.json"), `${JSON.stringify(plan, null, 2)}\n`);
72
+ const entries: UlwLoopLedgerEntry[] = [
73
+ ...legacyGoals.map((item) => ({
74
+ at: LEGACY_AT,
75
+ kind: "goal_added" as const,
76
+ goalId: item.id,
77
+ status: item.status,
78
+ message: item.title,
79
+ })),
80
+ { at: LEGACY_AT, kind: "goal_started", goalId: "G002-legacy-done", status: "in_progress", message: "Attempt 1" },
81
+ {
82
+ at: LEGACY_AT,
83
+ kind: "evidence_captured",
84
+ goalId: "G002-legacy-done",
85
+ criterionId: "C001",
86
+ criterionStatus: "pass",
87
+ evidence: "C001 passed",
88
+ },
89
+ {
90
+ at: LEGACY_AT,
91
+ kind: "goal_completed",
92
+ goalId: "G002-legacy-done",
93
+ status: "complete",
94
+ evidence: "legacy done proof",
95
+ },
96
+ {
97
+ at: LEGACY_AT,
98
+ kind: "goal_started",
99
+ goalId: "G003-legacy-active",
100
+ status: "in_progress",
101
+ message: "Attempt 1",
102
+ },
103
+ {
104
+ at: LEGACY_AT,
105
+ kind: "evidence_captured",
106
+ goalId: "G003-legacy-active",
107
+ criterionId: "C001",
108
+ criterionStatus: "pass",
109
+ evidence: "C001 passed",
110
+ },
111
+ ];
112
+ appendFileSync(join(dir, "ledger.jsonl"), entries.map(ledgerLine).join(""));
113
+ }
114
+
115
+ beforeEach(async () => {
116
+ cwd = await mkdtemp(join(tmpdir(), "ulw-legacy-projection-"));
117
+ dir = ulwLoopDir(cwd, { sessionId: SESSION });
118
+ await seedSnapshotWithOneGoal();
119
+ expect(readNewestRecord(dir)?.revision).toBe(4);
120
+ expect(readNewestRecord(dir)?.plan.goals).toHaveLength(1);
121
+ appendLegacyGoals();
122
+ });
123
+ afterEach(async () => {
124
+ await rm(cwd, { recursive: true, force: true });
125
+ });
126
+
127
+ describe("#given snapshot 4 holds one goal and the legacy tool path appended three goals with evidence afterwards", () => {
128
+ it("#when status rebuilds the projection #then every legacy goal, its evidence and its ledger events survive", async () => {
129
+ const status = await toolkit().status();
130
+
131
+ expect(status.ok).toBe(true);
132
+ if (!status.ok || status.operation !== "status") return;
133
+ expect(status.result.plan.goals.map((item) => item.id)).toEqual([
134
+ "G001-alpha-goal",
135
+ "G002-legacy-done",
136
+ "G003-legacy-active",
137
+ "G004-legacy-pending",
138
+ ]);
139
+ const done = status.result.plan.goals.find((item) => item.id === "G002-legacy-done");
140
+ expect(done?.status).toBe("complete");
141
+ expect(done?.successCriteria.map((criterion) => criterion.capturedEvidence)).toEqual([
142
+ "C001 passed",
143
+ "C002 passed",
144
+ "C003 passed",
145
+ ]);
146
+ expect(status.result.plan.activeGoalId).toBe("G003-legacy-active");
147
+ const ledger = readLedger(cwd, { sessionId: SESSION });
148
+ expect(ledger.filter((entry) => entry.kind === "goal_added").map((entry) => entry.goalId)).toEqual(
149
+ legacyGoals.map((item) => item.id),
150
+ );
151
+ expect(ledger.filter((entry) => entry.goalId === "G002-legacy-done").map((entry) => entry.kind)).toEqual([
152
+ "goal_added",
153
+ "goal_started",
154
+ "evidence_captured",
155
+ "goal_completed",
156
+ ]);
157
+ });
158
+
159
+ it("#when evidence is recorded on a legacy goal #then it succeeds and publishes revision 5 holding all four goals", async () => {
160
+ const recorded = await toolkit().recordEvidence({
161
+ goalId: "G003-legacy-active",
162
+ criterionId: "C002",
163
+ status: "pass",
164
+ evidence: "recorded after the runtime switch",
165
+ });
166
+
167
+ expect(recorded.ok).toBe(true);
168
+ if (!recorded.ok) return;
169
+ const newest = readNewestRecord(dir);
170
+ expect(newest?.revision).toBe(5);
171
+ expect(existsSync(join(dir, "revisions", "00000005.json"))).toBe(true);
172
+ expect(newest?.plan.goals.map((item) => item.id)).toEqual([
173
+ "G001-alpha-goal",
174
+ "G002-legacy-done",
175
+ "G003-legacy-active",
176
+ "G004-legacy-pending",
177
+ ]);
178
+ expect(newest?.plan.revision).toBe(5);
179
+ expect(goalsOnDisk().revision).toBe(5);
180
+ expect(goalsOnDisk().goals).toHaveLength(4);
181
+ // The legacy audit trail is still part of the reconciled ledger after the fold.
182
+ expect(
183
+ readLedger(cwd, { sessionId: SESSION }).some(
184
+ (entry) => entry.kind === "goal_completed" && entry.goalId === "G002-legacy-done",
185
+ ),
186
+ ).toBe(true);
187
+ });
188
+
189
+ it("#when a legacy goal is checkpointed complete #then the checkpoint succeeds and the next legacy goal is still there", async () => {
190
+ const closed = await toolkit().checkpoint({
191
+ goalId: "G003-legacy-active",
192
+ status: "complete",
193
+ evidence: "legacy goal closed after the runtime switch",
194
+ });
195
+
196
+ expect(closed.ok).toBe(true);
197
+ if (!closed.ok) return;
198
+ const plan = await readUlwLoopPlan(cwd, { sessionId: SESSION });
199
+ expect(plan.goals.find((item) => item.id === "G003-legacy-active")?.status).toBe("complete");
200
+ expect(plan.goals.find((item) => item.id === "G004-legacy-pending")?.status).toBe("pending");
201
+ expect(plan.goals).toHaveLength(4);
202
+ });
203
+ });
204
+
205
+ describe("#given the projection has already been truncated below what the ledger records", () => {
206
+ it("#when a locked operation would rewrite goals.json #then it refuses with ULW_LOOP_PROJECTION_TRUNCATED instead of dropping goals", async () => {
207
+ // The pre-fix runtime already rewrote goals.json from the one-goal snapshot; only ledger.jsonl still
208
+ // names the legacy goals.
209
+ const truncated = readNewestRecord(dir);
210
+ if (truncated === undefined) throw new Error("fixture lost its snapshot");
211
+ writeFileSync(join(dir, "goals.json"), `${JSON.stringify(truncated.plan, null, 2)}\n`);
212
+ const before = readFileSync(join(dir, "goals.json"), "utf8");
213
+
214
+ const recorded = await toolkit().recordEvidence({
215
+ goalId: "G001-alpha-goal",
216
+ criterionId: "C003",
217
+ status: "pass",
218
+ evidence: "must not be accepted on a truncated projection",
219
+ });
220
+
221
+ expect(recorded.ok).toBe(false);
222
+ if (recorded.ok) return;
223
+ expect(recorded.error.code).toBe("ULW_LOOP_PROJECTION_TRUNCATED");
224
+ expect(recorded.error.message).toContain("G002-legacy-done");
225
+ expect(readFileSync(join(dir, "goals.json"), "utf8")).toBe(before);
226
+ expect(readNewestRecord(dir)?.revision).toBe(4);
227
+ });
228
+ });
@@ -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 5.0.0-beta.67) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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/comment-checker/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 30,
10
- "statusMessage": "(OmO 5.0.0-beta.67) Checking Comments",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook post-tool-use-spawn",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.67) Recording Spawn Admission",
11
+ "statusMessage": "(OmO 5.0.0-beta.68) Recording Spawn Admission",
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 post-tool-use-spawn"
13
13
  }
14
14
  ]
@@ -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 5.0.0-beta.67) Enforcing Unlimited Goal Budget",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Guarding Ulw-Loop Spawns",
11
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Recommending Git Bash MCP",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.67) Checking Auto Update",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.68) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -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 5.0.0-beta.67) Loading Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.67) Recording Session Telemetry",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.67) Checking Ulw-Execute Continuation",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) Checking Ulw-Execute Continuation",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-execute-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 5.0.0-beta.67) Checking Ulw-Loop Resume",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.67) Verifying LazyCodex Executor Evidence",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Checking Ultrawork Trigger",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Checking Ulw-Loop Steering",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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 5.0.0-beta.67) Loading Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.68) 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": "5.0.0-beta.67",
3
+ "version": "5.0.0-beta.68",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@sisyphuslabs/omo-codex-plugin",
9
- "version": "5.0.0-beta.67",
9
+ "version": "5.0.0-beta.68",
10
10
  "workspaces": [
11
11
  "components/comment-checker",
12
12
  "components/git-bash",
@@ -90,7 +90,7 @@
90
90
  },
91
91
  "components/comment-checker": {
92
92
  "name": "@code-yeongyu/codex-comment-checker",
93
- "version": "5.0.0-beta.67",
93
+ "version": "5.0.0-beta.68",
94
94
  "license": "MIT",
95
95
  "bin": {
96
96
  "omo-comment-checker": "dist/cli.js"
@@ -111,7 +111,7 @@
111
111
  },
112
112
  "components/git-bash": {
113
113
  "name": "@sisyphuslabs/codex-git-bash-hook",
114
- "version": "5.0.0-beta.67",
114
+ "version": "5.0.0-beta.68",
115
115
  "bin": {
116
116
  "omo-git-bash-hook": "dist/cli.js"
117
117
  },
@@ -125,7 +125,7 @@
125
125
  },
126
126
  "components/lazycodex-executor-verify": {
127
127
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
128
- "version": "5.0.0-beta.67",
128
+ "version": "5.0.0-beta.68",
129
129
  "license": "MIT",
130
130
  "bin": {
131
131
  "lazycodex-executor-verify": "dist/cli.js"
@@ -142,7 +142,7 @@
142
142
  },
143
143
  "components/lsp": {
144
144
  "name": "@code-yeongyu/codex-lsp",
145
- "version": "5.0.0-beta.67",
145
+ "version": "5.0.0-beta.68",
146
146
  "license": "MIT",
147
147
  "dependencies": {
148
148
  "@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
@@ -163,7 +163,7 @@
163
163
  },
164
164
  "components/rules": {
165
165
  "name": "@code-yeongyu/codex-rules",
166
- "version": "5.0.0-beta.67",
166
+ "version": "5.0.0-beta.68",
167
167
  "license": "MIT",
168
168
  "dependencies": {
169
169
  "picomatch": "^4.0.7"
@@ -185,7 +185,7 @@
185
185
  },
186
186
  "components/teammode": {
187
187
  "name": "@sisyphuslabs/codex-teammode",
188
- "version": "5.0.0-beta.67",
188
+ "version": "5.0.0-beta.68",
189
189
  "devDependencies": {
190
190
  "@types/node": "^26.2.0",
191
191
  "bun-types": "^1.4.2",
@@ -198,7 +198,7 @@
198
198
  },
199
199
  "components/telemetry": {
200
200
  "name": "@code-yeongyu/codex-telemetry",
201
- "version": "5.0.0-beta.67",
201
+ "version": "5.0.0-beta.68",
202
202
  "license": "MIT",
203
203
  "bin": {
204
204
  "omo-telemetry": "dist/cli.js"
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "components/ultrawork": {
218
218
  "name": "@code-yeongyu/codex-ultrawork",
219
- "version": "5.0.0-beta.67",
219
+ "version": "5.0.0-beta.68",
220
220
  "license": "MIT",
221
221
  "bin": {
222
222
  "omo-ultrawork": "dist/cli.js"
@@ -234,7 +234,7 @@
234
234
  },
235
235
  "components/ulw-execute-continuation": {
236
236
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
237
- "version": "5.0.0-beta.67",
237
+ "version": "5.0.0-beta.68",
238
238
  "license": "MIT",
239
239
  "bin": {
240
240
  "omo-ulw-execute-continuation": "dist/cli.js"
@@ -251,7 +251,7 @@
251
251
  },
252
252
  "components/ulw-loop": {
253
253
  "name": "@code-yeongyu/codex-ulw-loop",
254
- "version": "5.0.0-beta.67",
254
+ "version": "5.0.0-beta.68",
255
255
  "license": "MIT",
256
256
  "bin": {
257
257
  "omo-ulw-loop": "dist/cli.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/omo-codex-plugin",
3
- "version": "5.0.0-beta.67",
3
+ "version": "5.0.0-beta.68",
4
4
  "description": "Aggregate Codex plugin root for OMO components.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // omo-codex-install:6df5dbbbb7ca9b9dce86fae98a525a9caa7de96caed85a4b77d4e8b4ab4d1501:fa6e68fc5430f9c39a4df548054e5ce6eefdb0d6b3808d246c6fb7c301b80fbc
2
+ // omo-codex-install:6df5dbbbb7ca9b9dce86fae98a525a9caa7de96caed85a4b77d4e8b4ab4d1501:b9b6e9acb0d104ca308e4c6d2a17d8f831865acfb376509c2d7b6e962cd5ba42
3
3
  var __esm = (fn, res, err) => () => {
4
4
  if (fn)
5
5
  try {
@@ -7706,7 +7706,7 @@ var package_default;
7706
7706
  var init_package = __esm(() => {
7707
7707
  package_default = {
7708
7708
  name: "@oh-my-opencode/omo-codex",
7709
- version: "5.0.0-beta.67",
7709
+ version: "5.0.0-beta.68",
7710
7710
  type: "module",
7711
7711
  private: true,
7712
7712
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",