oh-my-codex 0.21.2 → 0.21.3

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 (53) hide show
  1. package/Cargo.toml +1 -1
  2. package/dist/cli/__tests__/index.test.js +21 -2
  3. package/dist/cli/__tests__/index.test.js.map +1 -1
  4. package/dist/cli/index.d.ts +5 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +32 -4
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  9. package/dist/scripts/notify-hook/team-leader-nudge.js +6 -2
  10. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  11. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  12. package/dist/scripts/notify-hook/team-worker-stop.js +6 -2
  13. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  14. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  15. package/dist/scripts/notify-hook/team-worker.js +10 -2
  16. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  17. package/dist/team/__tests__/notice-ledger.test.js +66 -5
  18. package/dist/team/__tests__/notice-ledger.test.js.map +1 -1
  19. package/dist/team/__tests__/runtime.test.js +83 -1
  20. package/dist/team/__tests__/runtime.test.js.map +1 -1
  21. package/dist/team/__tests__/shutdown-fallback.test.js +11 -1
  22. package/dist/team/__tests__/shutdown-fallback.test.js.map +1 -1
  23. package/dist/team/__tests__/state.test.js +195 -2
  24. package/dist/team/__tests__/state.test.js.map +1 -1
  25. package/dist/team/__tests__/team-ops-contract.test.js +1 -0
  26. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
  27. package/dist/team/__tests__/worker-runtime-identity.test.js +11 -1
  28. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
  29. package/dist/team/mcp-comm.d.ts.map +1 -1
  30. package/dist/team/mcp-comm.js +130 -125
  31. package/dist/team/mcp-comm.js.map +1 -1
  32. package/dist/team/notice-ledger.d.ts +5 -0
  33. package/dist/team/notice-ledger.d.ts.map +1 -1
  34. package/dist/team/notice-ledger.js +82 -4
  35. package/dist/team/notice-ledger.js.map +1 -1
  36. package/dist/team/runtime.d.ts.map +1 -1
  37. package/dist/team/runtime.js +44 -13
  38. package/dist/team/runtime.js.map +1 -1
  39. package/dist/team/state/mailbox.js +22 -22
  40. package/dist/team/state/mailbox.js.map +1 -1
  41. package/dist/team/state.d.ts +2 -0
  42. package/dist/team/state.d.ts.map +1 -1
  43. package/dist/team/state.js +100 -4
  44. package/dist/team/state.js.map +1 -1
  45. package/dist/team/team-ops.d.ts +1 -0
  46. package/dist/team/team-ops.d.ts.map +1 -1
  47. package/dist/team/team-ops.js +1 -0
  48. package/dist/team/team-ops.js.map +1 -1
  49. package/package.json +1 -1
  50. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  51. package/src/scripts/notify-hook/team-leader-nudge.ts +6 -2
  52. package/src/scripts/notify-hook/team-worker-stop.ts +6 -2
  53. package/src/scripts/notify-hook/team-worker.ts +10 -2
@@ -3,7 +3,7 @@ import { describe, it } from 'node:test';
3
3
  import { mkdtemp, mkdir, readFile, rm, utimes, writeFile } from 'node:fs/promises';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
