oh-my-opencode 5.1.29 → 5.1.30

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 (121) hide show
  1. package/README.ja.md +2 -0
  2. package/README.ko.md +2 -0
  3. package/README.md +2 -0
  4. package/README.ru.md +2 -0
  5. package/README.zh-cn.md +2 -0
  6. package/dist/cli/cli-program.d.ts +1 -20
  7. package/dist/cli/index.js +942 -49
  8. package/dist/cli/install-command-options.d.ts +20 -0
  9. package/dist/cli/service-auth/browser.d.ts +3 -0
  10. package/dist/cli/service-auth/cli-keystore.fixture.d.ts +7 -0
  11. package/dist/cli/service-auth/commands.d.ts +8 -0
  12. package/dist/cli/service-auth/device-flow.d.ts +15 -0
  13. package/dist/cli/service-auth/device-keys.d.ts +10 -0
  14. package/dist/cli/service-auth/device-name.d.ts +3 -0
  15. package/dist/cli/service-auth/keystore.d.ts +20 -0
  16. package/dist/cli/service-auth/loopback.d.ts +11 -0
  17. package/dist/cli/service-auth/protocol.d.ts +86 -0
  18. package/dist/cli/service-auth/refresh-child.fixture.d.ts +1 -0
  19. package/dist/cli/service-auth/session.d.ts +17 -0
  20. package/dist/cli/service-auth/terminal-text.d.ts +1 -0
  21. package/dist/cli/service-auth/test-support.d.ts +43 -0
  22. package/dist/cli/service-auth/tls-test-certificate.d.ts +4 -0
  23. package/dist/cli-node/index.js +942 -49
  24. package/dist/features/opencode-skill-loader/opencode-shell-skill-content.d.ts +8 -0
  25. package/dist/features/opencode-skill-loader/skill-content.d.ts +1 -0
  26. package/dist/hooks/non-interactive-env/non-interactive-env-hook.d.ts +5 -1
  27. package/dist/index.js +40660 -40393
  28. package/dist/shared/disabled-agents.d.ts +1 -0
  29. package/dist/shared/opencode-shell.d.ts +27 -0
  30. package/dist/skills/browser/SKILL.md +1 -1
  31. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  32. package/dist/skills/ultimate-browsing/SKILL.md +14 -16
  33. package/dist/skills/ulw-research/SKILL.md +17 -18
  34. package/dist/skills/ulw-research/scripts/cli-support.test.ts +5 -3
  35. package/dist/skills/ulw-research/scripts/outcome.test.ts +10 -4
  36. package/dist/skills/ulw-research/scripts/report-tools.test.ts +3 -2
  37. package/dist/skills/visual-qa/scripts/cli.test.ts +5 -3
  38. package/dist/tools/session-manager/sdk-storage.d.ts +15 -2
  39. package/dist/tools/session-manager/storage.d.ts +4 -2
  40. package/dist/tui.js +85 -19
  41. package/package.json +15 -14
  42. package/packages/git-bash-mcp/dist/cli.js +1 -1
  43. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +90 -0
  44. package/packages/lsp-core/src/lsp/client.ts +3 -1
  45. package/packages/lsp-core/src/lsp/workspace-apply-edit-test-support.ts +5 -2
  46. package/packages/lsp-daemon/dist/cli.js +1 -1
  47. package/packages/lsp-daemon/dist/client.js +1 -1
  48. package/packages/lsp-daemon/dist/index.js +1 -1
  49. package/packages/lsp-tools-mcp/dist/cli.js +1 -1
  50. package/packages/lsp-tools-mcp/dist/lsp/manager.js +1 -1
  51. package/packages/lsp-tools-mcp/dist/mcp.js +1 -1
  52. package/packages/lsp-tools-mcp/dist/tools.js +1 -1
  53. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  54. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +3 -2
  55. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  56. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  57. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  58. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  59. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  60. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  61. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  62. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  63. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  64. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +1 -1
  65. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  66. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  67. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  68. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  69. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  70. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  71. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  72. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  74. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  75. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  76. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  77. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  78. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  85. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  86. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  87. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  88. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  89. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  90. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  91. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  92. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  93. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  94. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  95. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  96. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  97. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  98. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  99. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  100. package/packages/omo-codex/plugin/package-lock.json +12 -12
  101. package/packages/omo-codex/plugin/package.json +1 -1
  102. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +2 -0
  103. package/packages/omo-codex/plugin/scripts/auto-update.mjs +2 -0
  104. package/packages/omo-codex/plugin/scripts/build-bundled-mcp-runtimes.mjs +2 -0
  105. package/packages/omo-codex/plugin/scripts/build-components.mjs +1 -0
  106. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +42 -10
  107. package/packages/omo-codex/plugin/skills/browser/SKILL.md +1 -1
  108. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  109. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +14 -16
  110. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +17 -18
  111. package/packages/omo-codex/plugin/test/materialize-shared-upstreams.test.mjs +179 -0
  112. package/packages/omo-codex/plugin/test/windows-console-hide.test.mjs +150 -0
  113. package/packages/omo-codex/scripts/install-dist/install-local.mjs +7 -4
  114. package/packages/shared-skills/skills/browser/SKILL.md +1 -1
  115. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  116. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +14 -16
  117. package/packages/shared-skills/skills/ulw-research/SKILL.md +17 -18
  118. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +5 -3
  119. package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +10 -4
  120. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +3 -2
  121. package/packages/shared-skills/skills/visual-qa/scripts/cli.test.ts +5 -3
