instar 1.0.9 → 1.0.11

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,61 @@
1
+ # Side-effects review — Framework-neutral relay path (Gap 4)
2
+
3
+ Per L6. Seven dimensions.
4
+
5
+ ## 1. Over-block / under-block
6
+
7
+ Before: UNDER — Codex/Gemini agents instructed to run a nonexistent script.
8
+ After: no over-block. The `.claude/scripts/` copy is retained, so Claude Code
9
+ behavior is byte-identical. The neutral copy is additive.
10
+
11
+ ## 2. Level-of-abstraction fit
12
+
13
+ Script installation stays in `migrateScripts` (where all reply-script
14
+ installation lives). The identity instruction stays in IdentityRenderer. No
15
+ logic leaked elsewhere.
16
+
17
+ ## 3. Signal vs Authority compliance
18
+
19
+ The generated script content is the single source; both locations receive the
20
+ same bytes. The SHA-migrate guard remains the authority on whether a
21
+ user-customized copy is overwritten — unchanged, now applied to both copies.
22
+
23
+ ## 4. Interactions with adjacent systems
24
+
25
+ - **SessionStart hook (3309-3314)** — already preferred the neutral path; now
26
+ it resolves because the file exists. No hook change needed.
27
+ - **Claude SessionStart hook template (1822)** — intentionally unchanged
28
+ (Claude-only path; Codex has no SessionStart hook — that's why the appendix
29
+ exists).
30
+ - **buildTelegramRelayBlock (bootstrap helper)** — separate function, not
31
+ touched; its tests still pass.
32
+ - **TemplatesDriftVerifier / verify-deployed-templates** — checks
33
+ `.claude/scripts/telegram-reply.sh`; that file still exists with the same
34
+ content, so drift verification is unaffected (regression-tested).
35
+
36
+ ## 5. Rollback cost
37
+
38
+ Low. Two source edits + one new test + one updated assertion. `git revert`
39
+ restores prior behavior. The neutral copy left on disk after a revert is an
40
+ inert extra file (the appendix would point back at `.claude/scripts/`),
41
+ harmless.
42
+
43
+ ## 6. Backwards compatibility / drift surface
44
+
45
+ Fully backward-compatible. Claude Code: unchanged. Existing agents: get the
46
+ neutral mirror on next update via Migration Parity, idempotent. Drift surface:
47
+ the two copies are generated from the same content in the same pass — they
48
+ cannot diverge within a run; the SHA-migrate guard handles user customization
49
+ identically for both.
50
+
51
+ ## 7. Authorization / Trust posture
52
+
53
+ No new authority. Same write surface the migrator already owns
54
+ (`.claude/scripts/` and `.instar/scripts/` are both under projectDir/stateDir
55
+ the migrator already writes to). Best-effort: a neutral-copy write failure is
56
+ captured as a migration error, never throws out of the migration run.
57
+
58
+ ## Outcome
59
+
60
+ Ship. Surgical, additive, Migration-Parity-compliant, regression-swept,
61
+ trivial rollback. Second of the v1.0.9–v1.0.14 hardening series.