instar 1.3.997 → 1.3.998

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.997",
3
+ "version": "1.3.998",
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-27T07:30:21.063Z",
5
- "instarVersion": "1.3.997",
4
+ "generatedAt": "2026-07-27T07:59:39.801Z",
5
+ "instarVersion": "1.3.998",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,63 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ `tests/unit/agent-registry.test.ts` and `tests/unit/builtin-manifest.test.ts` were removed from
9
+ `FLAKY_TESTS` in `vitest.push.config.ts`, so both run in the push/CI unit gate again. The surrounding
10
+ comment now records the measurements and the falsified hypothesis rather than a bare heading.
11
+
12
+ Neither test is flaky. Both arrived in `f193df789` ("exclude pre-existing flaky tests from push
13
+ gate") — a bulk exclusion, not an individual diagnosis — and sat under a
14
+ "Environment-dependent / non-deterministic" heading that was thereafter read as a finding about each
15
+ one.
16
+
17
+ ## What to Tell Your User
18
+
19
+ None — internal change (no user-facing surface).
20
+
21
+ ## Summary of New Capabilities
22
+
23
+ None — internal change (no user-facing surface).
24
+
25
+ ## Evidence
26
+
27
+ Measured on current `main`, three consecutive runs each:
28
+
29
+ ```
30
+ agent-registry.test.ts → 42 passed | 42 passed | 42 passed
31
+ builtin-manifest.test.ts → 9 passed | 9 passed | 9 passed
32
+ ```
33
+
34
+ The one concrete environmental hypothesis was tested and falsified. `builtin-manifest.test.ts` reads
35
+ `src/data/builtin-manifest.json`, a generated and gitignored artifact that a job which never builds
36
+ would not have. Deleting the file and re-running:
37
+
38
+ ```
39
+ Tests 9 passed (9)
40
+ ```
41
+
42
+ It still passes because the test's own `beforeAll` regenerates it via
43
+ `scripts/generate-builtin-manifest.cjs` — it was already self-sufficient by design.
44
+
45
+ After the change, verified by parsing the resolved `FLAKY_TESTS` array rather than assuming the edit
46
+ took: both paths report `NO LONGER EXCLUDED`, 92 entries remain. Both tests run green together
47
+ (`Test Files 2 passed (2) · Tests 51 passed (51)`); `tsc --noEmit` exit 0.
48
+
49
+ ## Known limits
50
+
51
+ The remaining 92 entries are untouched and unexamined. Several — the supertest/port-collision group
52
+ especially — are plausibly genuinely environment-bound, and emptying the list wholesale would repeat
53
+ the bulk move that caused this. Local determinism is also not proof of CI determinism: if either test
54
+ fails in CI, that is a real finding to diagnose, not a reason to re-park it.
55
+
56
+ ## Why the comment is verbose
57
+
58
+ The note two entries below already described this same mistake: two other tests were re-armed on
59
+ 2026-06-05 from the same heading, with the observation that the label had been wrong and that both
60
+ had rotted while parked. The diagnosis, the precedent and the warning were already in the file,
61
+ three lines above two more mislabelled tests. The replacement comment therefore carries the
62
+ measurements and the falsified theory, so the next person reaching for that label has to argue with
63
+ evidence instead of reapplying a heading.
@@ -0,0 +1,73 @@
1
+ # Side-effects review — re-arm two parked tests
2
+
3
+ **Change:** remove `tests/unit/agent-registry.test.ts` and `tests/unit/builtin-manifest.test.ts` from
4
+ `FLAKY_TESTS` in `vitest.push.config.ts`, and replace the surrounding comment with the measurements
5
+ and the falsified hypothesis.
6
+
7
+ **Decision point touched?** No new decision point. This *restores* an existing one: two guards that
8
+ were excluded from the CI gate now participate in it again. No runtime code changes; the diff is
9
+ config + comment only.
10
+
11
+ ---
12
+
13
+ ## 1. Over-block
14
+
15
+ Re-arming can only make the gate stricter, and that is the intent. The over-block risk is that a test
16
+ fails in CI for an environmental reason that does not exist locally — in which case CI turns red on
17
+ work unrelated to the failure, and the author is blocked by something they did not cause.
18
+
19
+ Mitigated by measurement rather than hope: both were run three consecutive times on current `main`
20
+ (42/42/42 and 9/9/9), and the one specific environmental hypothesis available —
21
+ `builtin-manifest.test.ts` depending on the generated, gitignored `src/data/builtin-manifest.json` —
22
+ was tested by deleting the file. The test still passed 9/9 because its `beforeAll` regenerates it.
23
+
24
+ Residual risk is real but bounded: local determinism is not proof of CI determinism. If either fails
25
+ in CI, the correct response is to diagnose it, not to re-park it. Re-parking without a diagnosis is
26
+ the exact move that created this situation.
27
+
28
+ ## 2. Under-block
29
+
30
+ This change does not attempt to audit the rest of `FLAKY_TESTS` (92 entries remain). Several — the
31
+ supertest/port-collision group in particular — are plausibly genuinely environment-bound, and
32
+ emptying the list wholesale would be the same bulk move that caused the problem, run in reverse. So
33
+ the class is knowingly only partly addressed here: two members verified and fixed, the remainder
34
+ untouched and unexamined. Stated rather than implied.
35
+
36
+ ## 3. Level-of-abstraction fit
37
+
38
+ Correct layer. The mislabel lives in the exclusion list, so the fix belongs in the exclusion list.
39
+ A deeper fix — something that would *prevent* a bulk exclusion from being read later as a per-test
40
+ finding — would need a mechanism requiring evidence at the point of exclusion (e.g. a required
41
+ measurement note per entry). That is a larger design change and is deliberately not attempted here.
42
+
43
+ ## 4. Signal vs authority compliance
44
+
45
+ Unchanged. The tests are signals that CI (the authority) consumes. Nothing here gives any check new
46
+ blocking power it did not already have by design; it restores participation that was removed.
47
+
48
+ ## 5. Interactions
49
+
50
+ The two files now execute inside the push/CI unit run, adding their runtime to that job and their
51
+ failures to its verdict. Both are fast unit tests. `builtin-manifest.test.ts` shells out to
52
+ `scripts/generate-builtin-manifest.cjs` in `beforeAll` if the generated file is missing, which writes
53
+ `src/data/builtin-manifest.json` — a gitignored artifact that `npm run build` writes anyway. It is
54
+ the only test that reads that file, so no cross-test read/write race is introduced. Worth naming
55
+ explicitly because a test that writes into the repo during a sharded run is the shape that *would*
56
+ cause genuine flakiness if another test ever read the same file.
57
+
58
+ ## 6. External surfaces
59
+
60
+ None. No endpoint, no config key, no agent-visible behaviour, no user-visible behaviour. The only
61
+ observer of this change is CI.
62
+
63
+ ## 7. Multi-machine posture
64
+
65
+ Not applicable — this is repo-level CI configuration, identical on every checkout, with no runtime
66
+ state, no per-machine data, and nothing to replicate or proxy.
67
+
68
+ ## 8. Rollback cost
69
+
70
+ Trivial and immediate: re-add the two strings to `FLAKY_TESTS`. No data migration, no release
71
+ coupling, no agent state to repair. If a rollback happens, the comment block should record *why* the
72
+ test actually failed — otherwise the rollback recreates the original defect, which was an exclusion
73
+ carrying no evidence.