@@ -378,4 +378,94 @@ describe("LspClient diagnostics freshness", () => {
378
378
  expect(second.items).toEqual([diagnostic("cached-full")]);
379
379
  });
380
380
 
381
+ // #9476: the server delays whichever message must come second, so the arrival order at the client
382
+ // is fixed by the fake server instead of scheduler luck. The controlled clock keeps the freshness
383
+ // window from firing: only the matching push publish may resolve the call.
384
+ it("#given the unsupported-pull error response arrives before the matching push publish #when diagnostics run #then the client resolves to that publish", async () => {
385
+ const clock = new ControlledClock();
386
+ const context = await harness.makeClient(
387
+ {
388
+ capabilities: { diagnosticProvider: { interFileDependencies: false, workspaceDiagnostics: false } },
389
+ publishDiagnostics: [
390
+ {
391
+ trigger: "diagnosticRequest",
392
+ version: 1,
393
+ delayMs: 150,
394
+ diagnostics: [diagnostic("error-first")],
395
+ awaitClientDelivery: true,
396
+ },
397
+ ],
398
+ diagnosticResponses: [{ error: { code: -32601, message: "Method not found" } }],
399
+ },
400
+ { diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5, timerProvider: clock },
401
+ );
402
+
403
+ const result = await context.client.diagnostics(context.source);
404
+
405
+ expect(result.items).toEqual([diagnostic("error-first")]);
406
+ expect(result.transientError).toBeUndefined();
407
+ });
408
+
409
+ it("#given the matching push publish arrives before the unsupported-pull error response #when diagnostics run #then the client resolves to that publish", async () => {
410
+ const clock = new ControlledClock();
411
+ const context = await harness.makeClient(
412
+ {
413
+ capabilities: { diagnosticProvider: { interFileDependencies: false, workspaceDiagnostics: false } },
414
+ publishDiagnostics: [
415
+ {
416
+ trigger: "diagnosticRequest",
417
+ version: 1,
418
+ diagnostics: [diagnostic("publish-first")],
419
+ awaitClientDelivery: true,
420
+ },
421
+ ],
422
+ diagnosticResponses: [{ delayMs: 150, error: { code: -32601, message: "Method not found" } }],
423
+ },
424
+ { diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5, timerProvider: clock },
425
+ );
426
+
427
+ const result = await context.client.diagnostics(context.source);
428
+
429
+ expect(result.items).toEqual([diagnostic("publish-first")]);
430
+ expect(result.transientError).toBeUndefined();
431
+ });
432
+
433
+ it("#given the matching push publish arrived while the pull was in flight and the freshness window elapsed before the unsupported-pull error response #when diagnostics run #then the client resolves to that publish instead of clean", async () => {
434
+ const clock = new ControlledClock();
435
+ let skewMs = 0;
436
+ const skewedClock = {
437
+ now: () => clock.now() + skewMs,
438
+ setTimeout: clock.setTimeout,
439
+ clearTimeout: clock.clearTimeout,
440
+ };
441
+ const context = await harness.makeClient(
442
+ {
443
+ capabilities: { diagnosticProvider: { interFileDependencies: false, workspaceDiagnostics: false } },
444
+ publishDiagnostics: [
445
+ {
446
+ trigger: "diagnosticRequest",
447
+ version: 1,
448
+ diagnostics: [diagnostic("publish-before-deadline")],
449
+ awaitClientDelivery: true,
450
+ },
451
+ ],
452
+ diagnosticResponses: [{ delayMs: 150, error: { code: -32601, message: "Method not found" } }],
453
+ },
454
+ { diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5, timerProvider: skewedClock },
455
+ );
456
+
457
+ const pending = context.client.diagnostics(context.source);
458
+ await waitForEventCountBySubscription(
459
+ context.events,
460
+ (event) => event.type === "clientResponse" && event.method === "workspace/configuration",
461
+ 1,
462
+ );
463
+ // The publish is recorded; the freshness window now elapses before the error response lands.
464
+ skewMs = 500;
465
+ const result = await pending;
466
+
467
+ expect(result.items).toEqual([diagnostic("publish-before-deadline")]);
468
+ expect(result.transientError).toBeUndefined();
469
+ });
470
+
381
471
  });
