instar 1.2.28 → 1.2.30

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,83 @@
1
+ # Side-effects review — Codex creates only Lifeline
2
+
3
+ Per L6. Seven dimensions.
4
+
5
+ ## 1. Over-block / under-block
6
+
7
+ Before: OVER-creation. The Codex flow created all 4 system topics
8
+ AND the server created 3 of them on boot, yielding duplicate
9
+ Dashboard (and latent duplicate risk for Updates/Attention).
10
+
11
+ After: precisely scoped. Codex creates only Lifeline (which the
12
+ server reuses by persisted ID). Server creates the other 3.
13
+ Single creator per topic. No duplicates.
14
+
15
+ ## 2. Level-of-abstraction fit
16
+
17
+ Prompt-content change only — steps 13 + 14 of
18
+ `buildTelegramAgenticPrompt`. No new functions, no signature
19
+ change, no server-side change. Follows the existing ownership
20
+ boundary (server owns Dashboard/Updates/Attention; Lifeline is
21
+ shared via `config.lifelineTopicId`).
22
+
23
+ ## 3. Signal vs Authority compliance
24
+
25
+ - The server's `ensureDashboardTopic` / `ensureAgentUpdatesTopic`
26
+ / `ensureAgentAttentionTopic` remain the single AUTHORITY for
27
+ those three topics.
28
+ - `config.lifelineTopicId` remains the coordination AUTHORITY
29
+ between the Codex flow and the server's `ensureLifelineTopic`.
30
+ - The Codex flow no longer emits create-SIGNALS for the three
31
+ server-owned topics.
32
+
33
+ ## 4. Interactions with adjacent systems
34
+
35
+ - **Server `ensureDashboardTopic` / `ensureAgentUpdatesTopic` /
36
+ `ensureAgentAttentionTopic`**: unchanged. They now run without
37
+ a Codex-created duplicate to collide with.
38
+ - **Server `ensureLifelineTopic`**: unchanged. Still reuses
39
+ `config.lifelineTopicId` written by the Codex flow.
40
+ - **`runSendLifelineGreeting`** (post-server greeting): unchanged.
41
+ Still reads `lifelineTopicId` from config and posts the
42
+ agent's first hello.
43
+ - **`broadcastDashboardUrl`**: unchanged. Posts the dashboard
44
+ link to `config.dashboardTopicId` (set by the server's
45
+ `ensureDashboardTopic`) once a tunnel is up.
46
+ - **Tests**: one test rewritten (was "creates the 4 canonical
47
+ system topics" → now "creates ONLY the Lifeline topic"); the
48
+ other 80 wizard tests unchanged.
49
+
50
+ ## 5. Rollback cost
51
+
52
+ Trivial. Prompt-content change in two steps. `git revert`
53
+ restores the 4-topic creation (and the duplicate).
54
+
55
+ ## 6. Backwards compatibility / drift surface
56
+
57
+ Fully backwards-compatible.
58
+
59
+ - Existing agents already set up: unaffected — their topics
60
+ already exist; the server's ensure functions are idempotent on
61
+ their stored IDs.
62
+ - New Codex installs: get exactly 4 topics, one creator each, no
63
+ duplicates.
64
+ - Claude wizard path: untouched.
65
+ - No config schema change. No agent-installed-files change.
66
+
67
+ Drift surface reduced: the Codex prompt no longer hard-codes the
68
+ Dashboard/Updates/Attention names + colors, so it can't drift
69
+ from the server's TOPIC_STYLE constants. Only Lifeline's color
70
+ (9367192) remains in the prompt, matching SYSTEM.
71
+
72
+ ## 7. Authorization / Trust posture
73
+
74
+ No change. Same Codex spawn flags, same Bot API access.
75
+
76
+ ## Outcome
77
+
78
+ Ship. Closes the duplicate-Dashboard bug by restoring the natural
79
+ ownership boundary: server owns its three system topics; Codex
80
+ owns only Lifeline (the shared coordination point). The
81
+ no-dashboard-link issue is separate (Cloudflare rate-limit) and
82
+ addressed by two tracked follow-ups (tunnel-failure user
83
+ notification + backup tunnel pool).