@mmnto/cli 1.115.0 → 1.117.0

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 (48) hide show
  1. package/dist/commands/doctor-compliance.test.js +17 -0
  2. package/dist/commands/doctor-compliance.test.js.map +1 -1
  3. package/dist/commands/doctor-seat-identity.d.ts +18 -2
  4. package/dist/commands/doctor-seat-identity.d.ts.map +1 -1
  5. package/dist/commands/doctor-seat-identity.js +77 -2
  6. package/dist/commands/doctor-seat-identity.js.map +1 -1
  7. package/dist/commands/doctor-seat-identity.test.js +180 -20
  8. package/dist/commands/doctor-seat-identity.test.js.map +1 -1
  9. package/dist/commands/gemini-sessionstart-contract.test.js +15 -0
  10. package/dist/commands/gemini-sessionstart-contract.test.js.map +1 -1
  11. package/dist/commands/init-templates.d.ts +4 -4
  12. package/dist/commands/init-templates.d.ts.map +1 -1
  13. package/dist/commands/init-templates.js +12 -1
  14. package/dist/commands/init-templates.js.map +1 -1
  15. package/dist/commands/mail-cli-wiring.test.d.ts +8 -5
  16. package/dist/commands/mail-cli-wiring.test.d.ts.map +1 -1
  17. package/dist/commands/mail-cli-wiring.test.js +95 -42
  18. package/dist/commands/mail-cli-wiring.test.js.map +1 -1
  19. package/dist/commands/mail-degraded-e4.test.js +46 -13
  20. package/dist/commands/mail-degraded-e4.test.js.map +1 -1
  21. package/dist/commands/mail.d.ts +29 -0
  22. package/dist/commands/mail.d.ts.map +1 -1
  23. package/dist/commands/mail.js +182 -14
  24. package/dist/commands/mail.js.map +1 -1
  25. package/dist/commands/mail.test.js +425 -58
  26. package/dist/commands/mail.test.js.map +1 -1
  27. package/dist/commands/retrospect.d.ts.map +1 -1
  28. package/dist/commands/retrospect.js +7 -3
  29. package/dist/commands/retrospect.js.map +1 -1
  30. package/dist/commands/sessionstart-manifest-contract.test.js +10 -0
  31. package/dist/commands/sessionstart-manifest-contract.test.js.map +1 -1
  32. package/dist/commands/triage-pr.d.ts.map +1 -1
  33. package/dist/commands/triage-pr.js +2 -0
  34. package/dist/commands/triage-pr.js.map +1 -1
  35. package/dist/index.js +15 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/parsers/bot-review-parser.d.ts +8 -1
  38. package/dist/parsers/bot-review-parser.d.ts.map +1 -1
  39. package/dist/parsers/bot-review-parser.js +21 -1
  40. package/dist/parsers/bot-review-parser.js.map +1 -1
  41. package/dist/parsers/bot-review-parser.test.js +23 -0
  42. package/dist/parsers/bot-review-parser.test.js.map +1 -1
  43. package/dist/parsers/triage-severity-mapper.d.ts.map +1 -1
  44. package/dist/parsers/triage-severity-mapper.js +32 -1
  45. package/dist/parsers/triage-severity-mapper.js.map +1 -1
  46. package/dist/parsers/triage-severity-mapper.test.js +57 -0
  47. package/dist/parsers/triage-severity-mapper.test.js.map +1 -1
  48. package/package.json +2 -2
@@ -37,6 +37,23 @@ describe('parseSearchLog', () => {
37
37
  expect(result.entries[0].agent_source).toBe('claude');
38
38
  expect(result.malformedCount).toBe(0);
39
39
  });
