instar 1.3.1220 → 1.3.1221

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,82 @@
1
+ # Side-Effects Review — File-path feedback advisory by default
2
+
3
+ **Version / slug:** `file-path-advisory-default`
4
+ **Date:** `2026-09-04`
5
+ **Author:** `echo`
6
+ **Second-pass reviewer:** `Codex /root/rule2_side_effects_review`
7
+
8
+ ## Summary of the change
9
+
10
+ `MessagingToneGate` changes `B2_FILE_PATH` from blocking to advisory for every install, independent of the broader fleet-dark advisory-migration flag. `PostUpdateMigrator` replaces the prior CLAUDE.md advisory section idempotently and mirrors it into Codex/Gemini shadows. The Telegram route describes evidence recording honestly when the recorder is unavailable. Focused tests cover runtime disposition and override, fresh-install awareness, migration replacement, idempotency, shadow parity, and positioning.
11
+
12
+ ## Decision-point inventory
13
+
14
+ - `MessagingToneGate.RULE_DISPOSITIONS.B2_FILE_PATH` — modified — a contextual file-path judgment no longer has terminal blocking authority.
15
+ - `PostUpdateMigrator.migrateClaudeMd` — modified — existing installed awareness text is replaced or added idempotently.
16
+ - `PostUpdateMigrator.migrateFrameworkShadowCapabilities` — modified — the replacement section is copied into Codex/Gemini shadows after CLAUDE.md migration.
17
+ - `POST /telegram/reply` advisory instructions — modified — recording claims depend on a live decision reference and recorder.
18
+
19
+ ## 1. Over-block
20
+
21
+ The change removes the known over-block: a legitimate path needed to open, edit, or locate an artifact can no longer be an absolute wall. The first advisory response still withholds the send until the agent revises or supplies a reasoned override; that bounded nudge is intentional and preserves the opportunity to improve confusing prose.
22
+
23
+ ## 2. Under-block
24
+
25
+ An agent can override a genuinely confusing raw path with a poor reason. That is accepted because file-path clarity is a contextual writing judgment, not a safety invariant. Credential exposure remains independently non-overridable, and paths do not bypass that guard.
26
+
27
+ ## 3. Level-of-abstraction fit
28
+
29
+ This is at the existing authority layer: the LLM tone gate may still detect and cite `B2_FILE_PATH`, while the disposition map controls whether that contextual judgment is a wall or a nudge. No parallel detector or new decision path is introduced.
30
+
31
+ ## 4. Signal vs authority compliance
32
+
33
+ **Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
34
+
35
+ - [x] No — this change removes brittle terminal authority from an existing smart-gate verdict.
36
+
37
+ The change does not create a detector. It changes the disposition of the existing contextual verdict so a path-shaped observation cannot itself become terminal authority. The author retains final authority through the existing reasoned advisory override seam. Hard credential invariants remain separate.
38
+
39
+ ## 4b. Judgment-point check
40
+
41
+ No new static heuristic is added at a competing-signals decision point. The static disposition is a floor preventing a contextual prose judgment from becoming an absolute blocker; the existing LLM authority still decides whether to issue the nudge.
42
+
43
+ ## 5. Interactions
44
+
45
+ - **Shadowing:** Credential checks still execute independently and remain non-overridable; the B2 disposition cannot shadow them. The framework-shadow copier runs after CLAUDE.md migration and now searches for the replacement marker, preventing the migrated section from disappearing on Codex/Gemini.
46
+ - **Double-fire:** The existing advisory protocol is reused, so no second sender or parallel retry path exists.
47
+ - **Races:** The runtime map is immutable and process-local; migration is content-sniffed and idempotent.
48
+ - **Feedback loops:** Where decision recording is available, compliance and dissent continue feeding the existing quality meter. Where unavailable, B2 still remains overridable, avoiding a false hard wall.
49
+
50
+ ## 6. External surfaces
51
+
52
+ Agents on fresh and upgraded installs see revised guidance in CLAUDE.md and framework shadows. Telegram and other tone-gated outbound callers receive the existing advisory protocol; the explanation now says when decision-quality evidence cannot be recorded. No new operator action, database, URL, or external-service dependency is introduced.
53
+
54
+ ## 6b. Operator-surface quality
55
+
56
+ No dashboard or operator form surface — not applicable.
57
+
58
+ ## 7. Multi-machine posture
59
+
60
+ **Replicated:** the behavior ships in source and the awareness text is applied by the normal update migration to CLAUDE.md plus existing Codex/Gemini shadows on each machine. It emits no independent notice, holds no durable per-machine state, and generates no URLs. Topic transfer cannot strand an override because the decision is per-send and the base disposition is identical on every updated machine.
61
+
62
+ ## 8. Rollback cost
63
+
64
+ A hot-fix can revert the disposition and awareness migration in a later patch. No data migration or agent-state cleanup is required; an update would rewrite the owned awareness section again. During rollback propagation, machines could temporarily differ in whether B2 is a wall, which is visible and bounded to message composition.
65
+
66
+ ## Conclusion
67
+
68
+ The change is narrower than the broad advisory-migration program and directly implements the operator's September 3 decision. It removes inappropriate blocking authority without weakening credential safety. Focused tests pass; full-suite verification must be repeated after rebasing onto current main.
69
+
70
+ ## Second-pass review
71
+
72
+ **Reviewer:** `Codex /root/rule2_side_effects_review`
73
+ **Independent read of the artifact:** `concur`. The first pass identified framework-shadow marker drift, an unproven no-recorder override path, misleading recording claims, and incomplete authority/inventory wording. The corrected diff resolves all concerns; the reviewer independently verified the relevant code and the combined 193-test focused evidence.
74
+
75
+ ## Evidence pointers
76
+
77
+ - Focused suite: 5 files, 193 tests passed on 2026-09-04 after the independent-review corrections.
78
+ - Prior stale-base full suite: 50,956 passed, two failures; both require current-main reconciliation before release.
79
+
80
+ ## Class-Closure Declaration
81
+
82
+ `defectClass: brittle-keyword-authority`, `closure: guard`, `guardEvidence: {enforcementType: ratchet, citation: tests/unit/tone-gate-advisory-migration.test.ts, howCaught: the test asserts B2_FILE_PATH is advisory even when the broader migration and decision-quality recording are unavailable, so a future return to a hard wall fails the suite}`.