instar 1.3.702 → 1.3.704
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-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-02T01:48:54.107Z",
|
|
5
|
+
"instarVersion": "1.3.704",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Adds the missing Tier-3 "feature is alive" E2E test for the WS1.3 OwnershipReconciler (the
|
|
9
|
+
cross-machine stuck-move fix): `tests/e2e/pool-reconciler-alive-lifecycle.test.ts`. It
|
|
10
|
+
starts a real `AgentServer` with the reconciler wired and asserts over HTTP that
|
|
11
|
+
`GET /pool/reconciler` is alive (200, not 503), reports both machines, and that one
|
|
12
|
+
reconciler tick CONVERGES a pinned topic (owner != pin → transferring toward the pin
|
|
13
|
+
target), with the live status route reflecting the transfer. Test-only; no runtime change.
|
|
14
|
+
This completes the unit + integration + e2e three-tier coverage the Testing Integrity
|
|
15
|
+
Standard requires — the reconciler previously had unit + integration but no tests/e2e/
|
|
16
|
+
feature-alive test (the tier that catches "the dependency wasn't wired" defects, the class
|
|
17
|
+
the boot-ordering bugs belonged to).
|
|
18
|
+
|
|
19
|
+
## What to Tell Your User
|
|
20
|
+
|
|
21
|
+
None — internal change (no user-facing surface).
|
|
22
|
+
|
|
23
|
+
## Summary of New Capabilities
|
|
24
|
+
|
|
25
|
+
None — internal change (no user-facing surface).
|
|
26
|
+
|
|
27
|
+
## Evidence
|
|
28
|
+
|
|
29
|
+
- `tests/e2e/pool-reconciler-alive-lifecycle.test.ts` — 4 tests, all pass locally
|
|
30
|
+
(`vitest run --config vitest.e2e.config.ts`): route alive (200), decision explanation
|
|
31
|
+
(transfer), the tick converges (status `transferring`, transferTo = peer, lastReport
|
|
32
|
+
transfers = 1), and auth (401/403 without a Bearer token).
|
|
33
|
+
- No source files changed (test-only); `tsc --noEmit` clean.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Ratifies six constitutional standards into `docs/STANDARDS-REGISTRY.md`, earned from the
|
|
9
|
+
2026-07-01 silent-Telegram-message-loss postmortem (operator-ratified, topic 29836):
|
|
10
|
+
|
|
11
|
+
- **A Refusal Stays a Refusal — conservation of negative outcomes** (Building): a terminal
|
|
12
|
+
refusal/rejection/drop must stay distinguishable from success at every boundary; ack
|
|
13
|
+
vocabularies name what was actually promised; a refusal affecting the verified operator
|
|
14
|
+
is always loud.
|
|
15
|
+
- **Cross-Store Coherence Is an Invariant** (Building): any two stores answering the same
|
|
16
|
+
question carry a declared, machine-checked agreement invariant.
|
|
17
|
+
- **Test Identity Never Enters Production State** (Building): live tests run in throwaway
|
|
18
|
+
agent homes; fixture writes into real stores are refused structurally; durable-state
|
|
19
|
+
touches open teardown obligations at write time.
|
|
20
|
+
- **A Dark Feature Guards Nothing** (Shipping): a load-bearing path depending on a
|
|
21
|
+
dark/disabled feature forces a decision — graduate it or record accepted manual fallback;
|
|
22
|
+
postmortems must ask which dark features would have prevented the incident.
|
|
23
|
+
- **Runtime End-to-End Proof — the canary standard** (Building): every critical
|
|
24
|
+
user-visible outcome gets a synthetic full-path probe on a cadence; component liveness is
|
|
25
|
+
never accepted as proof of outcome.
|
|
26
|
+
- **Session Input Is a Principal** (Substrate): extends Know Your Principal to session
|
|
27
|
+
input channels — synthetic typers must be structurally distinguishable from the driver.
|
|
28
|
+
|
|
29
|
+
Also adds the postmortem the entries cite:
|
|
30
|
+
`docs/postmortems/2026-07-01-silent-telegram-message-loss.md`. Docs-only; no runtime change.
|
|
31
|
+
|
|
32
|
+
## What to Tell Your User
|
|
33
|
+
|
|
34
|
+
None — internal change (no user-facing surface).
|
|
35
|
+
|
|
36
|
+
## Summary of New Capabilities
|
|
37
|
+
|
|
38
|
+
None — internal change (no user-facing surface).
|
|
39
|
+
|
|
40
|
+
## Evidence
|
|
41
|
+
|
|
42
|
+
- Registry amendment follows the documented amendment loop (agent proposes with the story,
|
|
43
|
+
operator ratifies — ratification 2026-07-01, topic 29836, decisions recorded per entry).
|
|
44
|
+
- Each entry names its enforcement arms honestly: live guards on the originating fleet
|
|
45
|
+
(coherence audit, delivery canary, fixture-write guard) plus tracked upstream filings
|
|
46
|
+
(fb-1e751537-655, fb-b15ac10b-85c, fb-dd043916-28f) for the structural layers; the
|
|
47
|
+
conformance-coverage audit will classify the not-yet-landed guards as gaps by design.
|
|
48
|
+
- Side-effects artifact: `upgrades/side-effects/postmortem-standards-s1-s6.md`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Side-Effects Review — Six constitutional standards from the 2026-07-01 silent-message-loss postmortem
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `postmortem-standards-s1-s6`
|
|
4
|
+
**Date:** `2026-07-01`
|
|
5
|
+
**Author:** `Echo (agent), operator-ratified by Justin (topic 29836)`
|
|
6
|
+
**Second-pass reviewer:** `not required (docs-only constitutional amendment; each entry operator-ratified verbatim by decision scope)`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
Docs-only. Adds six operator-ratified standards to `docs/STANDARDS-REGISTRY.md`, each with its earned-from story per the registry's amendment loop ("proposed by the agent with its story, ratified by the operator" — ratification recorded 2026-07-01, topic 29836): **A Refusal Stays a Refusal** (Building), **Cross-Store Coherence Is an Invariant** (Building), **Test Identity Never Enters Production State** (Building), **A Dark Feature Guards Nothing** (Shipping), **Runtime End-to-End Proof** (Building), **Session Input Is a Principal** (Substrate, extends Know Your Principal). Also adds the in-repo postmortem the entries cite (`docs/postmortems/2026-07-01-silent-telegram-message-loss.md`). No source, config, template, hook, or test files are touched.
|
|
11
|
+
|
|
12
|
+
## Decision-point inventory
|
|
13
|
+
|
|
14
|
+
No runtime decision point is added, modified, removed, or passed through. The change is constitutional text. Two READ consumers gain input: the Standards-Conformance Gate and the conformance-coverage audit read this registry — both are signal-only surfaces (findings feed reviewers; nothing blocks). The new entries will be classified by the coverage audit as `spec-only`/`documented-only` until their named guards land upstream (the U1/U2/G3 tracked filings) — that classification is the honest, intended state and is exactly the gap-surfacing that audit exists to do.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. Over-block
|
|
19
|
+
|
|
20
|
+
No block/allow surface — over-block not applicable. (The conformance gate that reads this registry is signal-only by the Signal vs. Authority standard; a new standard cannot block a spec.)
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Under-block
|
|
25
|
+
|
|
26
|
+
No block/allow surface — under-block not applicable. The standards' enforcement arms (test ratchet on ack-mappings, registry-level fixture validation, dark-but-load-bearing classification, canary coverage tracking) land in tracked upstream work (fb-1e751537-655, fb-b15ac10b-85c, fb-dd043916-28f); until then the entries are deliberately prose-with-named-guards, and the coverage audit will report them as gaps rather than silently claiming enforcement.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Level of abstraction
|
|
31
|
+
|
|
32
|
+
Correct level: these are constitutional standards (family-level rules with earned-from stories), not operational runbooks. Each entry names its operational machinery in **Applied through** rather than embedding procedure. S6 extends an existing standard (Know Your Principal) rather than duplicating it; S2/S5 cross-reference their sibling standards (Verify the State Not Its Symbol; The User Experience Is the Product) rather than restating them.
|
|
33
|
+
|
|
34
|
+
## 4. Signal vs. authority
|
|
35
|
+
|
|
36
|
+
Compliant. The registry is read by signal-only surfaces (spec-converge conformance check, coverage audit). Nothing in this change grants any gate blocking authority.
|
|
37
|
+
|
|
38
|
+
## 5. Interactions with adjacent systems
|
|
39
|
+
|
|
40
|
+
- The Standards-Conformance Gate will start checking future specs against six more rules — intended effect; signal-only.
|
|
41
|
+
- The conformance-coverage audit (`/conformance/coverage`) will list six new standards, initially as documented-only gaps — intended gap-surfacing.
|
|
42
|
+
- The registry's own "Two layers" and amendment-loop sections are untouched; the entries follow the existing family structure (Substrate / Building / Shipping).
|
|
43
|
+
|
|
44
|
+
## 6. Rollback cost
|
|
45
|
+
|
|
46
|
+
Trivial: `git revert` of one commit removes both files cleanly. No config, no state, no migration, no deployed-agent impact.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Side-Effects Review — Tier-3 feature-alive E2E for the ownership reconciler
|
|
2
|
+
|
|
3
|
+
**Slug:** reconciler-alive-e2e
|
|
4
|
+
**Change:** Add `tests/e2e/pool-reconciler-alive-lifecycle.test.ts` (4 tests). Test-only;
|
|
5
|
+
no runtime/source changes. Completes the unit + integration + **e2e** three-tier coverage
|
|
6
|
+
required by the Testing Integrity Standard for the reconciler stuck-move fix.
|
|
7
|
+
|
|
8
|
+
## 1. Over-block — what legitimate inputs does this reject that it shouldn't?
|
|
9
|
+
N/A — it's a test, not a gate. It asserts the real behavior (200 not 503, decision=transfer,
|
|
10
|
+
a tick converges). It cannot reject any production input.
|
|
11
|
+
|
|
12
|
+
## 2. Under-block — what failure modes does this still miss?
|
|
13
|
+
It does not re-run `server.ts`'s exact boot ordering (it wires AgentServer directly, like
|
|
14
|
+
the sibling pool-placement-transfer-alive E2E), so the specific boot-construction ordering
|
|
15
|
+
is NOT asserted here — that is covered by OwnershipReconciler.test.ts's late-bound-dep
|
|
16
|
+
regression tests. The comment states this honestly so the test isn't over-trusted. It also
|
|
17
|
+
exercises a single ownership registry (the route + the owner-side transfer), not the
|
|
18
|
+
cross-machine journal replication (covered by JournalSyncApplier + topic-pin-replication).
|
|
19
|
+
|
|
20
|
+
## 3. Level-of-abstraction fit — right layer?
|
|
21
|
+
Yes. Tier-3 "feature is alive" is exactly the missing tier for a feature with an API route.
|
|
22
|
+
It belongs in tests/e2e/ and mirrors the established pattern.
|
|
23
|
+
|
|
24
|
+
## 4. Signal vs authority compliance
|
|
25
|
+
N/A — a test holds no production authority. It only constrains CI.
|
|
26
|
+
|
|
27
|
+
## 5. Interactions — shadow / double-fire / race?
|
|
28
|
+
None. It binds an ephemeral port (47261) + a tmpdir, starts/stops its own AgentServer in
|
|
29
|
+
before/afterAll, and cleans up. No shared state with other tests.
|
|
30
|
+
|
|
31
|
+
## 6. External surfaces — visible to other agents/users/systems?
|
|
32
|
+
No. Test-only; no endpoint, config, or user surface. Marked internal-only in the release
|
|
33
|
+
notes (no runtime src change).
|
|
34
|
+
|
|
35
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
36
|
+
The test simulates the multi-machine reconciler decision (two machines in machines(), a
|
|
37
|
+
topic owned by SELF pinned to PEER) within one process — the standard way the e2e tier
|
|
38
|
+
proves a multi-machine feature is alive. It does not itself run on multiple machines (a
|
|
39
|
+
test never does); it asserts the convergence LOGIC the real multi-machine path relies on.
|
|
40
|
+
|
|
41
|
+
## 8. Rollback cost
|
|
42
|
+
Trivial — delete one test file. No migration, no state, no behavior change.
|