instar 1.3.262 → 1.3.263

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.262",
3
+ "version": "1.3.263",
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-06-05T01:40:01.762Z",
5
- "instarVersion": "1.3.262",
4
+ "generatedAt": "2026-06-05T02:04:35.056Z",
5
+ "instarVersion": "1.3.263",
6
6
  "entryCount": 198,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,22 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The generated `src/data/builtin-manifest.json` is no longer committed to git. It was a build artifact (produced by `scripts/generate-builtin-manifest.cjs` during `npm run build` and `prepublishOnly`) that, because every skill/hook PR regenerates it, conflicted on a fast-moving main almost every time main advanced — an unwinnable resolve→CI→re-conflict loop (one docs PR hit it 5×). It is now `.gitignore`d and untracked. The published package still ships it (the `.npmignore` allowlist, not `.gitignore`, governs packing — verified with `npm pack --dry-run`), the build regenerates it before publish, the sole runtime reader already degrades gracefully if it's absent, and the one test that reads it now self-generates it in a `beforeAll`. Net: future skill/hook PRs stop fighting this file; build/publish/CI are unchanged.
9
+
10
+ ## What to Tell Your User
11
+
12
+ None — internal change (no user-facing surface).
13
+
14
+ ## Summary of New Capabilities
15
+
16
+ None — internal change (no user-facing surface).
17
+
18
+ ## Evidence
19
+
20
+ - `npm pack --dry-run` (with the file gitignored) still lists `src/data/builtin-manifest.json` (61.4kB) in the tarball — the `.npmignore` allowlist governs packing.
21
+ - `vitest run tests/unit/builtin-manifest.test.ts` after deleting the file: regenerates it in `beforeAll`, all 9 assertions pass.
22
+ - `tsc --noEmit` clean; `no-silent-fallbacks` ratchet unchanged.
@@ -0,0 +1,44 @@
1
+ # Side-Effects Review — gitignore the generated builtin-manifest (end the conflict loop)
2
+
3
+ **Version / slug:** `manifest-gitignore-end-conflict-loop`
4
+ **Date:** `2026-06-04`
5
+ **Author:** `echo`
6
+ **Second-pass reviewer:** `not required (internal dev-workflow change, no runtime/user surface)`
7
+
8
+ ## Summary of the change
9
+
10
+ `src/data/builtin-manifest.json` is a GENERATED build artifact (`scripts/generate-builtin-manifest.cjs`, run as the first step of `npm run build` and again by `prepublishOnly`) that was nevertheless committed to git. Because every skill/hook PR regenerates it, it conflicted on git on a fast-moving main almost every time main advanced — a structural, unwinnable resolve→CI→re-conflict loop (one docs PR hit it 5×). This change stops committing it: adds it to `.gitignore`, `git rm --cached`s it (file stays on disk), and makes the single test that reads it self-generate it if absent.
11
+
12
+ ## Decision-point inventory
13
+
14
+ 1. **`.gitignore`** — add `src/data/builtin-manifest.json`. The conflict becomes impossible because nothing commits the file.
15
+ 2. **`git rm --cached src/data/builtin-manifest.json`** — untrack it; the on-disk file is untouched.
16
+ 3. **`tests/unit/builtin-manifest.test.ts`** — `beforeAll` regenerates the file if missing (it's the only test that reads it).
17
+
18
+ ## 1. Publish path (does the package still ship the manifest?)
19
+
20
+ YES — verified. A `.npmignore` EXISTS, so npm uses `.npmignore` (not `.gitignore`) when packing; the manifest is not in `.npmignore`, so it remains in the tarball. Confirmed with `npm pack --dry-run` after gitignoring: the tarball still lists `src/data/builtin-manifest.json` (61.4kB). `prepublishOnly: npm run build` regenerates it before publish, so it always exists at pack time. No package.json `files` change needed.
21
+
22
+ ## 2. Runtime path (does anything break if the file is missing?)
23
+
24
+ NO — `CapabilityMapper.loadBuiltinManifest()` is the only runtime reader; it guards with `if (fs.existsSync(...))` inside a try/catch and `return {}` otherwise — a missing manifest degrades to an empty capability map, never a crash. (Pre-existing behavior, unchanged.)
25
+
26
+ ## 3. Test/CI path
27
+
28
+ - `builtin-manifest.test.ts` is the only test reading the file; it now regenerates it in `beforeAll`. Verified: `rm` the file → run the test → it regenerates and all 9 assertions pass.
29
+ - CI's "Build" job runs `npm run build` (regenerates the manifest); the unit-test job's `builtin-manifest.test.ts` self-generates. No CI step asserts a clean git tree against the committed manifest, so removing it eliminates (rather than introduces) a drift-failure class.
30
+ - The other files matching "builtin-manifest" in tests reference the unrelated playbook `builtin-manifests/` directory, not this file.
31
+
32
+ ## 4. Reversibility
33
+
34
+ Fully reversible: `git add -f src/data/builtin-manifest.json`, drop the `.gitignore` line, revert the test `beforeAll`. No state, no format, no migration.
35
+
36
+ ## 5. Blast radius
37
+
38
+ `.gitignore` (1 line + comment), `tests/unit/builtin-manifest.test.ts` (a `beforeAll`), and the untracking of one generated JSON. NO runtime `src/*.ts` change. Build/publish/CI behavior is identical because the file is still produced at build time.
39
+
40
+ ## Evidence pointers
41
+
42
+ - `npm pack --dry-run` (with the file gitignored) lists `src/data/builtin-manifest.json` in the tarball.
43
+ - `node_modules/.bin/vitest run tests/unit/builtin-manifest.test.ts` after `rm`-ing the file: 9 passed; file regenerated.
44
+ - `tsc --noEmit` clean; `no-silent-fallbacks` ratchet unchanged (no src catches touched).