40
+ it('tolerates the #2629 provenance/conflict fields on a row — invariant 5, compliance-parser half', () => {
41
+ const sensorRow = JSON.stringify({
42
+ timestamp: iso(BASE),
43
+ agent_source: 'totem-claude',
44
+ agent_source_provenance: 'env',
45
+ attribution_conflict: {
46
+ env_seat: 'totem-gemini',
47
+ minting_seat: 'totem-claude',
48
+ pointer_session_id: '550e8400-e29b-41d4-a716-446655440000',
49
+ },
50
+ attribution_probe_error: 'probe failed',
51
+ });
52
+ const result = parseSearchLog(sensorRow);
53
+ expect(result.malformedCount).toBe(0);
54
+ expect(result.entries).toHaveLength(1);
55
+ expect(result.entries[0].agent_source).toBe('totem-claude');
56
+ });
40
57
  it('skips a corrupt JSONL line with a warn count, still parses the rest', () => {
41
58
  const good1 = JSON.stringify({ timestamp: iso(BASE), agent_source: 'claude' });
42
59
  const good2 = JSON.stringify({ timestamp: iso(BASE + H), agent_source: 'gemini' });
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-compliance.test.js","sourceRoot":"","sources":["../../src/commands/doctor-compliance.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-compliance.test.js","sourceRoot":"","sources":["../../src/commands/doctor-compliance.test.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * exemption is a property of the row (`doctor.ts` DiagnosticResult), not of the
7
7
  * tier a later change might widen.
8
8
  *
9
- * Three post-hoc contradictions are sensed per registered seat dir:
9
+ * Four post-hoc contradiction arms are sensed:
10
10
  *
11
11
  * (a) `from-mismatch` — an outbox dispatch whose frontmatter `from:` names a
12
12
  * DIFFERENT seat than the directory it sits in. The dir is the
@@ -18,6 +18,13 @@
18
18
  * observed behaviour.
19
19
  * (c) `env-names-excluded-seat` / `env-names-unknown-seat` — `TOTEM_SELF_AGENT`
20
20
  * naming a non-active seat, or naming no seat directory in this repo.
21
+ * (d) `env-ambient-scope` (win32 only; mmnto-ai/totem#2629) —
22
+ * `TOTEM_SELF_AGENT` present at a PERSISTENT registry scope (user or
23
+ * machine). A per-SEAT identity at either scope is inherited by every
24
+ * seat's processes on the machine — the #2629 cross-seat fallthrough
25
+ * root cause. Doctor-time only, never the stamp hot path; the stamp-seam
26
+ * counterpart (provenance + fail-closed conflict) lives in core's
27
+ * `senseAgentAttribution`.
21
28
  *
22
29
  * A corrupt marker degrades to `active` by core's contract
23
30
  * (`seat-lifecycle.ts` — fail open on visibility), so (b) is NEVER evaluated
@@ -51,7 +58,7 @@ export declare const OUTBOX_SCAN_LIMIT = 200;
51
58
  */
52
59
  export declare const SEAT_IDENTITY_HONEST_LIMIT = "honest limit: a CONSISTENT fake \u2014 writing from the wrong seat dir with a matching forged `from:`, the agy shape \u2014 is NOT detectable post-hoc, which is why full write-time binding was judged infeasible for v1 and this doctor tier is the chartered fallback; this check does not discharge the 2026-06-18 seat-identity precondition.";
53
60
  /** The contradiction classes this row can report. */
54
- export type SeatIdentityFindingClass = 'from-mismatch' | 'writing-while-excluded' | 'env-names-excluded-seat' | 'env-names-unknown-seat' | 'unreadable-marker' | 'outbox-unreadable';
61
+ export type SeatIdentityFindingClass = 'from-mismatch' | 'writing-while-excluded' | 'env-names-excluded-seat' | 'env-names-unknown-seat' | 'env-ambient-scope' | 'registry-scope-unreadable' | 'unreadable-marker' | 'outbox-unreadable';
55
62
  export interface SeatIdentitySeams {
56
63
  /**
57
64
  * Test seam — production reads `process.env`. Injected so the env arm is
@@ -61,6 +68,15 @@ export interface SeatIdentitySeams {
61
68
  env?: Record<string, string | undefined>;
62
69
  /** Test seam — overrides {@link OUTBOX_SCAN_LIMIT} so truncation is testable. */
63
70
  outboxScanLimit?: number;
71
+ /** Test seam — production reads `process.platform`. Arm (d) is win32-only. */
72
+ platform?: NodeJS.Platform;
73
+ /**
74
+ * Test seam — production spawns `reg query <hive> /v TOTEM_SELF_AGENT` via
75
+ * core's `safeExec`. Implementations keep the `reg` contract this arm reads
76
+ * through: return stdout on a hit; throw with `.status === 1` when the value
77
+ * is absent at that hive (the healthy state).
78
+ */
79
+ regQuery?: (hive: string) => string;
64
80
  }
65
81
  /**
66
82
  * Sense seat-identity binding across every registered seat dir. Report-only:
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-seat-identity.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,uVACqS,CAAC;AAwC7U,qDAAqD;AACrD,MAAM,MAAM,wBAAwB,GAChC,eAAe,GACf,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,CAAC;AAQxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqHD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,iBAAsB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAwL3B"}
1
+ {"version":3,"file":"doctor-seat-identity.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,uVACqS,CAAC;AAwC7U,qDAAqD;AACrD,MAAM,MAAM,wBAAwB,GAChC,eAAe,GACf,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,mBAAmB,GACnB,mBAAmB,CAAC;AAqBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAqHD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,iBAAsB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAiP3B"}
@@ -6,7 +6,7 @@
6
6
  * exemption is a property of the row (`doctor.ts` DiagnosticResult), not of the
7
7
  * tier a later change might widen.
8
8
  *
9
- * Three post-hoc contradictions are sensed per registered seat dir:
9
+ * Four post-hoc contradiction arms are sensed:
10
10
  *
11
11
  * (a) `from-mismatch` — an outbox dispatch whose frontmatter `from:` names a
12
12
  * DIFFERENT seat than the directory it sits in. The dir is the
@@ -18,6 +18,13 @@
18
18
  * observed behaviour.
19
19
  * (c) `env-names-excluded-seat` / `env-names-unknown-seat` — `TOTEM_SELF_AGENT`
20
20
  * naming a non-active seat, or naming no seat directory in this repo.
21
+ * (d) `env-ambient-scope` (win32 only; mmnto-ai/totem#2629) —
22
+ * `TOTEM_SELF_AGENT` present at a PERSISTENT registry scope (user or
23
+ * machine). A per-SEAT identity at either scope is inherited by every
24
+ * seat's processes on the machine — the #2629 cross-seat fallthrough
25
+ * root cause. Doctor-time only, never the stamp hot path; the stamp-seam
26
+ * counterpart (provenance + fail-closed conflict) lives in core's
27
+ * `senseAgentAttribution`.
21
28
  *
22
29
  * A corrupt marker degrades to `active` by core's contract
23
30
  * (`seat-lifecycle.ts` — fail open on visibility), so (b) is NEVER evaluated
@@ -80,6 +87,18 @@ const CLOSING_DELIMITER = /\r?\n---[ \t]*(?:\r?\n|$)/;
80
87
  const FROM_FIELD = /^from:\s*(.+)$/im;
81
88
  /** The stamped-dispatch basename prefix: `YYYY-MM-DDTHHMMZ-`. */
82
89
  const STAMPED_BASENAME = /^(\d{4})-(\d{2})-(\d{2})T(\d{2})(\d{2})Z-/;
90
+ /**
91
+ * The two persistent Windows env scopes arm (d) probes (mmnto-ai/totem#2629).
92
+ * Launch-shell env is NOT in the registry, so a hit at either hive is ambient
93
+ * by definition — no value comparison needed to make it a finding.
94
+ */
95
+ const REGISTRY_SCOPES = [
96
+ { scope: 'user', hive: 'HKCU\\Environment' },
97
+ {
98
+ scope: 'machine',
99
+ hive: 'HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment',
100
+ },
101
+ ];
83
102
  /** One-line, ANSI-stripped, length-capped rendering of an off-the-wire token. */
84
103
  function capToken(value) {
85
104
  return value.length > MAX_TOKEN_CHARS ? `${value.slice(0, MAX_TOKEN_CHARS)}…` : value;
@@ -202,7 +221,7 @@ export async function checkSeatIdentity(cwd, seams = {}) {
202
221
  .trim();
203
222
  // totem-context: a scan failure is reported as a warn row — the seat-identity sensor must never take `totem doctor` down with it (report-only, Tenet 13; the checkEstate precedent).
204
223
  try {
205
- const { deriveSeatStatuses, resolveTotemRepoRootSync, sanitizeForTerminal } = await import('@mmnto/totem');
224
+ const { deriveSeatStatuses, resolveTotemRepoRootSync, safeExec, sanitizeForTerminal } = await import('@mmnto/totem');
206
225
  sanitize = sanitizeForTerminal;
207
226
  // The shared walk-start-is-not-the-root contract (`pollMail` / `eclGc` /
208
227
  // `eclCompact`, mmnto-ai/totem#2312): a doctor run from a subdirectory must
@@ -316,6 +335,62 @@ export async function checkSeatIdentity(cwd, seams = {}) {
316
335
  }
317
336
  }
318
337
  }
338
+ // Arm (d) — the win32 registry scope-sense (mmnto-ai/totem#2629).
339
+ // Doctor-time only: two `reg query` spawns per explicit doctor run, never
340
+ // the stamp hot path. A NON-BLANK value at either persistent scope is the
341
+ // finding — user/machine scope turns a per-seat identity into a
342
+ // per-machine stamp inherited by every seat's processes. A key whose value
343
+ // is BLANK is the post-remediation live shape (`reg` still exits 0 when a
344
+ // clear left the key behind); a blank stamps nothing downstream
345
+ // (resolveQbdAgentSource normalizes '' to undefined), so it is inert — no
346
+ // contradiction, no finding.
347
+ const platform = seams.platform ?? process.platform;
348
+ if (platform === 'win32') {
349
+ const regQuery = seams.regQuery ??
350
+ ((hive) => safeExec('reg', ['query', hive, '/v', 'TOTEM_SELF_AGENT']));
351
+ for (const { scope, hive } of REGISTRY_SCOPES) {
352
+ let output;
353
+ // totem-context: intentional degradation — `reg query` exits 1 when the value is absent at that hive (the healthy state, silent by contract); any OTHER failure is a scan hole this row DISCLOSES as a registry-scope-unreadable finding rather than a clean line it never verified.
354
+ try {
355
+ output = regQuery(hive);
356
+ // totem-context: intentional degradation — see directive above the try; dual placement so the rule fires on either the catch-keyword line or the catch-body line.
357
+ }
358
+ catch (err) {
359
+ const status = err.status;
360
+ if (status !== 1) {
361
+ findings.push({
362
+ seat: `${scope}-scope`,
363
+ cls: 'registry-scope-unreadable',
364
+ evidence: render(`${hive} probe failed: ${messageOf(err)}`),
365
+ });
366
+ }
367
+ continue;
368
+ }
369
+ // Rest-of-line capture, deliberately possibly-empty: the blank-value
370
+ // shape must parse (and be skipped as inert) rather than degrade to
371
+ // "unparsed". An exit-0 output whose shape resists this parse entirely
372
+ // stays a finding — present but unprovably inert: disclose, not guess.
373
+ const valueMatch = /TOTEM_SELF_AGENT\s+REG_\w+[ \t]*(.*)/i.exec(output);
374
+ if (valueMatch !== null && valueMatch[1].trim().length === 0) {
375
+ // Inert ONLY when nothing follows the match either: a value whose
376
+ // data begins past a line break (programmatically-set CR/LF-leading
377
+ // values) captures '' here yet still stamps downstream — that shape
378
+ // must stay a finding, not vanish into the blank-skip (fold re-arm
379
+ // leg catch on this PR).
380
+ const rest = output.slice(valueMatch.index + valueMatch[0].length);
381
+ if (rest.trim().length === 0)
382
+ continue;
383
+ }
384
+ const value = valueMatch === null || valueMatch[1].trim().length === 0
385
+ ? '(value present, unparsed)'
386
+ : valueMatch[1];
387
+ findings.push({
388
+ seat: capToken(render(value)),
389
+ cls: 'env-ambient-scope',
390
+ evidence: `TOTEM_SELF_AGENT is set at ${scope} scope (${hive}) — a per-seat identity must be launch-shell-scoped, never user/machine scope (mmnto-ai/totem#2629)`,
391
+ });
392
+ }
393
+ }
319
394
  const parts = [`seats sensed: ${statuses.length}`];
320
395
  parts.push(findings.length === 0
321
396
  ? 'no identity contradictions sensed'
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-seat-identity.js","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-seat-identity.js","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,13 @@ import { cleanTmpDir } from '../test-utils.js';
17
17
  import { checkSeatIdentity, OUTBOX_SCAN_LIMIT, SEAT_IDENTITY_CHECK_NAME, SEAT_IDENTITY_HONEST_LIMIT, } from './doctor-seat-identity.js';
18
18
  /** No env by default: arm (c) must stay silent unless a test names a seat. */
19
19
  const NO_ENV = {};
20
+ /**
21
+ * Every pre-arm-(d) test pins a non-win32 platform so the suite is hermetic:
22
+ * without the pin, a win32 dev host would spawn REAL `reg query` probes and a
23
+ * machine with a user-scope TOTEM_SELF_AGENT would fail unrelated assertions —
24
+ * exactly the un-isolated-test-environment trap arm (d) itself senses for.
25
+ */
26
+ const LINUX = 'linux';
20
27
  let root;
21
28
  beforeEach(() => {
22
29
  // `realpathSync` folds the win32 8.3 short name so path comparisons and the
@@ -62,7 +69,7 @@ describe('checkSeatIdentity — verdict shape', () => {
62
69
  it('is gateExempt, never fail, and always states the honest limit (clean tree)', async () => {
63
70
  seatDir('totem-claude');
64
71
  dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-note.md', 'totem-claude');
65
- const result = await checkSeatIdentity(root, { env: NO_ENV });
72
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
66
73
  expect(result.name).toBe(SEAT_IDENTITY_CHECK_NAME);
67
74
  expect(result.status).toBe('pass');
68
75
  expect(result.gateExempt).toBe(true);
@@ -71,14 +78,14 @@ describe('checkSeatIdentity — verdict shape', () => {
71
78
  expect(result.message).toContain(SEAT_IDENTITY_HONEST_LIMIT);
72
79
  });
73
80
  it('senses zero seats without failing when no seat has registered', async () => {
74
- const result = await checkSeatIdentity(root, { env: NO_ENV });
81
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
75
82
  expect(result.status).toBe('pass');
76
83
  expect(result.gateExempt).toBe(true);
77
84
  expect(result.message).toContain('seats sensed: 0');
78
85
  });
79
86
  it('does not flag a dispatch that declares no from: (the dir IS the binding)', async () => {
80
87
  dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-note.md', null);
81
- const result = await checkSeatIdentity(root, { env: NO_ENV });
88
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
82
89
  expect(result.status).toBe('pass');
83
90
  expect(result.message).not.toContain('from-mismatch');
84
91
  });
@@ -87,7 +94,7 @@ describe('checkSeatIdentity — (a) from ≠ owning dir', () => {
87
94
  it('flags the mismatch and names the offending filename', async () => {
88
95
  dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-ok.md', 'totem-claude');
89
96
  dispatch('totem-claude', '2026-08-02T0900Z-totem-codex-forged.md', 'totem-agy');
90
- const result = await checkSeatIdentity(root, { env: NO_ENV });
97
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
91
98
  expect(result.status).toBe('warn');
92
99
  expect(result.gateExempt).toBe(true);
93
100
  expect(result.message).toContain('totem-claude [from-mismatch]');
@@ -98,14 +105,14 @@ describe('checkSeatIdentity — (a) from ≠ owning dir', () => {
98
105
  });
99
106
  it('reads a quoted from: as the same seat (yamlScalar quotes when it must)', async () => {
100
107
  dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-quoted.md', '"totem-claude"');
101
- const result = await checkSeatIdentity(root, { env: NO_ENV });
108
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
102
109
  expect(result.status).toBe('pass');
103
110
  });
104
111
  it('ignores a body line that mimics from: outside the frontmatter', async () => {
105
112
  const outbox = path.join(seatDir('totem-claude'), 'outbox');
106
113
  fs.mkdirSync(outbox, { recursive: true });
107
114
  fs.writeFileSync(path.join(outbox, '2026-08-01T1200Z-totem-codex-body.md'), ['---', 'to: totem-codex', '---', '', 'from: totem-agy', ''].join('\n'));
108
- const result = await checkSeatIdentity(root, { env: NO_ENV });
115
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
109
116
  expect(result.status).toBe('pass');
110
117
  });
111
118
  });
@@ -114,7 +121,7 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
114
121
  dispatch('totem-agy', '2026-07-01T1000Z-totem-claude-before.md', 'totem-agy');
115
122
  dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
116
123
  marker('totem-agy', validMarker('suspended', '2026-08-01T00:00:00.000Z'));
117
- const result = await checkSeatIdentity(root, { env: NO_ENV });
124
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
118
125
  expect(result.status).toBe('warn');
119
126
  expect(result.gateExempt).toBe(true);
120
127
  expect(result.message).toContain('totem-agy [writing-while-excluded]');
@@ -125,20 +132,20 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
125
132
  it('flags a retired seat the same way', async () => {
126
133
  dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
127
134
  marker('totem-agy', validMarker('retired', '2026-08-01T00:00:00.000Z'));
128
- const result = await checkSeatIdentity(root, { env: NO_ENV });
135
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
129
136
  expect(result.message).toContain('totem-agy [writing-while-excluded]');
130
137
  expect(result.status).toBe('warn');
131
138
  });
132
139
  it('leaves an ACTIVE seat alone however recent its writes', async () => {
133
140
  dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
134
141
  marker('totem-agy', validMarker('active', '2026-08-01T00:00:00.000Z'));
135
- const result = await checkSeatIdentity(root, { env: NO_ENV });
142
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
136
143
  expect(result.status).toBe('pass');
137
144
  });
138
145
  it('never flags (b) on a CORRUPT marker, but relays the core warning naming it', async () => {
139
146
  dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
140
147
  marker('totem-agy', '{ not json');
141
- const result = await checkSeatIdentity(root, { env: NO_ENV });
148
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
142
149
  expect(result.status).toBe('warn');
143
150
  expect(result.gateExempt).toBe(true);
144
151
  // The blind spot is disclosed...
@@ -150,7 +157,7 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
150
157
  it('never flags (b) on a marker carrying session-state vocabulary (strict schema)', async () => {
151
158
  dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
152
159
  marker('totem-agy', validMarker('FAULTED', '2026-08-01T00:00:00.000Z'));
153
- const result = await checkSeatIdentity(root, { env: NO_ENV });
160
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
154
161
  expect(result.message).toContain('totem-agy [unreadable-marker]');
155
162
  expect(result.message).not.toContain('writing-while-excluded');
156
163
  expect(result.status).toBe('warn');
@@ -160,7 +167,10 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
160
167
  it('flags an env var naming a suspended seat', async () => {
161
168
  seatDir('totem-agy');
162
169
  marker('totem-agy', validMarker('suspended', '2026-08-01T00:00:00.000Z'));
163
- const result = await checkSeatIdentity(root, { env: { TOTEM_SELF_AGENT: 'totem-agy' } });
170
+ const result = await checkSeatIdentity(root, {
171
+ env: { TOTEM_SELF_AGENT: 'totem-agy' },
172
+ platform: LINUX,
173
+ });
164
174
  expect(result.status).toBe('warn');
165
175
  expect(result.gateExempt).toBe(true);
166
176
  expect(result.message).toContain('totem-agy [env-names-excluded-seat]');
@@ -168,15 +178,24 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
168
178
  });
169
179
  it('flags an env var naming no seat directory in this repo', async () => {
170
180
  seatDir('totem-claude');
171
- const result = await checkSeatIdentity(root, { env: { TOTEM_SELF_AGENT: 'totem-ghost' } });
181
+ const result = await checkSeatIdentity(root, {
182
+ env: { TOTEM_SELF_AGENT: 'totem-ghost' },
183
+ platform: LINUX,
184
+ });
172
185
  expect(result.status).toBe('warn');
173
186
  expect(result.message).toContain('totem-ghost [env-names-unknown-seat]');
174
187
  });
175
188
  it('stays silent for an active seat and for an unset / blank env var', async () => {
176
189
  seatDir('totem-claude');
177
- const active = await checkSeatIdentity(root, { env: { TOTEM_SELF_AGENT: 'totem-claude' } });
178
- const unset = await checkSeatIdentity(root, { env: NO_ENV });
179
- const blank = await checkSeatIdentity(root, { env: { TOTEM_SELF_AGENT: ' ' } });
190
+ const active = await checkSeatIdentity(root, {
191
+ env: { TOTEM_SELF_AGENT: 'totem-claude' },
192
+ platform: LINUX,
193
+ });
194
+ const unset = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
195
+ const blank = await checkSeatIdentity(root, {
196
+ env: { TOTEM_SELF_AGENT: ' ' },
197
+ platform: LINUX,
198
+ });
180
199
  for (const result of [active, unset, blank]) {
181
200
  expect(result.status).toBe('pass');
182
201
  expect(result.message).not.toContain('env-names');
@@ -188,13 +207,17 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
188
207
  marker('totem-agy', validMarker('retired', '2026-08-01T00:00:00.000Z'));
189
208
  const result = await checkSeatIdentity(root, {
190
209
  env: { TOTEM_SELF_AGENT: 'totem-claude, totem-agy' },
210
+ platform: LINUX,
191
211
  });
192
212
  expect(result.message).toContain('totem-agy [env-names-excluded-seat]');
193
213
  expect(result.message).toContain('names a retired seat');
194
214
  });
195
215
  it('does not flag (c) on a corrupt marker — the seat reads active by core contract', async () => {
196
216
  marker('totem-agy', '{ not json');
197
- const result = await checkSeatIdentity(root, { env: { TOTEM_SELF_AGENT: 'totem-agy' } });
217
+ const result = await checkSeatIdentity(root, {
218
+ env: { TOTEM_SELF_AGENT: 'totem-agy' },
219
+ platform: LINUX,
220
+ });
198
221
  expect(result.message).toContain('unreadable-marker');
199
222
  expect(result.message).not.toContain('env-names-excluded-seat');
200
223
  });
@@ -204,7 +227,11 @@ describe('checkSeatIdentity — scan bound', () => {
204
227
  for (let i = 0; i < 4; i++) {
205
228
  dispatch('totem-claude', `2026-08-0${i + 1}T1200Z-totem-codex-n${i}.md`, 'totem-claude');
206
229
  }
207
- const bounded = await checkSeatIdentity(root, { env: NO_ENV, outboxScanLimit: 2 });
230
+ const bounded = await checkSeatIdentity(root, {
231
+ env: NO_ENV,
232
+ outboxScanLimit: 2,
233
+ platform: LINUX,
234
+ });
208
235
  expect(bounded.message).toContain('scan bounded at 2/outbox');
209
236
  expect(bounded.message).toContain('totem-claude: newest 2 of 4 outbox file(s) scanned');
210
237
  expect(bounded.gateExempt).toBe(true);
@@ -214,7 +241,7 @@ describe('checkSeatIdentity — scan bound', () => {
214
241
  });
215
242
  it('says nothing about the bound when the whole outbox fits inside it', async () => {
216
243
  dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-n0.md', 'totem-claude');
217
- const result = await checkSeatIdentity(root, { env: NO_ENV });
244
+ const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
218
245
  expect(result.message).not.toContain('scan bounded');
219
246
  // Exact default, not a weak range check (CR on #2627).
220
247
  expect(OUTBOX_SCAN_LIMIT).toBe(200);
@@ -222,9 +249,142 @@ describe('checkSeatIdentity — scan bound', () => {
222
249
  it('keeps the NEWEST files when the bound bites (lexical tail = newest tail)', async () => {
223
250
  dispatch('totem-claude', '2026-07-01T1200Z-totem-codex-old.md', 'totem-agy');
224
251
  dispatch('totem-claude', '2026-08-09T1200Z-totem-codex-new.md', 'totem-agy');
225
- const result = await checkSeatIdentity(root, { env: NO_ENV, outboxScanLimit: 1 });
252
+ const result = await checkSeatIdentity(root, {
253
+ env: NO_ENV,
254
+ outboxScanLimit: 1,
255
+ platform: LINUX,
256
+ });
226
257
  expect(result.message).toContain('2026-08-09T1200Z-totem-codex-new.md');
227
258
  expect(result.message).not.toContain('2026-07-01T1200Z-totem-codex-old.md');
228
259
  });
229
260
  });
261
+ describe('checkSeatIdentity — (d) registry scope-sense (win32, mmnto-ai/totem#2629)', () => {
262
+ /** Real `reg query` hit shape, CRLF line endings and all. */
263
+ const REG_HIT_STDOUT = [
264
+ 'HKEY_CURRENT_USER\\Environment',
265
+ ' TOTEM_SELF_AGENT REG_SZ totem-claude',
266
+ '',
267
+ ].join('\r\n');
268
+ /** The healthy state: `reg query` exits 1 when the value is absent. */
269
+ function regAbsent() {
270
+ const err = new Error('reg exited 1');
271
+ err.status = 1;
272
+ throw err;
273
+ }
274
+ it('never probes the registry off win32', async () => {
275
+ let calls = 0;
276
+ const result = await checkSeatIdentity(root, {
277
+ env: NO_ENV,
278
+ platform: LINUX,
279
+ regQuery: () => {
280
+ calls++;
281
+ return REG_HIT_STDOUT;
282
+ },
283
+ });
284
+ expect(calls).toBe(0);
285
+ expect(result.message).not.toContain('env-ambient-scope');
286
+ });
287
+ it('flags a user-scope TOTEM_SELF_AGENT with the value, scope, and issue named', async () => {
288
+ const result = await checkSeatIdentity(root, {
289
+ env: NO_ENV,
290
+ platform: 'win32',
291
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? REG_HIT_STDOUT : regAbsent()),
292
+ });
293
+ expect(result.status).toBe('warn');
294
+ expect(result.gateExempt).toBe(true);
295
+ expect(result.message).toContain('totem-claude [env-ambient-scope]');
296
+ expect(result.message).toContain('user scope');
297
+ expect(result.message).toContain('mmnto-ai/totem#2629');
298
+ });
299
+ it('a machine-scope hit names the machine scope', async () => {
300
+ const result = await checkSeatIdentity(root, {
301
+ env: NO_ENV,
302
+ platform: 'win32',
303
+ regQuery: (hive) => (hive.startsWith('HKLM') ? REG_HIT_STDOUT : regAbsent()),
304
+ });
305
+ expect(result.status).toBe('warn');
306
+ expect(result.message).toContain('[env-ambient-scope]');
307
+ expect(result.message).toContain('machine scope');
308
+ });
309
+ it('both hives absent (reg exit 1) is the healthy silent state', async () => {
310
+ const result = await checkSeatIdentity(root, {
311
+ env: NO_ENV,
312
+ platform: 'win32',
313
+ regQuery: regAbsent,
314
+ });
315
+ expect(result.status).toBe('pass');
316
+ expect(result.message).not.toContain('env-ambient-scope');
317
+ expect(result.message).not.toContain('registry-scope-unreadable');
318
+ });
319
+ it('a real probe failure is DISCLOSED as registry-scope-unreadable, never silent or fabricated', async () => {
320
+ const result = await checkSeatIdentity(root, {
321
+ env: NO_ENV,
322
+ platform: 'win32',
323
+ regQuery: () => {
324
+ throw new Error('spawn reg ENOENT');
325
+ },
326
+ });
327
+ expect(result.status).toBe('warn');
328
+ expect(result.gateExempt).toBe(true);
329
+ expect(result.message).toContain('[registry-scope-unreadable]');
330
+ expect(result.message).toContain('ENOENT');
331
+ expect(result.message).not.toContain('env-ambient-scope');
332
+ });
333
+ it('a BLANK-valued key (the post-remediation live shape: value cleared, key kept) is inert — no finding', async () => {
334
+ // Verbatim `reg query` output for a blank REG_SZ value after safeExec's
335
+ // whole-output trim: `reg` exits 0, the key exists, the value stamps
336
+ // nothing (resolveQbdAgentSource normalizes '' to undefined).
337
+ const blank = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ';
338
+ const result = await checkSeatIdentity(root, {
339
+ env: NO_ENV,
340
+ platform: 'win32',
341
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : regAbsent()),
342
+ });
343
+ expect(result.status).toBe('pass');
344
+ expect(result.message).not.toContain('env-ambient-scope');
345
+ expect(result.message).not.toContain('registry-scope-unreadable');
346
+ });
347
+ it('a blank value with trailing padding (untrimmed stdout variant) is equally inert', async () => {
348
+ const blank = '\r\nHKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ \r\n\r\n';
349
+ const result = await checkSeatIdentity(root, {
350
+ env: NO_ENV,
351
+ platform: 'win32',
352
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : regAbsent()),
353
+ });
354
+ expect(result.status).toBe('pass');
355
+ expect(result.message).not.toContain('env-ambient-scope');
356
+ });
357
+ it('a blank HKCU does NOT mask a real machine-scope hit — the loop probes both hives', async () => {
358
+ const blank = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ';
359
+ const result = await checkSeatIdentity(root, {
360
+ env: NO_ENV,
361
+ platform: 'win32',
362
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : REG_HIT_STDOUT),
363
+ });
364
+ expect(result.status).toBe('warn');
365
+ expect(result.message).toContain('[env-ambient-scope]');
366
+ expect(result.message).toContain('machine scope');
367
+ });
368
+ it('a CR/LF-leading value is NOT the inert blank shape — it still stamps downstream, so it stays a finding', async () => {
369
+ // Programmatically-settable only (never via setx/GUI), but such a value
370
+ // survives resolveQbdAgentSource's trim-split and contaminates rows.
371
+ const crlfValue = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ \r\nrogue-seat';
372
+ const result = await checkSeatIdentity(root, {
373
+ env: NO_ENV,
374
+ platform: 'win32',
375
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? crlfValue : regAbsent()),
376
+ });
377
+ expect(result.status).toBe('warn');
378
+ expect(result.message).toContain('(value present, unparsed) [env-ambient-scope]');
379
+ });
380
+ it('a hit whose value line resists parsing is still a finding — presence IS the contradiction', async () => {
381
+ const result = await checkSeatIdentity(root, {
382
+ env: NO_ENV,
383
+ platform: 'win32',
384
+ regQuery: (hive) => (hive === 'HKCU\\Environment' ? 'unexpected output shape' : regAbsent()),
385
+ });
386
+ expect(result.status).toBe('warn');
387
+ expect(result.message).toContain('(value present, unparsed) [env-ambient-scope]');
388
+ });
389
+ });
230
390
  //# sourceMappingURL=doctor-seat-identity.test.js.map