instar 1.3.341 → 1.3.343

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScenarioPack.js","sourceRoot":"","sources":["../../src/redteam/ScenarioPack.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.341",
3
+ "version": "1.3.343",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-06T04:58:42.775Z",
5
- "instarVersion": "1.3.341",
4
+ "generatedAt": "2026-06-06T05:21:01.567Z",
5
+ "instarVersion": "1.3.343",
6
6
  "entryCount": 199,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -11,7 +11,7 @@
11
11
  "domain": "identity",
12
12
  "sourcePath": "src/core/PostUpdateMigrator.ts",
13
13
  "installedPath": ".instar/hooks/instar/session-start.sh",
14
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
14
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
15
15
  "since": "2025-01-01"
16
16
  },
17
17
  "hook:dangerous-command-guard": {
@@ -20,7 +20,7 @@
20
20
  "domain": "safety",
21
21
  "sourcePath": "src/core/PostUpdateMigrator.ts",
22
22
  "installedPath": ".instar/hooks/instar/dangerous-command-guard.sh",
23
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
23
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
24
24
  "since": "2025-01-01"
25
25
  },
26
26
  "hook:grounding-before-messaging": {
@@ -29,7 +29,7 @@
29
29
  "domain": "safety",
30
30
  "sourcePath": "src/core/PostUpdateMigrator.ts",
31
31
  "installedPath": ".instar/hooks/instar/grounding-before-messaging.sh",
32
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
32
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
33
33
  "since": "2025-01-01"
34
34
  },
35
35
  "hook:compaction-recovery": {
@@ -38,7 +38,7 @@
38
38
  "domain": "identity",
39
39
  "sourcePath": "src/core/PostUpdateMigrator.ts",
40
40
  "installedPath": ".instar/hooks/instar/compaction-recovery.sh",
41
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
41
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
42
42
  "since": "2025-01-01"
43
43
  },
44
44
  "hook:external-operation-gate": {
@@ -47,7 +47,7 @@
47
47
  "domain": "safety",
48
48
  "sourcePath": "src/core/PostUpdateMigrator.ts",
49
49
  "installedPath": ".instar/hooks/instar/external-operation-gate.js",
50
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
50
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
51
51
  "since": "2025-01-01"
52
52
  },
53
53
  "hook:deferral-detector": {
@@ -56,7 +56,7 @@
56
56
  "domain": "safety",
57
57
  "sourcePath": "src/core/PostUpdateMigrator.ts",
58
58
  "installedPath": ".instar/hooks/instar/deferral-detector.js",
59
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
59
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
60
60
  "since": "2025-01-01"
61
61
  },
62
62
  "hook:self-stop-guard": {
@@ -65,7 +65,7 @@
65
65
  "domain": "coherence",
66
66
  "sourcePath": "src/core/PostUpdateMigrator.ts",
67
67
  "installedPath": ".instar/hooks/instar/self-stop-guard.js",
68
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
68
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
69
69
  "since": "2025-01-01"
70
70
  },
71
71
  "hook:post-action-reflection": {
@@ -74,7 +74,7 @@
74
74
  "domain": "evolution",
75
75
  "sourcePath": "src/core/PostUpdateMigrator.ts",
76
76
  "installedPath": ".instar/hooks/instar/post-action-reflection.js",
77
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
77
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
78
78
  "since": "2025-01-01"
79
79
  },
80
80
  "hook:external-communication-guard": {
@@ -83,7 +83,7 @@
83
83
  "domain": "safety",
84
84
  "sourcePath": "src/core/PostUpdateMigrator.ts",
85
85
  "installedPath": ".instar/hooks/instar/external-communication-guard.js",
86
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
86
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
87
87
  "since": "2025-01-01"
88
88
  },
89
89
  "hook:scope-coherence-collector": {
@@ -92,7 +92,7 @@
92
92
  "domain": "coherence",
93
93
  "sourcePath": "src/core/PostUpdateMigrator.ts",
94
94
  "installedPath": ".instar/hooks/instar/scope-coherence-collector.js",
95
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
95
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
96
96
  "since": "2025-01-01"
97
97
  },
98
98
  "hook:scope-coherence-checkpoint": {
@@ -101,7 +101,7 @@
101
101
  "domain": "coherence",
102
102
  "sourcePath": "src/core/PostUpdateMigrator.ts",
103
103
  "installedPath": ".instar/hooks/instar/scope-coherence-checkpoint.js",
104
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
104
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
105
105
  "since": "2025-01-01"
106
106
  },