@@ -253,7 +253,9 @@ export class LspClient extends LspClientConnection {
253
253
  } catch (error) {
254
254
  if (this.isUnsupportedDiagnosticPullError(error)) {
255
255
  this.setDiagnosticPullSupported(false);
256
- pushFallbackOnly = true;
256
+ // A publish may have landed while the pull was in flight. Re-capture the
257
+ // snapshot and re-resolve push state instead of deciding on the stale ones.
258
+ continue;
257
259
  } else if (error instanceof LspRequestTimeoutError) {
258
260
  pushFallbackOnly = true;
259
261
  } else {
@@ -1,4 +1,4 @@
1
- import { mkdtempSync, readFileSync, rmSync, watch, writeFileSync } from "node:fs";
1
+ import { mkdtempSync, readFileSync, realpathSync, rmSync, watch, writeFileSync } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import { dirname, join } from "node:path";
4
4
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -71,7 +71,10 @@ export function createWorkspaceEditTestHarness() {
71
71
  }
72
72
 
73
73
  function createFixture(scenario: Record<string, unknown>, tempDirectories: string[]) {
74
- const workspace = mkdtempSync(join(tmpdir(), "lsp-apply-edit-"));
74
+ // The fixture server echoes URIs built from the canonical temp path, so the client root must be
75
+ // canonical too. On macOS tmpdir() is a /var -> /private/var symlink; without realpath the
76
+ // publishes target a document the client never opened (#9476).
77
+ const workspace = mkdtempSync(join(realpathSync(tmpdir()), "lsp-apply-edit-"));
75
78
  tempDirectories.push(workspace);
76
79
  const source = join(workspace, "source.ts");
77
80
  const destination = join(workspace, "destination.ts");
@@ -3579,7 +3579,7 @@ class LspClient extends LspClientConnection {
3579
3579
  } catch (error) {
3580
3580
  if (this.isUnsupportedDiagnosticPullError(error)) {
3581
3581
  this.setDiagnosticPullSupported(false);
3582
- pushFallbackOnly = true;
3582
+ continue;
3583
3583
  } else if (error instanceof LspRequestTimeoutError) {
3584
3584
  pushFallbackOnly = true;
3585
3585
  } else {
@@ -3815,7 +3815,7 @@ class LspClient extends LspClientConnection {
3815
3815
  } catch (error) {
3816
3816
  if (this.isUnsupportedDiagnosticPullError(error)) {
3817
3817
  this.setDiagnosticPullSupported(false);
3818
- pushFallbackOnly = true;
3818
+ continue;
3819
3819
  } else if (error instanceof LspRequestTimeoutError) {
3820
3820
  pushFallbackOnly = true;
3821
3821
  } else {
@@ -2650,7 +2650,7 @@ class LspClient extends LspClientConnection {
2650
2650
  } catch (error) {
2651
2651
  if (this.isUnsupportedDiagnosticPullError(error)) {
2652
2652
  this.setDiagnosticPullSupported(false);
2653
- pushFallbackOnly = true;
2653
+ continue;
2654
2654
  } else if (error instanceof LspRequestTimeoutError) {
2655
2655
  pushFallbackOnly = true;
2656
2656
  } else {
@@ -2655,7 +2655,7 @@ class LspClient extends LspClientConnection {
2655
2655
  } catch (error) {
2656
2656
  if (this.isUnsupportedDiagnosticPullError(error)) {
2657
2657
  this.setDiagnosticPullSupported(false);
2658
- pushFallbackOnly = true;
2658
+ continue;
2659
2659
  } else if (error instanceof LspRequestTimeoutError) {
2660
2660
  pushFallbackOnly = true;
2661
2661
  } else {
@@ -2650,7 +2650,7 @@ class LspClient extends LspClientConnection {
2650
2650
  } catch (error) {
2651
2651
  if (this.isUnsupportedDiagnosticPullError(error)) {
2652
2652
  this.setDiagnosticPullSupported(false);
2653
- pushFallbackOnly = true;
2653
+ continue;
2654
2654
  } else if (error instanceof LspRequestTimeoutError) {
2655
2655
  pushFallbackOnly = true;
2656
2656
  } else {
@@ -3144,7 +3144,7 @@ class LspClient extends LspClientConnection {
3144
3144
  } catch (error) {
3145
3145
  if (this.isUnsupportedDiagnosticPullError(error)) {
3146
3146
  this.setDiagnosticPullSupported(false);
3147
- pushFallbackOnly = true;
3147
+ continue;
3148
3148
  } else if (error instanceof LspRequestTimeoutError) {
3149
3149
  pushFallbackOnly = true;
3150
3150
  } else {
@@ -2832,7 +2832,7 @@ class LspClient extends LspClientConnection {
2832
2832
  } catch (error) {
2833
2833
  if (this.isUnsupportedDiagnosticPullError(error)) {
2834
2834
  this.setDiagnosticPullSupported(false);
2835
- pushFallbackOnly = true;
2835
+ continue;
2836
2836
  } else if (error instanceof LspRequestTimeoutError) {
2837
2837
  pushFallbackOnly = true;
2838
2838
  } else {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -846,7 +846,8 @@ function defaultVersionProbe(binaryPath) {
846
846
  return String(execFileSync(binaryPath, ["--version"], {
847
847
  encoding: "utf8",
848
848
  stdio: ["ignore", "pipe", "ignore"],
849
- timeout: SG_VERSION_PROBE_TIMEOUT_MS
849
+ timeout: SG_VERSION_PROBE_TIMEOUT_MS,
850
+ windowsHide: true
850
851
  }));
851
852
  }
852
853
  function probePasses(binaryPath, deps) {
@@ -12164,7 +12165,7 @@ function isKnownNonGitBashLauncher(path) {
12164
12165
  }
12165
12166
  function whereCommand(command) {
12166
12167
  try {
12167
- return execFileSync2("where", [command], { encoding: "utf8" }).split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0);
12168
+ return execFileSync2("where", [command], { encoding: "utf8", windowsHide: true }).split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0);
12168
12169
  } catch (error) {
12169
12170
  if (error instanceof Error)
12170
12171
  return [];
@@ -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.1.29) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.30) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -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 5.1.29) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.30) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
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 5.1.29) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.30) 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 5.1.29) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.30) 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": "5.1.29",
3
+ "version": "5.1.30",
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 5.1.29) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.30) 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": "5.1.29",
3
+ "version": "5.1.30",
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": "5.1.29",
4
- "inputDigest": "sha256:9d15a230eaff0c93de5a8ff0f469ff7fe066ca59ac92dfe7672fd8ff300fa085",
3
+ "version": "5.1.30",
4
+ "inputDigest": "sha256:cf776d8585ec0e86540cc12d9a01c22a20b3e13b24300062c7dae109304ad483",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  {
11
11
  "path": "cli.js",
12
- "sha256": "f2776c0f9c2a893136e9e8e36c2e086172f10c0ab3566a730cff4443b712f956"
12
+ "sha256": "e4d7664d4b1a19eb00e68e5a0f42ceae1195188a26e59217522c1d0de3854f54"
13
13
  },
14
14
  {
15
15
  "path": "codex-hook-cli.d.ts",
@@ -3270,7 +3270,7 @@ class LspClient extends LspClientConnection {
3270
3270
  } catch (error) {
3271
3271
  if (this.isUnsupportedDiagnosticPullError(error)) {
3272
3272
  this.setDiagnosticPullSupported(false);
3273
- pushFallbackOnly = true;
3273
+ continue;
3274
3274
  } else if (error instanceof LspRequestTimeoutError) {
3275
3275
  pushFallbackOnly = true;
3276
3276
  } else {
@@ -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 5.1.29) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.30) 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 5.1.29) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.30) 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": "5.1.29",
3
+ "version": "5.1.30",
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 5.1.29) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.30) 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 5.1.29) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.30) 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 5.1.29) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.30) 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 5.1.29) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.30) 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": "5.1.29",
3
+ "version": "5.1.30",
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",
@@ -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 5.1.29) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.30) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
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 5.1.29) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.30) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
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",
@@ -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 5.1.29) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.30) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
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",
@@ -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.1.29) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.30) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex ulw-execute plans.",
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 user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.29) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.1.30) 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 post-tool-use-spawn",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.29) Recording Spawn Admission"
23
+ "statusMessage": "(OmO 5.1.30) Recording Spawn Admission"
24
24
  }
