instar 1.3.995 → 1.3.997

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,119 @@
1
+ # Side-Effects Review - Relay Scope Detail
2
+
3
+ **Version / slug:** `relay-scope-detail`
4
+ **Date:** `2026-07-26`
5
+ **Author:** `Codex`
6
+ **Second-pass reviewer:** `not required`
7
+
8
+ ## Summary of the change
9
+
10
+ This change narrows the human-readable claim made by `src/core/instarChannels.ts` for the `threadline-relay` channel. The runtime state is unchanged: a connected server-process relay client still reports `working`, and a disconnected server-process relay client still reports `broken`. The detail text now names the measured subject as the server-process relay client and states that another process, notably the MCP tool path, owns its own relay client state. `tests/unit/channel-registry-claims.test.ts` adds real-builder coverage for that scope and pins the existing `mutual-ssh` caveat as the precedent.
11
+
12
+ ## Decision-point inventory
13
+
14
+ - `src/core/instarChannels.ts` `threadline-relay` probe detail - modify - the registry detail now names the server-process relay client as the subject of both working and broken readings.
15
+ - `src/core/instarChannels.ts` `threadline-relay` cost text - modify - the static cost text now notes that another process can hold a different relay state.
16
+ - `tests/unit/channel-registry-claims.test.ts` relay-scope assertion - add - the test verifies the real resolved channel output names the server process, MCP tool path distinction, and no send-delivery promise.
17
+ - `tests/unit/channel-registry-claims.test.ts` mutual-SSH exact assertion - modify - the test now pins the existing caveat exactly so the precedent cannot be weakened silently.
18
+
19
+ ---
20
+
21
+ ## 1. Over-block
22
+
23
+ No block/allow surface - over-block not applicable. The change does not reject inputs, deny operations, alter admission, or change any runtime state transition.
24
+
25
+ ---
26
+
27
+ ## 2. Under-block
28
+
29
+ No block/allow surface - under-block not applicable. The remaining failure mode is informational: a caller could still ignore the scoped detail and treat `working` alone as a send guarantee. That is outside this small wording fix; the row now provides the precise caveat needed for callers that read details.
30
+
31
+ ---
32
+
33
+ ## 3. Level-of-abstraction fit
34
+
35
+ This is at the registry-claim layer. The registry already owns the prose that explains what each probe measured, and the defect was in that prose rather than in the relay client, server route, or MCP implementation. The change does not add a detector or authority; it makes the existing low-level signal name its scope honestly.
36
+
37
+ ---
38
+
39
+ ## 4. Signal vs authority compliance
40
+
41
+ **Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
42
+
43
+ - [ ] No - this change produces a signal consumed by an existing smart gate.
44
+ - [x] No - this change has no block/allow surface.
45
+ - [ ] Yes - but the logic is a smart gate with full conversational context (LLM-backed with recent history or equivalent).
46
+ - [ ] Yes, with brittle logic - STOP. Reshape the design.
47
+
48
+ This change has no blocking authority. It changes explanatory text attached to an already-existing channel probe result.
49
+
50
+ ---
51
+
52
+ ## 4b. Judgment-point check (Judgment Within Floors standard)
53
+
54
+ No new static heuristic at a competing-signals decision point. The change does not decide between conflicting live signals; it labels one signal's subject more precisely.
55
+
56
+ ---
57
+
58
+ ## 5. Interactions
59
+
60
+ **Shadowing:** No new check runs before or after another check. Existing callers still receive the same channel ids, states, and directions.
61
+
62
+ **Double-fire:** No new event, retry, notification, send, or recovery path is introduced.
63
+
64
+ **Races:** No shared mutable state is added. The probe still reads the injected `relayStatus()` function exactly once per resolution.
65
+
66
+ **Feedback loops:** No feedback loop is changed. The registry output may influence human or agent choice of channel, but this patch only clarifies what the output means.
67
+
68
+ ---
69
+
70
+ ## 6. External surfaces
71
+
72
+ `GET /channels` and any internal consumer of the channel registry will show clearer prose for `threadline-relay`. Other agents and users may see the updated detail text after upgrade. No external systems are called. No persistent state, database row, ledger, or memory file is changed. No operator-facing action is added; the dashboard/API display remains a read-only informational surface for this row.
73
+
74
+ ---
75
+
76
+ ## 6b. Operator-surface quality (Operator-Surface Quality standard)
77
+
78
+ No operator surface - not applicable. This change touches no dashboard renderer, approval page, grant/revoke form, or secret-drop form.
79
+
80
+ ---
81
+
82
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
83
+
84
+ Machine-local by design: relay client connection state is a per-process and per-machine runtime truth. The registry should report exactly the process it measured rather than pretending the value replicates across machines or sibling processes. The change emits no user-facing notices, holds no durable state, and generates no URLs.
85
+
86
+ ---
87
+
88
+ ## 8. Rollback cost
89
+
90
+ Hot-fix release: revert the text and test changes, then ship the next patch. There is no data migration, no agent state repair, and no persistent cleanup. During rollback propagation, users would only lose the more precise registry wording.
91
+
92
+ ---
93
+
94
+ ## Conclusion
95
+
96
+ The review found no side-effecting runtime behavior. The implementation keeps the existing `working` and `broken` verdicts while making their subject explicit. The only visible change is clearer registry prose, backed by unit tests that fail if the scoped relay claim or the existing mutual-SSH scope caveat is weakened.
97
+
98
+ ---
99
+
100
+ ## Second-pass review (if required)
101
+
102
+ **Reviewer:** not required
103
+ **Independent read of the artifact:** not required
104
+
105
+ Second-pass review is not required for this Tier 1 wording-and-test change.
106
+
107
+ ---
108
+
109
+ ## Evidence pointers
110
+
111
+ - `./node_modules/.bin/vitest run tests/unit/channel-registry-claims.test.ts tests/unit/user-channel-liveness.test.ts`
112
+ - Falsification restored the old relay detail and confirmed the relay-scope test failed on the missing server-process subject.
113
+ - Falsification shortened the mutual-SSH detail and confirmed the exact-precedent assertion failed.
114
+
115
+ ---
116
+
117
+ ## Class-Closure Declaration (display-only mirror)
118
+
119
+ No agent-authored-artifact defect - not applicable.