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,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-27T07:
|
|
5
|
-
"instarVersion": "1.3.
|
|
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.
|