25
25
  ]
26
26
  }
@@ -33,7 +33,7 @@
33
33
  "type": "command",
34
34
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
35
35
  "timeout": 5,
36
- "statusMessage": "(OmO 5.1.29) Enforcing Unlimited Ulw-Loop Budget"
36
+ "statusMessage": "(OmO 5.1.30) Enforcing Unlimited Ulw-Loop Budget"
37
37
  }
38
38
  ]
39
39
  },
@@ -44,7 +44,7 @@
44
44
  "type": "command",
45
45
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
46
46
  "timeout": 5,
47
- "statusMessage": "(OmO 5.1.29) Guarding Ulw-Loop Spawns"
47
+ "statusMessage": "(OmO 5.1.30) Guarding Ulw-Loop Spawns"
48
48
  }
49
49
  ]
50
50
  }
@@ -56,7 +56,7 @@
56
56
  "type": "command",
57
57
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
58
58
  "timeout": 10,
59
- "statusMessage": "(OmO 5.1.29) Checking Ulw-Loop Resume"
59
+ "statusMessage": "(OmO 5.1.30) Checking Ulw-Loop Resume"
60
60
  }
61
61
  ]
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.1.29",
3
+ "version": "5.1.30",
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",
@@ -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.1.29) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Checking Comments",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.1.30) 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.1.29) Recording Spawn Admission",
11
+ "statusMessage": "(OmO 5.1.30) 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
  ]