- import { buildTeamNoticeLedgerPrompt, parseTeamNoticeLedgerPrompt, reconcileTeamNoticeLedger, registerTeamNotice, releaseTeamNoticeWake, teamNoticeLedgerLockPath, teamNoticeLedgerPath, teamNoticeTargetKey, } from '../notice-ledger.js';
6
+ import { buildTeamNoticeLedgerPrompt, confirmTeamNoticeWake, discardTeamNoticesForTeam, parseTeamNoticeLedgerPrompt, reconcileTeamNoticeLedger, registerTeamNotice, releaseTeamNoticeWake, teamNoticeLedgerLockPath, teamNoticeLedgerPath, teamNoticeTargetKey, } from '../notice-ledger.js';
7
7
  async function fixture() {
8
8
  const root = await mkdtemp(join(tmpdir(), 'omx-notice-ledger-'));
9
9
  return { root, stateRoot: join(root, '.omx', 'state') };
@@ -55,14 +55,16 @@ describe('team notice ledger', () => {
55
55
  const { root, stateRoot } = await fixture();
56
56
  try {
57
57
  await Promise.all([liveTeam(stateRoot, 'live'), liveTeam(stateRoot, 'terminal'), liveTeam(stateRoot, 'removed')]);
58
- await writeFile(join(stateRoot, 'team', 'terminal', 'phase.json'), JSON.stringify({ current_phase: 'complete' }));
58
+ await writeFile(join(stateRoot, 'team', 'terminal', 'phase.json'), JSON.stringify({ current_phase: 'team-exec', terminal_epoch: '2026-09-02T00:00:00.000Z' }));
59
59
  const targetId = 'leader';
60
- for (const name of ['live', 'terminal', 'removed'])
61
- await registerTeamNotice(registration(stateRoot, name, targetId, '1'));
60
+ const terminal = await registerTeamNotice(registration(stateRoot, 'terminal', targetId, '1'));
61
+ assert.equal(terminal.queued, false);
62
+ await registerTeamNotice(registration(stateRoot, 'live', targetId, '1'));
63
+ await registerTeamNotice(registration(stateRoot, 'removed', targetId, '1'));
62
64
  await rm(join(stateRoot, 'team', 'removed'), { recursive: true, force: true });
63
65
  const result = await reconcileTeamNoticeLedger({ stateRoot, targetKey: teamNoticeTargetKey(targetId) });
64
66
  assert.deepEqual(result.context.map((notice) => notice.teamName), ['live']);
65
- assert.equal(result.discarded, 2);
67
+ assert.equal(result.discarded, 1);
66
68
  assert.doesNotMatch(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'), /terminal|removed/);
67
69
  }
68
70
  finally {
@@ -102,6 +104,65 @@ describe('team notice ledger', () => {
102
104
  await rm(root, { recursive: true, force: true });
103
105
  }
104
106
  });
107
+ it('does not re-elect a successfully queued wake after the original lease timeout', async () => {
108
+ const { root, stateRoot } = await fixture();
109
+ try {
110
+ await liveTeam(stateRoot, 'slow');
111
+ const first = await registerTeamNotice(registration(stateRoot, 'slow', 'leader', '1'));
112
+ assert.equal(await confirmTeamNoticeWake(stateRoot, first.targetKey, first.wakeId), true);
113
+ const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'));
114
+ ledger.wakes[first.targetKey].createdAtMs = Date.now() - 31_000;
115
+ await writeFile(teamNoticeLedgerPath(stateRoot), JSON.stringify(ledger, null, 2));
116
+ const later = await registerTeamNotice(registration(stateRoot, 'slow', 'leader', '2', 'all_idle'));
117
+ assert.equal(later.queued, false);
118
+ assert.equal(later.wakeId, first.wakeId);
119
+ }
120
+ finally {
121
+ await rm(root, { recursive: true, force: true });
122
+ }
123
+ });
124
+ it('re-elects an unconfirmed stale wake and rejects confirmation of the replaced lease', async () => {
125
+ const { root, stateRoot } = await fixture();
126
+ try {
127
+ await liveTeam(stateRoot, 'retry');
128
+ const first = await registerTeamNotice(registration(stateRoot, 'retry', 'leader', '1'));
129
+ const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(stateRoot), 'utf8'));
130
+ ledger.wakes[first.targetKey].createdAtMs = Date.now() - 31_000;
131
+ await writeFile(teamNoticeLedgerPath(stateRoot), JSON.stringify(ledger, null, 2));
132
+ const retry = await registerTeamNotice(registration(stateRoot, 'retry', 'leader', '2'));
133
+ assert.equal(retry.queued, true);
134
+ assert.notEqual(retry.wakeId, first.wakeId);
135
+ assert.equal(await confirmTeamNoticeWake(stateRoot, first.targetKey, first.wakeId), false);
136
+ }
137
+ finally {
138
+ await rm(root, { recursive: true, force: true });
139
+ }
140
+ });
141
+ it('discards one Team while preserving shared-target notices and wake for another Team', async () => {
142
+ const { root, stateRoot } = await fixture();
143
+ try {
144
+ await Promise.all([liveTeam(stateRoot, 'alpha'), liveTeam(stateRoot, 'bravo')]);
145
+ const first = await registerTeamNotice(registration(stateRoot, 'alpha', 'leader', '1'));
146
+ await registerTeamNotice(registration(stateRoot, 'bravo', 'leader', '1', 'worker_stop'));
147
+ assert.deepEqual(await discardTeamNoticesForTeam(stateRoot, 'alpha'), { notices: 1, wakes: 0 });
148
+ const result = await reconcileTeamNoticeLedger({ stateRoot, targetKey: first.targetKey });
149
+ assert.deepEqual(result.context.map((notice) => notice.teamName), ['bravo']);
150
+ }
151
+ finally {
152
+ await rm(root, { recursive: true, force: true });
153
+ }
154
+ });
155
+ it('discards an orphaned wake with the last notice for a Team', async () => {
156
+ const { root, stateRoot } = await fixture();
157
+ try {
158
+ await liveTeam(stateRoot, 'alpha');
159
+ await registerTeamNotice(registration(stateRoot, 'alpha', 'leader', '1'));
160
+ assert.deepEqual(await discardTeamNoticesForTeam(stateRoot, 'alpha'), { notices: 1, wakes: 1 });
161
+ }
162
+ finally {
163
+ await rm(root, { recursive: true, force: true });
164
+ }
165
+ });
105
166
  it('recovers stale locks and rejects malformed ledgers without overwriting them', async () => {
106
167
  const { root, stateRoot } = await fixture();
107
168
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"notice-ledger.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/notice-ledger.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notice-ledger.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/notice-ledger.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,UAAU,OAAO;IACpB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,SAAiB,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,UAAkB,EAAE,WAAW,GAAoB,SAAS;IACvI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC;AACnI,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/G,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;YAC/G,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,MAAM,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAChG,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAChD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/F,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACzF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC/J,MAAM,QAAQ,GAAG,QAAQ,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9F,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACzE,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5E,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,MAAM,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACnG,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;YACpG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,KAAK,CAAC,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3F,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/F,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,KAAK,CAAC,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAQ,CAAC;YAC1F,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YAChE,MAAM,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAElF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAQ,CAAC;YAC1F,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YAChE,MAAM,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAElF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9F,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,SAAS,CAAC,MAAM,yBAAyB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChG,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1E,MAAM,CAAC,SAAS,CAAC,MAAM,yBAAyB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzG,MAAM,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC/G,MAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjF,MAAM,OAAO,GAAsB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QACrH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import { createHash } from 'node:crypto';
4
4
  import { execFileSync, spawn, spawnSync } from 'child_process';
5
- import { mkdtemp, rm, writeFile, readFile, mkdir, chmod, readdir } from 'fs/promises';
5
+ import { mkdtemp, rm, unlink, writeFile, readFile, mkdir, chmod, readdir } from 'fs/promises';
6
6
  import { join, relative, dirname } from 'path';
7
7
  import { tmpdir } from 'os';
8
8
  import { existsSync } from 'fs';
@@ -16,6 +16,7 @@ import { buildInternalTeamName, resolveTeamIdentityScope } from '../team-identit
16
16
  import { writePersistedApprovedTeamExecutionBinding } from '../approved-execution.js';
17
17
  import { planWorktreeTarget } from '../worktree.js';
18
18
  import { scaleDown } from '../scaling.js';
19
+ import { registerTeamNotice, teamNoticeLedgerPath, teamNoticeTargetKey } from '../notice-ledger.js';
19
20
  const coverageRun = process.env.NODE_V8_COVERAGE ? true : false;
20
21
  const skipSlowLifecycleUnderCoverage = coverageRun
21
22
  ? 'covered by the team-state-runtime lane; skipped under c8 to keep the coverage gate bounded around slow process-lifecycle waits'
@@ -774,8 +775,10 @@ async function withNativeWindowsPlatform(run) {
774
775
  }
775
776
  }
776
777
  const ORIGINAL_OMX_TEAM_STATE_ROOT = process.env.OMX_TEAM_STATE_ROOT;
778
+ const ORIGINAL_OMX_RUNTIME_BRIDGE = process.env.OMX_RUNTIME_BRIDGE;
777
779
  beforeEach(() => {
778
780
  delete process.env.OMX_TEAM_STATE_ROOT;
781
+ process.env.OMX_RUNTIME_BRIDGE = '0';
779
782
  });
780
783
  afterEach(() => {
781
784
  setTerminalEpochStartedHookForTest(null);
@@ -783,6 +786,10 @@ afterEach(() => {
783
786
  process.env.OMX_TEAM_STATE_ROOT = ORIGINAL_OMX_TEAM_STATE_ROOT;
784
787
  else
785
788
  delete process.env.OMX_TEAM_STATE_ROOT;
789
+ if (typeof ORIGINAL_OMX_RUNTIME_BRIDGE === 'string')
790
+ process.env.OMX_RUNTIME_BRIDGE = ORIGINAL_OMX_RUNTIME_BRIDGE;
791
+ else
792
+ delete process.env.OMX_RUNTIME_BRIDGE;
786
793
  });
787
794
  describe('runtime', () => {
788
795
  it('resolveWorkerLaunchArgsFromEnv injects low-complexity default model when missing', () => {
@@ -6636,6 +6643,81 @@ exec "${realGit}" "$@"
6636
6643
  await rm(cwd, { recursive: true, force: true });
6637
6644
  }
6638
6645
  });
6646
+ it('shutdownTeam discards terminal Team notices before deleting ownership evidence', async () => {
6647
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-notices-'));
6648
+ const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
6649
+ try {
6650
+ process.env.OMX_RUNTIME_BRIDGE = '0';
6651
+ await initTeamState('team-shutdown-notices', 'shutdown notice cleanup test', 'executor', 1, cwd);
6652
+ await markDetachedSessionAbsent('team-shutdown-notices', cwd);
6653
+ const notice = await registerTeamNotice({
6654
+ cwd,
6655
+ targetId: 'leader-pane-owner',
6656
+ teamName: 'team-shutdown-notices',
6657
+ noticeClass: 'terminal',
6658
+ generation: 'done',
6659
+ source: { kind: 'test' },
6660
+ });
6661
+ assert.equal(notice.targetKey, teamNoticeTargetKey('leader-pane-owner'));
6662
+ await shutdownWithoutTmuxSession('team-shutdown-notices', cwd);
6663
+ const ledger = JSON.parse(await readFile(teamNoticeLedgerPath(join(cwd, '.omx', 'state')), 'utf8'));
6664
+ assert.equal(Object.values(ledger.notices).some((entry) => entry.teamName === 'team-shutdown-notices'), false);
6665
+ assert.equal(ledger.wakes[notice.targetKey], undefined);
6666
+ assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', 'team-shutdown-notices')), false);
6667
+ }
6668
+ finally {
6669
+ if (typeof previousRuntimeBridge === 'string')
6670
+ process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
6671
+ else
6672
+ delete process.env.OMX_RUNTIME_BRIDGE;
6673
+ await rm(cwd, { recursive: true, force: true });
6674
+ }
6675
+ });
6676
+ it('shutdownTeam preserves Team state when global mailbox retirement cannot be proven', async () => {
6677
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-mailbox-fail-closed-'));
6678
+ const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
6679
+ const teamName = 'shutdown-mailbox-fail-closed';
6680
+ try {
6681
+ process.env.OMX_RUNTIME_BRIDGE = '0';
6682
+ await initTeamState(teamName, 'shutdown mailbox cleanup test', 'executor', 1, cwd);
6683
+ await sendDirectMessage(teamName, 'leader-fixed', 'worker-1', 'pending result', cwd);
6684
+ await markDetachedSessionAbsent(teamName, cwd);
6685
+ await writeFile(join(cwd, '.omx', 'state', 'mailbox.json'), JSON.stringify({ records: 'malformed' }));
6686
+ process.env.OMX_RUNTIME_BRIDGE = '1';
6687
+ await assert.rejects(shutdownWithoutTmuxSession(teamName, cwd), /authoritative_mailbox_retirement_discovery_failed/);
6688
+ assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', teamName)), true);
6689
+ }
6690
+ finally {
6691
+ if (typeof previousRuntimeBridge === 'string')
6692
+ process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
6693
+ else
6694
+ delete process.env.OMX_RUNTIME_BRIDGE;
6695
+ await rm(cwd, { recursive: true, force: true });
6696
+ }
6697
+ });
6698
+ it('shutdownTeam preserves Team state when mailbox compatibility output is absent', async () => {
6699
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-mailbox-missing-'));
6700
+ const previousRuntimeBridge = process.env.OMX_RUNTIME_BRIDGE;
6701
+ const teamName = 'shutdown-mailbox-missing';
6702
+ try {
6703
+ process.env.OMX_RUNTIME_BRIDGE = '0';
6704
+ await initTeamState(teamName, 'shutdown mailbox missing test', 'executor', 1, cwd);
6705
+ await sendDirectMessage(teamName, 'leader-fixed', 'worker-1', 'pending result', cwd);
6706
+ await writeFile(join(cwd, '.omx', 'state', 'mailbox.json'), JSON.stringify({ records: [] }));
6707
+ await unlink(join(cwd, '.omx', 'state', 'mailbox.json'));
6708
+ process.env.OMX_RUNTIME_BRIDGE = '1';
6709
+ await markDetachedSessionAbsent(teamName, cwd);
6710
+ await assert.rejects(shutdownWithoutTmuxSession(teamName, cwd), /authoritative_mailbox_retirement_discovery_failed/);
6711
+ assert.equal(existsSync(join(cwd, '.omx', 'state', 'team', teamName)), true);
6712
+ }
6713
+ finally {
6714
+ if (typeof previousRuntimeBridge === 'string')
6715
+ process.env.OMX_RUNTIME_BRIDGE = previousRuntimeBridge;
6716
+ else
6717
+ delete process.env.OMX_RUNTIME_BRIDGE;
6718
+ await rm(cwd, { recursive: true, force: true });
6719
+ }
6720
+ });
6639
6721
  it('shutdownTeam clean fast path ignores worker shutdown ack files', async () => {
6640
6722
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-shutdown-clean-fast-'));
6641
6723
  try {