instar 1.3.1159 → 1.3.1160

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.
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "generatedFrom": "source-tree",
4
4
  "registrySha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
5
- "packageVersion": "1.3.1159",
5
+ "packageVersion": "1.3.1160",
6
6
  "guards": [
7
7
  {
8
8
  "ref": "docs/audits/phase-b/f10-triage.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha256": "64b362d2e7aed4d92d9e9948a954ae1c099930efc5972c89842953e81cfd36ff",
2
+ "sha256": "05daed4cc90fbaa0916c051d8cf8985aa11cdc27f15f50ea5a3ffeff29550857",
3
3
  "registrySha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
4
- "packageVersion": "1.3.1159"
4
+ "packageVersion": "1.3.1160"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "sha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
3
3
  "articleCount": 88,
4
4
  "generatedFrom": "docs/STANDARDS-REGISTRY.md",
5
- "packageVersion": "1.3.1159"
5
+ "packageVersion": "1.3.1160"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1159",
3
+ "version": "1.3.1160",
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-08-15T04:46:02.884Z",
5
- "instarVersion": "1.3.1159",
4
+ "generatedAt": "2026-08-15T04:54:47.730Z",
5
+ "instarVersion": "1.3.1160",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "generatedFrom": "source-tree",
4
4
  "registrySha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
5
- "packageVersion": "1.3.1159",
5
+ "packageVersion": "1.3.1160",
6
6
  "guards": [
7
7
  {
8
8
  "ref": "docs/audits/phase-b/f10-triage.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha256": "64b362d2e7aed4d92d9e9948a954ae1c099930efc5972c89842953e81cfd36ff",
2
+ "sha256": "05daed4cc90fbaa0916c051d8cf8985aa11cdc27f15f50ea5a3ffeff29550857",
3
3
  "registrySha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
4
- "packageVersion": "1.3.1159"
4
+ "packageVersion": "1.3.1160"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "sha256": "81b53363a440e832672618965540b3e507ae0d93adcc67ec2b93daf7933b3ab4",
3
3
  "articleCount": 88,
4
4
  "generatedFrom": "docs/STANDARDS-REGISTRY.md",
5
- "packageVersion": "1.3.1159"
5
+ "packageVersion": "1.3.1160"
6
6
  }
@@ -5,6 +5,17 @@
5
5
 
6
6
  ## What Changed
7
7
 
8
+ Extracted `tests/helpers/geminiEnvRefusal.ts` and its two call sites
9
+ (`tests/e2e/gemini-cli-alive-lifecycle.test.ts`,
10
+ `tests/e2e/gemini-setup-narrative-lifecycle.test.ts`) plus its unit test out of the
11
+ blocked `echo/authorship-provenance` branch and onto main on their own.
12
+
13
+ The two live-gemini E2Es gate on `haveGemini = !!detectGeminiPath()` — whether the
14
+ BINARY IS INSTALLED. An installed-but-uncredentialed CLI exits 41 before processing
15
+ the prompt, so the assertion downstream can neither pass nor meaningfully fail. CI is
16
+ green only because no gemini binary exists there; the box that HAS gemini is the one
17
+ that goes red.
18
+
8
19
  The two vitest globalSetup files that prepare the packed standards-registry asset
9
20
  (`tests/setup/build-dist.globalSetup.ts` and
10
21
  `tests/setup/ensure-registry-asset.globalSetup.ts`) decided whether to regenerate it
@@ -26,6 +37,16 @@ None — internal change (no user-facing surface).
26
37
 
27
38
  ## Evidence
28
39
 
40
+ - A full unit+integration+e2e run on a current checkout (3070 files) produced
41
+ **exactly 2 failures — both of these files**, both on
42
+ `Gemini CLI exited 41 — you must specify the GEMINI_API_KEY environment variable`.
43
+ - The helper is ABSENT from main (404 via the contents API, against a control showing
44
+ 7 files DO exist in `tests/helpers/`), and the failing test on main references it 0
45
+ times — so the fix genuinely never landed.
46
+ - Main has not modified either e2e file since the authorship branch's base, so this
47
+ reverts nothing; the diff is +37/-6 against main.
48
+ - `tsc --noEmit` exit 0 via the real binary.
49
+
29
50
  - Measured 2026-08-15: in a checkout whose asset was generated at 17:59 from a source
30
51
  three hours newer, `standards-registry-asset`, `standards-enforcement-auditor` and
31
52
  `standards-coverage-route` failed with 8 assertions. Regenerating the asset alone
@@ -38,3 +59,9 @@ None — internal change (no user-facing surface).
38
59
  aliased import cannot defeat it — the alias blindness found in an invariant test
39
60
  earlier this week.
40
61
  - `tsc --noEmit` exit 0; full lint chain exit 0 across 45 lints.
62
+
63
+ ## Why it is separate
64
+
65
+ Out-of-charter work absorbed into a large blocked change becomes hostage to that
66
+ change's gate. The Zero-Failure Standard was satisfied on a branch and NOT on main,
67
+ which is the only place it counts.
@@ -0,0 +1,60 @@
1
+ # Side-effects review — extracting the gemini environmental-refusal classifier
2
+
3
+ ## The change
4
+
5
+ Moves `tests/helpers/geminiEnvRefusal.ts`, its unit test, and its two E2E call sites out of the blocked
6
+ `echo/authorship-provenance` branch and onto main on their own. No new code: the same four files,
7
+ standing alone where they can land. Test-only; no runtime surface.
8
+
9
+ ## Why it is separate, which is the actual point
10
+
11
+ The two live-gemini E2Es gate on whether the BINARY IS INSTALLED. An installed-but-uncredentialed CLI
12
+ exits 41 before it processes the prompt, so the assertion downstream can neither pass nor meaningfully
13
+ fail. CI is green only because no gemini binary exists there — the box that HAS gemini is the one that
14
+ goes red. That is a Zero-Failure Standard violation on main today.
15
+
16
+ The fix was written hours ago, out-of-charter, and committed to whichever branch was checked out at the
17
+ time — a large change now blocked at an approval gate for reasons unrelated to gemini. So the standard
18
+ was satisfied on a branch and NOT on main, which is the only place it counts. **Out-of-charter work
19
+ absorbed into a blocked change becomes hostage to that change's gate.**
20
+
21
+ ## Review answers
22
+
23
+ 1. **Over-block.** The classifier skips ONLY on causes the CLI itself names (missing credentials, quota
24
+ exhaustion, a version-manager miss). Everything else still fails. The rejected alternative — a live
25
+ preflight asking "can this box reach gemini at all?" — is recorded in the helper's own header as the
26
+ wrong trade: it would also skip on a transient failure, so a real regression would vanish silently.
27
+ Between a false red (visible, blocks a push) and a silent skip (invisible), the silent skip is worse.
28
+ 2. **Under-block.** A NEW environmental cause with different wording still fails loudly. That is the
29
+ intended direction; the list grows only when a real cause is observed.
30
+ 3. **Level-of-abstraction fit.** The classification is shared once and the tests decide what to do with
31
+ the answer — this is the third environmental cause these files handle, which is the point at which
32
+ two copies stop being maintainable.
33
+ 4. **Signal vs authority.** Not a gate. It decides whether a test asserts or skips.
34
+ 5. **Interactions.** None outside the three test files. No production import.
35
+ 6. **External surfaces.** None.
36
+ 7. **Multi-machine posture.** Machine-local BY DESIGN — it classifies THIS box's credential state.
37
+ 8. **Rollback cost.** Revert; the two e2e files return to failing on an uncredentialed box.
38
+
39
+ ## Evidence
40
+
41
+ - **The negative control is main itself, measured rather than mutated.** A full run on a current
42
+ checkout (3073 files) produced exactly 2 failures — these two files — both on
43
+ `Gemini CLI exited 41 — you must specify the GEMINI_API_KEY environment variable`.
44
+ - On this branch the same three files pass, 24 tests, with the E2E bodies skipping loudly:
45
+ *"Skipping live Gemini narrative assertion: no credentials configured (the child env is key-free by
46
+ design; OAuth creds absent)."*
47
+ - The helper is ABSENT from main (404 via the contents API, against a control showing 7 files DO exist
48
+ in `tests/helpers/`), and the failing test on main references it 0 times — the fix genuinely never
49
+ landed.
50
+ - Main has not modified either e2e file since the source branch's base, so this reverts nothing; the
51
+ diff against main is +37/-6 on the e2e files plus the two new files.
52
+ - `tsc --noEmit` exit 0 via the real binary.
53
+
54
+ ## Class closure — what this does NOT close
55
+
56
+ - **The live smoke assertion still never executes on this box.** It skips, correctly and loudly. Making
57
+ it exercisable needs a credential decision that is the operator's, not a code change.
58
+ - **Only gemini.** No audit was done of other live-CLI E2Es for the same installed-vs-usable confusion.
59
+ - **The stranding pattern itself is untouched.** Nothing prevents the next out-of-charter fix from being
60
+ committed to a branch that later blocks. That is a process observation, recorded rather than solved.