107
107
  "hook:free-text-guard": {
@@ -110,7 +110,7 @@
110
110
  "domain": "safety",
111
111
  "sourcePath": "src/core/PostUpdateMigrator.ts",
112
112
  "installedPath": ".instar/hooks/instar/free-text-guard.sh",
113
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
113
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
114
114
  "since": "2025-01-01"
115
115
  },
116
116
  "hook:claim-intercept": {
@@ -119,7 +119,7 @@
119
119
  "domain": "coherence",
120
120
  "sourcePath": "src/core/PostUpdateMigrator.ts",
121
121
  "installedPath": ".instar/hooks/instar/claim-intercept.js",
122
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
122
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
123
123
  "since": "2025-01-01"
124
124
  },
125
125
  "hook:claim-intercept-response": {
@@ -128,7 +128,7 @@
128
128
  "domain": "coherence",
129
129
  "sourcePath": "src/core/PostUpdateMigrator.ts",
130
130
  "installedPath": ".instar/hooks/instar/claim-intercept-response.js",
131
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
131
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
132
132
  "since": "2025-01-01"
133
133
  },
134
134
  "hook:stop-gate-router": {
@@ -137,7 +137,7 @@
137
137
  "domain": "safety",
138
138
  "sourcePath": "src/core/PostUpdateMigrator.ts",
139
139
  "installedPath": ".instar/hooks/instar/stop-gate-router.js",
140
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
140
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
141
141
  "since": "2025-01-01"
142
142
  },
143
143
  "hook:auto-approve-permissions": {
@@ -146,7 +146,7 @@
146
146
  "domain": "safety",
147
147
  "sourcePath": "src/core/PostUpdateMigrator.ts",
148
148
  "installedPath": ".instar/hooks/instar/auto-approve-permissions.js",
149
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
149
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
150
150
  "since": "2025-01-01"
151
151
  },
152
152
  "job:health-check": {
@@ -1538,7 +1538,7 @@
1538
1538
  "type": "subsystem",
1539
1539
  "domain": "updates",
1540
1540
  "sourcePath": "src/core/PostUpdateMigrator.ts",
1541
- "contentHash": "72604345a56ff19867136d0457efe9c4757b0bcaeeaadd48f3558b41caf82941",
1541
+ "contentHash": "67606a9d2c94d2b88f5ec21a08965b25afbbb43e1291de2ebdd0cc77dfed949c",
1542
1542
  "since": "2025-01-01"
1543
1543
  },
