instar 1.3.1011 → 1.3.1012

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1011",
3
+ "version": "1.3.1012",
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-07-27T19:51:46.153Z",
5
- "instarVersion": "1.3.1011",
4
+ "generatedAt": "2026-07-27T19:56:42.745Z",
5
+ "instarVersion": "1.3.1012",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -5,6 +5,15 @@
5
5
 
6
6
  ## What Changed
7
7
 
8
+ Corrects the `rollout-evidence-ref` in `docs/specs/mutual-ssh-autobootstrap.md`. It named
9
+ `/multi-machine/mutual-ssh` — a path with no route anywhere in `src/`. The rollout has been marked
10
+ active and unmeasurable since the feature merged on 2026-07-21.
11
+
12
+ The readout was never missing. It is `GET /machines/ssh-health`, wired the whole time, and it
13
+ returns real data right now. The spec simply named the wrong address.
14
+
15
+ Spec frontmatter only. No runtime surface, no route added, no behaviour change.
16
+
8
17
  Memory recall now retrieves semantically. Keyword matching becomes the fallback it was always
9
18
  meant to be.
10
19
 
@@ -41,6 +50,16 @@ the fallback.
41
50
 
42
51
  ## What to Tell Your User
43
52
 
53
+ Some features are released carefully: switched on quietly first, and only turned up once there is
54
+ evidence they work. Each one's plan names the readout you check to see that evidence.
55
+
56
+ This feature's plan named a readout that does not exist — so there was no way to tell whether it was
57
+ working, and it would have sat in its cautious first stage forever. The readout it should have named
58
+ does exist and has all along.
59
+
60
+ Nothing about the feature changed. What changed is that its progress can now be read, and right now
61
+ it honestly reports that it is not ready yet — which is a much better answer than silence.
62
+
44
63
  Your agent has two ways to search its own memory: one that matches on meaning, and one that
45
64
  matches on words. The good one was built, fully switched on, and never called.
46
65
 
@@ -62,6 +81,9 @@ lookup, quietly, and everything after is fast.
62
81
 
63
82
  ## Summary of New Capabilities
64
83
 
84
+ - The mutual-SSH feature's graduation evidence is readable at `GET /machines/ssh-health` instead of
85
+ pointing at a path that returns nothing.
86
+
65
87
  - Memory recall retrieves by meaning rather than keyword, using the embedding index that was
66
88
  already built and populated but never called.
67
89
  - Each recall reports which strategy served it, so running on the keyword fallback is
@@ -73,6 +95,26 @@ lookup, quietly, and everything after is fast.
73
95
 
74
96
  ## Evidence
75
97
 
98
+ Both paths probed live against the running server:
99
+
100
+ | path | result |
101
+ |---|---|
102
+ | `/multi-machine/mutual-ssh` (the ref as written) | **404** |
103
+ | `/machines/ssh-health` (the real readout) | **200** — `enrollmentState: ssh-bootstrap-blocked`, `pairs[0].mutual: false`, `standingKeyInstalled: false` |
104
+
105
+ So the graduation criterion — at least one peer pair with bidirectional readiness proof and no
106
+ blocking reason — is now evaluable, and currently, correctly, **not met**. Before this change,
107
+ "not met" and "not measurable" were the same 404.
108
+
109
+ The route is served from `src/server/routes.ts` (`router.get('/machines/ssh-health')`) reading
110
+ `MutualSshRuntime.status()`, so the corrected ref also satisfies the rollout-evidence lint.
111
+
112
+ **A correction to my own earlier diagnosis, recorded because it is the more useful finding.** I
113
+ first read the 404 and concluded the endpoint had never landed with the feature, and filed an action
114
+ to build it. It had landed, under a different name. Concluding absence from a single lookup, without
115
+ checking whether the thing exists elsewhere, is the same error this whole sweep is about — and I
116
+ made it while running the sweep.
117
+
76
118
  New tests run against **unmodified source first**:
77
119
 
78
120
  | run | result |
@@ -0,0 +1,45 @@
1
+ # Side-effects review — mutual-ssh rollout-evidence-ref correction
2
+
3
+ **Change:** one frontmatter line in `docs/specs/mutual-ssh-autobootstrap.md` —
4
+ `rollout-evidence-ref: /multi-machine/mutual-ssh` → `/machines/ssh-health`.
5
+
6
+ **Tier:** 0–1. Spec frontmatter only. No `src/` surface, no route, no config key, no persisted
7
+ state, no migration. Rollback is reverting one line.
8
+
9
+ ## What reads this field
10
+
11
+ `scripts/lint-rollout-evidence-resolvable.js` (string-matches the ref against `src/`) and any
12
+ future rollout-graduation reader. Nothing at runtime dereferences it — the field is documentation
13
+ of where a human or a check should look, so a wrong value cannot cause a runtime fault. Its failure
14
+ mode is exactly what happened: silence.
15
+
16
+ ## Blast radius
17
+
18
+ None at runtime. The one behavioural consequence is intended and desirable: the mutual-ssh rollout
19
+ becomes *measurable*, and the first honest measurement says **not ready** (`enrollmentState:
20
+ ssh-bootstrap-blocked`, `pairs[0].mutual: false`). A feature that previously could not be assessed
21
+ now reports a negative. That is the point; it is not a regression.
22
+
23
+ ## Why not build `/multi-machine/mutual-ssh` instead
24
+
25
+ That was the first plan, and it was wrong. Adding an alias route to satisfy a spec that named a
26
+ non-existent path would have created a second address for one readout — two places to look, two
27
+ things to keep in sync, and a permanent invitation to the same confusion. The spec was wrong; the
28
+ spec was corrected.
29
+
30
+ ## Verification
31
+
32
+ - `curl /multi-machine/mutual-ssh` → 404 (before and after — nothing was added).
33
+ - `curl /machines/ssh-health` → 200 with live pair state.
34
+ - `node scripts/lint-rollout-evidence-resolvable.js` → the corrected ref resolves.
35
+
36
+ ## Rollback
37
+
38
+ `git revert` the one-line commit. The rollout returns to being unmeasurable, which is the state it
39
+ has been in since 2026-07-21.
40
+
41
+ ## Known limitation, stated rather than hidden
42
+
43
+ The lint that guards this field is a **string match against `src/`**. A route that is written but
44
+ never mounted would still satisfy it. That limitation is documented in the lint's own header; the
45
+ live probe above is what actually establishes that this particular ref resolves.