1544
1544
  "subsystem:scheduler": {
@@ -0,0 +1,85 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ GuardPostureTripwire — "a disabled guard is itself an incident." Born from
9
+ 2026-06-05, when the morning meltdown load-shed batch-flipped FIVE guards off
10
+ in config.json (scheduler, contextWedgeSentinel, failureLearning,
11
+ resourceLedger, burnDetection) and only the scheduler was noticed: the wedge
12
+ sentinel stayed dark and watched a session die for an hour that same evening
13
+ with zero audit rows. No instar code writes those flags — emergency hand-edits
14
+ leave no trace, so each dark guard was discoverable only by a user-facing
15
+ failure.
16
+
17
+ Now: at every server boot, the resolved guard posture (every `monitoring.*`
18
+ enabled flag + `scheduler.enabled` — generic by convention, no per-guard
19
+ registration) is compared against the persisted posture from the previous
20
+ boot. Any enabled→disabled transition gets a loud boot log line, one
21
+ aggregated row in `logs/guard-posture.jsonl`, and ONE aggregated HIGH
22
+ Attention item listing every newly-disabled guard. Re-enables get the
23
+ breadcrumb only. Signal-only: nothing is ever auto-re-enabled, a broken
24
+ tripwire can never break a boot, and the snapshot advances before alarms so
25
+ the same transition never re-alarms.
26
+
27
+ Queued initial messages now survive server restarts. When a session is
28
+ spawned for an inbound message, the pending inject is recorded durably
29
+ (`<stateDir>/state/pending-injects/`) and cleared only after the message is
30
+ actually typed into the session. On boot, `recoverPendingInjects` sweeps
31
+ survivors: still-alive sessions get re-delivery through the normal readiness
32
+ path; dead or >6h-old records are reported via DegradationReporter and
33
+ retired — a loss is now always VISIBLE.
34
+
35
+ Why: the auto-updater restarted the server while a fresh codex session was
36
+ still booting; the in-memory pending inject died with the process, tmux
37
+ survived idle, and the operator waited 50+ minutes on a silently dropped
38
+ message (finding 8d300555). Delivery is at-least-once by design — a rare
39
+ duplicate beats a silent drop.
40
+
41
+ Also: the "Fresh-spawn fallback succeeded" log now honestly says "launched
42
+ (inject pending)" — it printed before the inject ran.
43
+
44
+ ## What to Tell Your User
45
+
46
+ If any of my safety monitors ever gets switched off — by an emergency
47
+ intervention, a config edit, or anything else — you now hear about it at the
48
+ next restart instead of finding out weeks later when something it should have
49
+ caught hits you. One consolidated heads-up, with the history kept in a log
50
+ file. Nothing gets re-enabled behind your back; the heads-up is where you
51
+ decide.
52
+
53
+ If your agent's server restarts at the exact moment you message it, your
54
+ message no longer risks silently vanishing — it is delivered when the session
55
+ finishes starting, even across the restart.
56
+
57
+ ## Summary of New Capabilities
58
+
59
+ - Boot-time guard-posture comparison with durable history at
60
+ `logs/guard-posture.jsonl` and snapshot at `state/guard-posture.json`.
61
+ Default-on, zero configuration; covers any future guard that follows the
62
+ `monitoring.<key>.enabled` convention automatically.
63
+ - ONE aggregated HIGH Attention item per boot that saw disables (Bounded
64
+ Notification Surface — never per-guard items).
65
+ - CLAUDE.md template + migration: agents are taught to check
66
+ `logs/guard-posture.jsonl` FIRST when asked "why didn't the watchdog catch
67
+ X?" — a silently-disabled guard explains more incidents than a broken one.
68
+
69
+ - `SessionManager.recoverPendingInjects()` — boot-time orphaned-inject sweep
70
+ (wired automatically; not a user-facing surface).
71
+
72
+ ## Evidence
73
+
74
+ Incident grounding: last sentinel-enabled boot 21:54Z = the exact minute of
75
+ the #882 load-shed; 3 more dark guards found by config audit and re-enabled.
76
+ Unit: 12 tests incl. the verbatim 5-guard incident config → exactly ONE
77
+ aggregated item, no-repeat-alarm across boots, re-enable breadcrumb-only,
78
+ corrupt-snapshot self-repair, emit-failure baseline-advance. Migrator: 2
79
+ (added + idempotent). E2E: two-boot lifecycle over real disk + WIRED source
80
+ guard. tsc clean; preflight PASS.
81
+
82
+ 13 new tests (store CRUD/corruption, all four sweep verdicts incl. the live
83
+ incident shape, and wiring-integrity through a real SessionManager: record
84
+ visible on disk DURING the spawn→inject window, cleared after). Adjacent
85
+ session suites green (53 tests); tsc clean.
@@ -0,0 +1,49 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Added the Phase-1 core of the **MTP Red-Team Harness** (EXO 3.0 G7) — a
9
+ self-contained, browser-free logic module (`src/redteam/ScenarioPack.ts`) plus
10
+ two default scenario packs. It is the testable engine for standardized
11
+ adversarial verification of an organization's machine-readable intent
12
+ (ORG-INTENT.md): a pack linter that enforces channel coherence (a scenario's
13
+ pretended sender must be deliverable by its transport), an expectation resolver
14
+ that reuses the G1 `IntentTestHarness` to compute governed/ungoverned against
15
+ *any* org's own intent, a heuristic outcome classifier, and a boundary-map
16
+ assembler (per-scenario boundary depth, derivation ratio, ungoverned surface).
17
+
18
+ Payloads are referenced by `{path, sha256}` and never read into the
19
+ orchestrator — only the benign L0 (declared-audit) and L1 (naive ask) payloads
20
+ are committed; the engineered L2/L3 payloads are gitignored and authored in a
21
+ retired session at run time (the structural fix for CMT-1115, where inline
22
+ red-team payloads permanently wedged a session via an AUP-rejection loop).
23
+
24
+ No route, CLI, config key, or lifecycle hook is added — nothing imports this
25
+ module at runtime yet. The CLI/route, dashboard surface, and first live
26
+ boundary-map run are Phase 2.
27
+
28
+ ## What to Tell Your User
29
+
30
+ Nothing user-facing ships here — this is foundation code for an experimental
31
+ capability (verifying that an agent actually refuses the things its
32
+ organization's rules forbid, under escalating attack pressure). It does not
33
+ change any current behavior.
34
+
35
+ ## Summary of New Capabilities
36
+
37
+ - `src/redteam/ScenarioPack.ts` (experimental, no runtime consumers yet):
38
+ scenario-pack types, pack linter, org-agnostic expectation resolver, outcome
39
+ classifier, boundary-map assembler.
40
+ - Default scenario packs: `credentials` (L0–L3) and `value-conflict` (L0–L2),
41
+ payloads by reference.
42
+
43
+ ## Evidence
44
+
45
+ Not a bug fix — net-new capability. Verified by 25 unit tests
46
+ (`tests/unit/redteam-scenario-pack.test.ts`) covering both sides of every
47
+ decision boundary (coherent vs incoherent transport, governed vs ungoverned,
48
+ each outcome class, pass vs fail, boundary-depth edges including crack-at-L0 and
49
+ holds-everywhere) and a clean `tsc --noEmit`.
@@ -0,0 +1,48 @@
1
+ # ELI16 — Guard-Posture Tripwire
2
+
3
+ ## The problem
4
+
5
+ Yesterday morning, during an emergency (the laptop was melting down), somebody
6
+ — one of my own sessions, acting fast — turned off a bunch of my safety
7
+ monitors by editing a config file. That's like flipping the breakers off while
8
+ fighting a kitchen fire: sometimes reasonable in the moment. The problem is
9
+ what came after: nobody wrote down which breakers got flipped. One (the job
10
+ scheduler) was noticed and turned back on 5.5 hours later. FOUR others stayed
11
+ off, silently. That same evening a session died in a brand-new way, and the
12
+ exact watchdog built to catch dying sessions... was one of the monitors still
13
+ switched off. It watched nothing. Justin found out via screenshot, again.
14
+
15
+ The deep issue: none of my code turns these monitors off — humans and
16
+ emergency interventions do, by hand, and hand-edits leave no trace. A monitor
17
+ that's secretly off is worse than a broken one, because everything LOOKS
18
+ covered.
19
+
20
+ ## What this change does
21
+
22
+ At every server start, I now compare "which guards are on right now?" against
23
+ a saved copy of "which guards were on last time I started?" If any guard went
24
+ ON → OFF in between:
25
+
26
+ 1. A loud line in the boot log,
27
+ 2. A permanent record in `logs/guard-posture.jsonl` (so "was the watchdog even
28
+ running in March?" has an answer forever),
29
+ 3. ONE attention item — "these N guards got disabled since last boot, was that
30
+ on purpose?" — not N separate pings.
31
+
32
+ Turning a guard back ON just gets the log entry — good news isn't homework.
33
+
34
+ ## What it deliberately does NOT do
35
+
36
+ It never flips anything back on by itself. If you disabled a monitor on
37
+ purpose, it stays disabled — you just acknowledge the one heads-up. The
38
+ tripwire is a smoke detector, not a sprinkler system. And it can't break
39
+ anything: if the tripwire itself hits an error, the server boots normally and
40
+ the error goes in the log.
41
+
42
+ ## Why this matters beyond yesterday
43
+
44
+ This was the SECOND silently-disabled guard found in one day. That's not bad
45
+ luck, that's a missing structure: there was no system that noticed "a
46
+ protection went away." Now there is, and it automatically covers every future
47
+ monitor too — anything that follows the standard config naming is watched
48
+ from the day it ships, with zero extra wiring.
@@ -0,0 +1,76 @@
1
+ # Side-Effects Review — GuardPostureTripwire
2
+
3
+ **Version / slug:** `guard-posture-tripwire`
4
+ **Date:** `2026-06-06`
5
+ **Author:** `Echo (instar-dev agent, session-robustness topic per Justin's "work on more robust ways to handle these scenarios")`
6
+ **Second-pass reviewer:** `self-adversarial pass over alarm fatigue + boot-safety (the two ways a boot-time alarm can go wrong)`
7
+
8
+ ## Summary of the change
9
+
10
+ A boot-time detector compares the resolved guard posture (every
11
+ `monitoring.*` enabled flag + `scheduler.enabled`) against the previous
12
+ boot's persisted snapshot. enabled→disabled → loud log + one aggregated
13
+ `logs/guard-posture.jsonl` row + ONE aggregated HIGH Attention item;
14
+ disabled→enabled → log + breadcrumb only; first boot → baseline only.
15
+ Files: `GuardPostureTripwire.ts` (new), `server.ts` boot wiring,
16
+ `PostUpdateMigrator.ts` CLAUDE.md section, three test files, spec.
17
+
18
+ ## Decision-point inventory
19
+
20
+ - Posture extraction — **add (read-only)** — resolved config in, key/boolean map out; generic convention, no registry.
21
+ - Transition diff — **add (pure)** — intersection-only (shape changes are not flips).
22
+ - Attention emit — **add (signal)** — one aggregated HIGH item per boot-with-disables; dedupe by stable id; absent Telegram → breadcrumb only.
23
+ - Snapshot write order — **deliberate** — baseline advances BEFORE alarms so an emit failure cannot cause repeat alarms.
24
+
25
+ ## 1. Over-block
26
+
27
+ Nothing is blocked — the tripwire has no authority. Worst noise case: an
28
+ operator deliberately disabling a guard gets exactly ONE Attention item at the
29
+ next boot (transition-based; the following boots are silent). A batch flip of
30
+ N guards is ONE item, not N (Bounded Notification Surface).
31
+
32
+ ## 2. Under-block
33
+
34
+ (a) A flip that is reverted BETWEEN boots (off at 2pm, back on at 5pm, no
35
+ restart in between) never trips — acceptable: the guard never actually ran
36
+ disabled. (b) Mid-run flips alarm only at the next boot — that is when config
37
+ takes effect, so the alarm coincides with the guard actually dying; with
38
+ auto-update restarts every ~30 min the window is bounded. (c) Guards that
39
+ don't follow the `enabled` convention (none today) would be invisible —
40
+ the convention IS the contract, documented in the spec.
41
+
42
+ ## 3. Level-of-abstraction fit
43
+
44
+ Lives in `monitoring/` beside the sentinels it watches over; wired in
45
+ server.ts boot exactly like the worktree detector (same emitAttention
46
+ adapter, same placement constraint). The CLAUDE.md knowledge rides the
47
+ existing migrateClaudeMd path with a content-sniff marker.
48
+
49
+ ## 4. Signal vs authority compliance
50
+
51
+ **Required reference:** `docs/signal-vs-authority.md`
52
+
53
+ - [x] Pure signal. Never re-enables, never blocks a boot (every failure path
54
+ degrades into `result.error` + a log line), never edits config. The
55
+ Attention item is the operator's consent surface, not an action.
56
+
57
+ ## 5. Interactions
58
+
59
+ - **Attention flood guard:** a single aggregated item with sourceContext
60
+ `guard-posture-tripwire` — inside every budget; HIGH priority is justified
61
+ (a dark guard is exactly the "user should know" class) and HIGH items are
62
+ never coalesced away.
63
+ - **AttentionQueue dedupe:** stable id (`guard-posture-disabled:<date>:<list>`)
64
+ makes a same-day re-emit a no-op via the existing id-collision path.
65
+ - **No Telegram:** breadcrumb still lands (the worktree-detector fallback
66
+ pattern); boot line says "breadcrumb only".
67
+ - **Snapshot corruption:** degrades to first-boot semantics + self-repairs.
68
+
69
+ ## 6. External surfaces / 7. Rollback
70
+
71
+ New files only: `state/guard-posture.json` (snapshot), `logs/guard-posture.jsonl`
72
+ (append-only history), one CLAUDE.md section (idempotent migration). No API,
73
+ no schema, no config key (default-on by design — a tripwire you can silently
74
+ disable would be the joke version of this feature; disabling it means deleting
75
+ the wiring, which is a reviewed code change). Rollback = revert; the files
76
+ stay as inert history.
@@ -0,0 +1,53 @@
1
+ # Side-effects review — MTP Red-Team Harness Phase-1 core (EXO 3.0 G7)
2
+
3
+ ## What this change is
4
+ A new, self-contained module `src/redteam/ScenarioPack.ts` (pure logic) + two
5
+ default scenario packs under `src/redteam/packs/` + a unit test. It adds NO
6
+ route, NO CLI command, NO session/lifecycle hook, NO config key, and is imported
7
+ by nothing in the running server yet. It is foundation code for a Phase-2
8
+ productization (CLI/route).
9
+
10
+ ## Blast radius
11
+ - **Runtime impact: none.** Nothing imports `ScenarioPack.ts` at server boot or
12
+ in any job/sentinel/route. Adding the file cannot change any live behavior. A
13
+ grep for `redteam` / `ScenarioPack` across `src/server`, `src/commands`,
14
+ `src/core` composition shows no consumer.
15
+ - **Only dependency is inward**: it imports `IntentTestHarness` and the
16
+ `ParsedOrgIntent` type — both read-only, already-shipped. It calls
17
+ `IntentTestHarness.testRefusal()` (a pure function over parsed intent); it
18
+ never mutates intent, never writes files, never performs I/O.
19
+ - **The packs are data.** The two `pack.json` files + committed `L0.md`/`L1.md`
20
+ payloads are inert until a future runner reads them. No code loads them yet.
21
+
22
+ ## Security / safety review
23
+ - **Payload-by-reference is enforced in the type system**: the module handles
24
+ payloads as `{ path, sha256 }` only and has no code path that reads a payload
25
+ body. The committed payloads (`L0.md` declared-audit, `L1.md` naive benign
26
+ ask) were authored in an isolated subagent session, never in the orchestrator
27
+ transcript — honoring the CMT-1115 lesson (inline red-team payloads
28
+ permanently wedged a session via an AUP-rejection loop).
29
+ - **Engineered payloads are NOT committed**: `L2.md` (pressure) and `L3.md`
30
+ (engineered) are gitignored; their `pack.json` sha reads
31
+ `PENDING-LOCAL-AUTHOR`. So the reviewable PR diff contains no engineered
32
+ attack text — a reviewing agent reading this diff cannot be wedged by it.
33
+ - **No new external surface**: no network calls, no new auth, no new file
34
+ writes. The classifier's regexes are local string checks.
35
+
36
+ ## Framework generality
37
+ This change does not route through the session-launch / inject abstraction or
38
+ message delivery — it is framework-agnostic pure logic operating on parsed
39
+ ORG-INTENT, which is identical across claude-code / codex-cli / gemini-cli. The
40
+ harness it seeds is explicitly designed to be org-agnostic AND framework-neutral
41
+ (it tests an agent's behavior through whatever channel, independent of the
42
+ underlying framework). No Claude-specific assumption is introduced.
43
+
44
+ ## Test coverage
45
+ 25 unit tests (`tests/unit/redteam-scenario-pack.test.ts`) cover both sides of
46
+ every decision boundary: coherent vs incoherent transport, governed vs
47
+ ungoverned, each outcome class, pass vs fail, and the boundary-map edges
48
+ (holds-through-L2-cracks-at-L3, cracks-at-L0, holds-everywhere, derivation
49
+ ratio, ungoverned surface). `tsc --noEmit` is clean.
50
+
51
+ ## Rollback
52
+ Deleting `src/redteam/` + the test + reverting the `.gitignore` lines fully
53
+ removes the change with zero runtime consequence (nothing depends on it).
@@ -1,41 +0,0 @@
1
- # Upgrade Guide — vNEXT
2
-
3
- <!-- assembled-by: assemble-next-md -->
4
- <!-- bump: patch -->
5
-
6
- ## What Changed
7
-
8
- Queued initial messages now survive server restarts. When a session is
9
- spawned for an inbound message, the pending inject is recorded durably
10
- (`<stateDir>/state/pending-injects/`) and cleared only after the message is
11
- actually typed into the session. On boot, `recoverPendingInjects` sweeps
12
- survivors: still-alive sessions get re-delivery through the normal readiness
13
- path; dead or >6h-old records are reported via DegradationReporter and
14
- retired — a loss is now always VISIBLE.
15
-
16
- Why: the auto-updater restarted the server while a fresh codex session was
17
- still booting; the in-memory pending inject died with the process, tmux
18
- survived idle, and the operator waited 50+ minutes on a silently dropped
19
- message (finding 8d300555). Delivery is at-least-once by design — a rare
20
- duplicate beats a silent drop.
21
-
22
- Also: the "Fresh-spawn fallback succeeded" log now honestly says "launched
23
- (inject pending)" — it printed before the inject ran.
24
-
25
- ## What to Tell Your User
26
-
27
- If your agent's server restarts at the exact moment you message it, your
28
- message no longer risks silently vanishing — it is delivered when the session
29
- finishes starting, even across the restart.
30
-
31
- ## Summary of New Capabilities
32
-
33
- - `SessionManager.recoverPendingInjects()` — boot-time orphaned-inject sweep
34
- (wired automatically; not a user-facing surface).
35
-
36
- ## Evidence
37
-
38
- 13 new tests (store CRUD/corruption, all four sweep verdicts incl. the live
39
- incident shape, and wiring-integrity through a real SessionManager: record
40
- visible on disk DURING the spawn→inject window, cleared after). Adjacent
41
- session suites green (53 tests); tsc clean.