@event4u/agent-config 17.2.1 → 17.4.0

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.
Files changed (225) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/.claude-plugin/skills/install-agent-config/SKILL.md +9 -9
  5. package/CHANGELOG.md +167 -193
  6. package/CREDITS.md +2 -2
  7. package/README.md +1 -1
  8. package/dist/agent-src/skills/code-intelligence/SKILL.md +16 -12
  9. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  10. package/dist/agent-src/templates/scripts/check_memory.ts +1 -1
  11. package/dist/cli/commands/recordTriggerEval.js +1 -1
  12. package/dist/cli/registry.js +2 -2
  13. package/dist/cli-delegate/{chunk-KR5ZIFPO.js → chunk-5AYJGUA3.js} +1 -3
  14. package/dist/cli-delegate/chunk-DIFZBP4G.js +1336 -0
  15. package/dist/cli-delegate/chunk-E7ACTJTJ.js +6792 -0
  16. package/dist/cli-delegate/{chunk-VYZGJLCA.js → chunk-RKNT4LIK.js} +22 -1286
  17. package/dist/cli-delegate/{chunk-BZJ4Y3CI.js → chunk-WY5ZZPGL.js} +2 -2
  18. package/dist/cli-delegate/{chunk-CMZEKSNN.js → chunk-X6LZ7W5A.js} +73 -10
  19. package/dist/cli-delegate/cmd_conformance.js +190 -192
  20. package/dist/cli-delegate/cmd_doctor.js +5 -5
  21. package/dist/cli-delegate/cmd_doctor_neighbours.js +3 -3
  22. package/dist/cli-delegate/cmd_explain.js +1 -1
  23. package/dist/cli-delegate/cmd_export.js +2 -2
  24. package/dist/cli-delegate/cmd_handoff.js +2 -2
  25. package/dist/cli-delegate/cmd_memory_get.js +1 -1
  26. package/dist/cli-delegate/cmd_prune.js +2 -2
  27. package/dist/cli-delegate/cmd_route_audit.js +1 -1
  28. package/dist/cli-delegate/cmd_session_recycle.js +2 -2
  29. package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
  30. package/dist/cli-delegate/cmd_settings_set.js +8 -4
  31. package/dist/cli-delegate/cmd_sync.js +2 -2
  32. package/dist/cli-delegate/cmd_uninstall.js +2 -2
  33. package/dist/cli-delegate/cmd_update.js +24 -13
  34. package/dist/cli-delegate/cmd_upgrade.js +2 -2
  35. package/dist/cli-delegate/cmd_validate.js +2 -2
  36. package/dist/cli-delegate/dist-25AZAHOP.js +3240 -0
  37. package/dist/cli-delegate/dist-P7MFPMF3.js +411 -0
  38. package/dist/cli-delegate/dist-XAS5ZLQB.js +6 -0
  39. package/dist/cli-delegate/{upgrade_unattended-VVL6JLSX.js → upgrade_unattended-QCWOKTUN.js} +178 -163
  40. package/dist/discovery/deprecation-report.md +1 -1
  41. package/dist/discovery/discovery-manifest.json +3 -3
  42. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  43. package/dist/discovery/discovery-manifest.summary.md +1 -1
  44. package/dist/discovery/dormancy-report.md +1 -1
  45. package/dist/discovery/orphan-report.md +1 -1
  46. package/dist/discovery/packs.json +2 -2
  47. package/dist/discovery/trust-report.md +1 -1
  48. package/dist/discovery/workspaces.json +2 -2
  49. package/dist/hooks/code_graph_refresh.chunk.cjs +443 -0
  50. package/dist/hooks/code_graph_refresh.chunk.cjs.sha256 +1 -0
  51. package/dist/hooks/dispatch.js +1001 -938
  52. package/dist/hooks/dispatch.sha256 +1 -1
  53. package/dist/hooks/egress_engine.chunk.cjs +57 -7
  54. package/dist/hooks/egress_engine.chunk.cjs.sha256 +1 -1
  55. package/dist/hooks/update_notice.chunk.cjs +914 -0
  56. package/dist/hooks/update_notice.chunk.cjs.sha256 +1 -0
  57. package/dist/install/install.mjs +6974 -6037
  58. package/dist/mcp/mcp-cloudflare-catalogue.json +1 -0
  59. package/dist/mcp/registry-manifest.json +3 -2
  60. package/dist/mcp/server.json +13 -4
  61. package/dist/mcp/server.mjs +71202 -63282
  62. package/dist/scripts/_lib/egress_rules.js +8 -2
  63. package/dist/scripts/condense.js +18 -15
  64. package/dist/server/routes/discovery.js +1 -1
  65. package/dist/server/routes/install.js +1 -1
  66. package/dist/server/routes/ping.js +1 -1
  67. package/dist/server/routes/schema.js +4 -4
  68. package/dist/server/routes/settings.js +2 -6
  69. package/dist/server/routes/wizard.js +6 -6
  70. package/dist/server/schemas/settings.js +42 -42
  71. package/dist/shared/settingsSurface.js +1 -1
  72. package/dist/shared/userMd/schema.js +1 -1
  73. package/dist/shared/zodJsonSchema.js +47 -0
  74. package/dist/ui/assets/index-B0bcIgi0.js +77 -0
  75. package/dist/ui/index.html +1 -1
  76. package/package.json +6 -3
  77. package/src/agent-src/templates/scripts/check_memory.ts +1 -1
  78. package/src/config/ci-local-parity.yml +11 -0
  79. package/src/config/continuity-surface.json +9 -2
  80. package/src/config/evaluator-budgets.json +9 -8
  81. package/src/config/gate-violation-baselines.json +3 -3
  82. package/src/config/gitignore-block.txt +6 -5
  83. package/src/config/hook-bundle-budget.json +46 -6
  84. package/src/config/pack-size-budget.json +12 -1
  85. package/src/config/packed-binary-manifest.json +18 -0
  86. package/src/config/sigstore/npm_keys.json +50 -0
  87. package/src/config/sigstore/trust-material.json +9 -0
  88. package/src/config/sigstore/trusted_root.json +126 -0
  89. package/src/config/skill-body-budget.json +7 -1
  90. package/src/scripts/_cli/cmd_settings_set.ts +3 -2
  91. package/src/scripts/_cli/cmd_update.ts +48 -20
  92. package/src/scripts/_cli/cmd_upgrade.ts +7 -1
  93. package/src/scripts/_cli/upgrade_unattended.ts +90 -76
  94. package/src/scripts/_dispatch.bash +4 -3
  95. package/src/scripts/_lib/confusables.ts +0 -19
  96. package/src/scripts/_lib/egress_normalize.ts +53 -23
  97. package/src/scripts/_lib/egress_rules.ts +8 -2
  98. package/src/scripts/_lib/egress_text.ts +5 -3
  99. package/src/scripts/_lib/egress_token.ts +7 -5
  100. package/src/scripts/_lib/gate_collector_experimental.ts +633 -0
  101. package/src/scripts/_lib/git_common_dir.ts +10 -0
  102. package/src/scripts/_lib/graph_feeder_record.ts +3 -2
  103. package/src/scripts/_lib/install_reach_checks.ts +32 -2
  104. package/src/scripts/_lib/lineage_backfill.ts +136 -0
  105. package/src/scripts/_lib/lineage_ledger.ts +211 -0
  106. package/src/scripts/_lib/lineage_map.ts +55 -0
  107. package/src/scripts/_lib/lineage_query.ts +140 -0
  108. package/src/scripts/_lib/lineage_seed.ts +116 -0
  109. package/src/scripts/_lib/lineage_watch.ts +249 -0
  110. package/src/scripts/_lib/link_crypto.ts +8 -4
  111. package/src/scripts/_lib/listing_manifests.ts +85 -0
  112. package/src/scripts/_lib/neighbour_census.ts +1 -0
  113. package/src/scripts/_lib/production_reach.ts +3 -3
  114. package/src/scripts/_lib/project_registry.ts +227 -0
  115. package/src/scripts/_lib/provenance_verify.ts +14 -242
  116. package/src/scripts/_lib/release_settings_surface.ts +2 -6
  117. package/src/scripts/_lib/sigstore_provenance.ts +177 -0
  118. package/src/scripts/_lib/source_id.ts +48 -0
  119. package/src/scripts/_lib/source_shape.ts +4 -0
  120. package/src/scripts/_lib/unattended_gates.ts +6 -1
  121. package/src/scripts/adoption_status.ts +231 -27
  122. package/src/scripts/advisories.ts +26 -10
  123. package/src/scripts/ai_council/council_egress.ts +5 -6
  124. package/src/scripts/bench_graph_feeder_latency.ts +10 -3
  125. package/src/scripts/build_mcp_registry_manifest.ts +23 -12
  126. package/src/scripts/check_dependency_floors.ts +14 -0
  127. package/src/scripts/check_egress_mutations.ts +1 -0
  128. package/src/scripts/check_release_manifest_content.ts +17 -2
  129. package/src/scripts/check_release_pr_shape.ts +5 -0
  130. package/src/scripts/code_graph/build.ts +145 -45
  131. package/src/scripts/code_graph/cli.ts +382 -35
  132. package/src/scripts/code_graph/conventions_default.ts +247 -0
  133. package/src/scripts/code_graph/detect.ts +5 -5
  134. package/src/scripts/code_graph/estate_cli.ts +135 -0
  135. package/src/scripts/code_graph/estate_index.ts +394 -0
  136. package/src/scripts/code_graph/estate_manifests.ts +223 -0
  137. package/src/scripts/code_graph/estate_map.ts +141 -0
  138. package/src/scripts/code_graph/extract.ts +8 -2
  139. package/src/scripts/code_graph/extract_more.ts +241 -2
  140. package/src/scripts/code_graph/graph_budget.ts +158 -0
  141. package/src/scripts/code_graph/graph_home.ts +80 -0
  142. package/src/scripts/code_graph/lineage_cli.ts +315 -0
  143. package/src/scripts/code_graph/loader.ts +10 -2
  144. package/src/scripts/code_graph/map.ts +195 -53
  145. package/src/scripts/code_graph/map_model.ts +113 -20
  146. package/src/scripts/code_graph/map_verify.ts +80 -5
  147. package/src/scripts/code_graph/map_viewer/viewer.css +18 -0
  148. package/src/scripts/code_graph/map_viewer/viewer.js +146 -15
  149. package/src/scripts/code_graph/passes.ts +173 -0
  150. package/src/scripts/code_graph/project_ref.ts +25 -0
  151. package/src/scripts/code_graph/projects_cli.ts +254 -0
  152. package/src/scripts/code_graph/providers/angular.ts +55 -0
  153. package/src/scripts/code_graph/providers/aspnetcore.ts +182 -0
  154. package/src/scripts/code_graph/providers/catalog.ts +299 -0
  155. package/src/scripts/code_graph/providers/django.ts +206 -0
  156. package/src/scripts/code_graph/providers/express.ts +25 -0
  157. package/src/scripts/code_graph/providers/fastapi.ts +49 -0
  158. package/src/scripts/code_graph/providers/flask.ts +99 -0
  159. package/src/scripts/code_graph/providers/go_http.ts +121 -0
  160. package/src/scripts/code_graph/providers/index.ts +103 -0
  161. package/src/scripts/code_graph/{laravel_overlay.ts → providers/laravel.ts} +113 -7
  162. package/src/scripts/code_graph/providers/nestjs.ts +34 -0
  163. package/src/scripts/code_graph/providers/nextjs.ts +91 -0
  164. package/src/scripts/code_graph/providers/nuxt.ts +55 -0
  165. package/src/scripts/code_graph/providers/rails.ts +204 -0
  166. package/src/scripts/code_graph/providers/react-router.ts +58 -0
  167. package/src/scripts/code_graph/providers/shared/detect.ts +78 -0
  168. package/src/scripts/code_graph/providers/shared/extractors.ts +249 -0
  169. package/src/scripts/code_graph/providers/shared/js.ts +252 -0
  170. package/src/scripts/code_graph/providers/shared/kit.ts +210 -0
  171. package/src/scripts/code_graph/providers/shared/php.ts +64 -0
  172. package/src/scripts/code_graph/providers/shared/python.ts +223 -0
  173. package/src/scripts/code_graph/providers/spring.ts +175 -0
  174. package/src/scripts/code_graph/providers/sqlalchemy.ts +62 -0
  175. package/src/scripts/code_graph/providers/sveltekit.ts +59 -0
  176. package/src/scripts/code_graph/providers/symfony.ts +142 -0
  177. package/src/scripts/code_graph/providers/typeorm.ts +58 -0
  178. package/src/scripts/code_graph/providers/types.ts +56 -0
  179. package/src/scripts/code_graph/providers/vue-router.ts +21 -0
  180. package/src/scripts/code_graph/providers/wordpress.ts +128 -0
  181. package/src/scripts/code_graph/query.ts +9 -9
  182. package/src/scripts/code_graph/refresh_cli.ts +81 -0
  183. package/src/scripts/code_graph/refresh_lock.ts +197 -0
  184. package/src/scripts/code_graph/repo_identity.ts +169 -0
  185. package/src/scripts/code_graph/resolution_tiers.ts +19 -7
  186. package/src/scripts/code_graph/scip_reader.ts +2 -2
  187. package/src/scripts/code_graph/sqlite_store.ts +31 -28
  188. package/src/scripts/code_graph/types.ts +79 -41
  189. package/src/scripts/code_graph/validate.ts +6 -8
  190. package/src/scripts/condense.ts +15 -15
  191. package/src/scripts/generate_settings_reference.ts +2 -6
  192. package/src/scripts/hook_chunks.mjs +11 -0
  193. package/src/scripts/hook_manifest.json +1 -1
  194. package/src/scripts/hook_manifest.yaml +43 -23
  195. package/src/scripts/hooks/code_graph_refresh_hook.ts +163 -0
  196. package/src/scripts/hooks/dispatch_hook.ts +6 -7
  197. package/src/scripts/hooks/host_semantics.ts +72 -0
  198. package/src/scripts/hooks/lazy_concern.ts +8 -0
  199. package/src/scripts/hooks/user_notice.ts +105 -0
  200. package/src/scripts/install-hooks.sh +54 -33
  201. package/src/scripts/install.ts +2 -6
  202. package/src/scripts/lint_harvest_provenance.ts +137 -11
  203. package/src/scripts/lint_hook_manifest.ts +2 -0
  204. package/src/scripts/lint_marketplace.ts +33 -0
  205. package/src/scripts/lint_mcp_registry_manifest.ts +36 -0
  206. package/src/scripts/mcp_server/consumer_tool_catalog.json +70 -15
  207. package/src/scripts/mcp_server/graph_tools.ts +165 -41
  208. package/src/scripts/network_sources.ts +24 -6
  209. package/src/scripts/release.ts +2 -5
  210. package/src/scripts/release_drill.ts +4 -1
  211. package/src/scripts/release_env.ts +17 -0
  212. package/src/scripts/release_mix_taxonomy.json +3 -0
  213. package/src/scripts/schemas/provenance-mechanism.schema.json +46 -0
  214. package/src/scripts/update_notice_hook.ts +75 -7
  215. package/src/server/schemas/settings.ts +42 -42
  216. package/src/shared/settingsSurface.ts +1 -1
  217. package/src/shared/userMd/schema.ts +1 -1
  218. package/src/shared/zodJsonSchema.ts +41 -0
  219. package/src/vendor/grammars/README.md +8 -6
  220. package/src/vendor/grammars/tree-sitter-c_sharp.wasm +0 -0
  221. package/src/vendor/grammars/tree-sitter-ruby.wasm +0 -0
  222. package/dist/cli-delegate/chunk-XIAPY44N.js +0 -4587
  223. package/dist/ui/assets/index-w70Ado09.js +0 -23
  224. /package/dist/cli-delegate/{chunk-FKYZOWVD.js → chunk-QBAFP67O.js} +0 -0
  225. /package/dist/cli-delegate/{chunk-BMGUGSY6.js → chunk-TQG6UMPC.js} +0 -0
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "event4u-agent-config",
3
3
  "description": "Governed agent system — skills, rules, commands, and guidelines for AI-assisted development.",
4
- "version": "17.2.1",
4
+ "version": "17.4.0",
5
5
  "owner": {
6
6
  "name": "event4u",
7
7
  "email": "dev@event4u.app"
8
8
  },
9
9
  "metadata": {
10
10
  "description": "A policy-driven execution system that enforces quality, consistency, and developer-like behavior for AI agents.",
11
- "version": "17.2.1"
11
+ "version": "17.4.0"
12
12
  },
13
13
  "plugins": [
14
14
  {
15
15
  "name": "agent-config",
16
16
  "description": "Full governed agent system — rules, skills, commands, guidelines, and runtime tooling.",
17
- "version": "17.2.1",
17
+ "version": "17.4.0",
18
18
  "source": ".",
19
19
  "category": "governance",
20
20
  "tags": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-config",
3
3
  "description": "A governed skill framework for AI agents — runtime execution, tooling, observability, feedback, and lifecycle management with policy-driven quality enforcement.",
4
- "version": "17.2.1",
4
+ "version": "17.4.0",
5
5
  "author": {
6
6
  "name": "event4u",
7
7
  "email": "dev@event4u.app"
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable. Its hooks run only alongside a global npm install of the package (`npx -y @event4u/agent-config init` or `npm i -g`); a project-local install is never used. On a plugin-only install no dispatcher is reachable, no hook runs, and the fail_closed guards (block-no-verify, block-kernel-rule-writes, block-plumbing-writes) are OFF — only the session start says so.",
9
- "version": "17.2.1",
9
+ "version": "17.4.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: install-agent-config
3
3
  description: >-
4
- Install or upgrade the event4u agent-config suite. This marketplace plugin
5
- is a bootstrap shim — it ships hooks plus this pointer only; ALL skills,
6
- rules, and commands are installed via `npx -y @event4u/agent-config init`.
7
- Use when the user asks to install, set up, or upgrade agent-config, or
4
+ Governance rules, skills and commands for AI coding agents in Claude Code, Cursor, GitHub Copilot and Gemini CLI —
5
+ install or upgrade the full event4u agent-config suite. No plugin that ships this pointer is the full suite (the Claude
6
+ Code one adds hooks, the Copilot one a read-only MCP server); ALL content installs via `npx -y @event4u/agent-config init`.
7
+ Use when the user asks to install, set up, or upgrade agent-config, wants coding-agent rules or skills, or
8
8
  wonders why this plugin contains no other skills.
9
9
  ---
10
10
 
11
11
  # Install agent-config
12
12
 
13
- This plugin is a **bootstrap shim** kept so the marketplace listing stays
14
- discoverable. Its hooks run only alongside a global npm install of the package (never a project-local one) —
15
- on a plugin-only install no hook runs, so the `fail_closed` guards (`block-no-verify`, `block-kernel-rule-writes`,
16
- `block-plumbing-writes`) are **off**; the session start says so once. Content ships as a file projection.
13
+ The plugin that delivered this skill is a **discovery entry**, not the suite. The Claude Code plugin adds hooks that
14
+ run only alongside a global npm install of the package (never a project-local one) — on a plugin-only install no hook
15
+ runs, so the `fail_closed` guards (`block-no-verify`, `block-kernel-rule-writes`, `block-plumbing-writes`) are
16
+ **off**; the session start says so once. The Copilot plugin adds a read-only MCP server and no hooks.
17
17
 
18
18
  ## Install (canonical, one command)
19
19
 
@@ -23,7 +23,7 @@ npx -y @event4u/agent-config init
23
23
 
24
24
  The installer writes the full content projection, registers the dispatcher
25
25
  hooks as a managed block in `~/.claude/settings.json` (byte-identical to
26
- this plugin's hooks, so nothing double-fires), and keeps everything
26
+ the Claude Code plugin's hooks, so nothing double-fires), and keeps everything
27
27
  upgradeable via `agent-config upgrade`.
28
28
 
29
29
  ## Already installed both?
package/CHANGELOG.md CHANGED
@@ -396,224 +396,198 @@ An entry belongs under a dated release section, not here — see
396
396
  > keeps the active era under the 250-line drift cap enforced by
397
397
  > `tests/test_changelog_eras.py`.
398
398
 
399
- # Era: 17.1.x — current
399
+ # Era: pre-17.4.0 — archived
400
400
 
401
- > Started at `17.1.0`. Full entries live inline below.
402
- > The drift test caps this era at 250 lines of entry body; growth past
403
- > that forces a new era split (`# Era: 17.2.x`, etc.) — see
404
- > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
405
-
406
- ## [17.2.1](https://github.com/event4u-app/agent-config/compare/17.2.0...17.2.1) (2026-10-23)
407
-
408
- ### Release highlights
409
-
410
- - **Behaviour changes:** _none_
411
- - **Default changes + migration:** Breaking, pending in `BREAKING_CHANGES.md` and shipped by this release: **Three `fail_closed` hook guards run where they were silent.** The installed claude hook command now reaches a dispatcher staged under `~/.event4u/agent-config/runtime/` after a project-local install and before `PATH` ([`3f8c98e`](https://github.com/event4u-app/agent-config/commit/3f8c98e74), #2455). On machines installed through `npx`, or hosts launched with a bare `PATH`, every hook command used to end in a silent `exit 0`; there `block-no-verify` (refuses `git … --no-verify` and `core.hooksPath` overrides), `block-kernel-rule-writes` and `block-plumbing-writes` (refuse agent writes to this package's kernel rules and hook plumbing) now run and may refuse a tool call for the first time. Classed breaking by the AI council, 2026-10-19 (`agents/evidence/council/hook-carrier-release-note-class-20261019.md`). **`uninstall --global --purge` stops being a recursive delete of the host anchor.** Old scope: `fs.rmSync(anchor, { recursive: true })` on whole host configuration roots — `~/.claude/`, `~/.codex/`, `~/.config/zed/` — so everything under them went, whoever wrote it. New scope: only the anchor-relative paths this package's own deploy inventory recorded writing; the anchor itself is never removed, directories are pruned only when left empty, a recorded symlink is unlinked rather than followed, and a purge with no readable inventory for that anchor exits 1 having deleted nothing. A second change in the same area: a plain `uninstall --global` now keeps the lockfile while recorded content is still on disk, where it used to delete it.
412
- - **Security and correctness:** _none_
413
- - **Honest nulls:** _none_
414
- - **Known limitations:** _none_
415
-
416
- > **Governance mix:** governance-only 1 vs consumer-only 0 (mixed 0, maintenance 1; taxonomy 1.1.0; range 4e79c57090c8..36c8616ea2f4).
417
-
418
- ### Documentation
419
-
420
- * **ci:** record the shipped cloud-release rate-limit fix ([b3d4b2f](https://github.com/event4u-app/agent-config/commit/b3d4b2f6d7334d8c78ee48bdb098efb30808703f))
421
-
422
- ### CI
423
-
424
- * **cloud-release:** pace the asset upload and skip what is already attached ([91d4b73](https://github.com/event4u-app/agent-config/commit/91d4b73ebab6b68a53581092354803014dbf0c0c))
425
-
426
- Tests: 32297 (+0 since 17.2.0)
427
-
428
- ## [17.2.0](https://github.com/event4u-app/agent-config/compare/17.1.0...17.2.0) (2026-10-23)
429
-
430
- ### Release highlights
431
-
432
- - **Behaviour changes:** _none_
433
- - **Default changes + migration:** Breaking, pending in `BREAKING_CHANGES.md` and shipped by this release: **Three `fail_closed` hook guards run where they were silent.** The installed claude hook command now reaches a dispatcher staged under `~/.event4u/agent-config/runtime/` after a project-local install and before `PATH` ([`3f8c98e`](https://github.com/event4u-app/agent-config/commit/3f8c98e74), #2455). On machines installed through `npx`, or hosts launched with a bare `PATH`, every hook command used to end in a silent `exit 0`; there `block-no-verify` (refuses `git … --no-verify` and `core.hooksPath` overrides), `block-kernel-rule-writes` and `block-plumbing-writes` (refuse agent writes to this package's kernel rules and hook plumbing) now run and may refuse a tool call for the first time. Classed breaking by the AI council, 2026-10-19 (`agents/evidence/council/hook-carrier-release-note-class-20261019.md`). **`uninstall --global --purge` stops being a recursive delete of the host anchor.** Old scope: `fs.rmSync(anchor, { recursive: true })` on whole host configuration roots — `~/.claude/`, `~/.codex/`, `~/.config/zed/` — so everything under them went, whoever wrote it. New scope: only the anchor-relative paths this package's own deploy inventory recorded writing; the anchor itself is never removed, directories are pruned only when left empty, a recorded symlink is unlinked rather than followed, and a purge with no readable inventory for that anchor exits 1 having deleted nothing. A second change in the same area: a plain `uninstall --global` now keeps the lockfile while recorded content is still on disk, where it used to delete it.
434
- - **Security and correctness:** keep the binding inside the size ratchet and the built-path test unskipped (4201565); land the nightly evaluator record through a pull request (75dae15); name the map's render result map-render.json, clear of the design-sync artefact name (9868be2); fit the two map tools into the kernel payload band and dispose of their state (4f362af); keep Playwright out of the bundles and regenerate what the map moved (dc896f4); close the independent review's findings on the map (8956a5b); +2 more.
435
- - **Honest nulls:** _none_
436
- - **Known limitations:** _none_
437
-
438
- > **Governance mix:** governance-only 10 vs consumer-only 7 (mixed 19, maintenance 2; taxonomy 1.1.0; range 81949b9dba26..ffe878edc5db).
439
-
440
- ### Features
441
-
442
- * **hooks:** bind the InstructionsLoaded observer on claude ([8bb7fe6](https://github.com/event4u-app/agent-config/commit/8bb7fe6dce33e743d112eb3faba1d6d5cebd0b74))
443
- * **code-graph:** the map remembers, compares and flags merge risks ([77bf99c](https://github.com/event4u-app/agent-config/commit/77bf99c53ca7c4e761ffc472cc3ebef60660f621))
444
- * **code-graph:** draw this repository's artefact layer on its own map ([9f2c328](https://github.com/event4u-app/agent-config/commit/9f2c328edffbb550aa7425df522d4d88875a03f6))
445
- * **code-graph:** link documents to the files they name ([153ddef](https://github.com/event4u-app/agent-config/commit/153ddef9e1e03652e676e8fb0f203e44feab68af))
446
- * **code-graph:** read a project's SCIP index into the graph ([f80d8ce](https://github.com/event4u-app/agent-config/commit/f80d8cea56d4b13642fad0f5af7b7cda66675853))
447
- * **code-graph:** index Python, Go, Java and Vue ([2ff8f31](https://github.com/event4u-app/agent-config/commit/2ff8f3159c29e145455b0c7b10cb909faa739d93))
448
- * **code-graph:** keep the map fresh, readable over MCP, and diffable ([936cad9](https://github.com/event4u-app/agent-config/commit/936cad9e938117a67e701f29356ee2e00d18d732))
449
- * **code-graph:** read Laravel's conventions into the graph ([e69e6e5](https://github.com/event4u-app/agent-config/commit/e69e6e5c2290c9d73174d5800057cc33ffa446e0))
450
- * **code-graph:** draw the project map into agents/map/ ([213a10c](https://github.com/event4u-app/agent-config/commit/213a10c043785ea3af947a35f94b90d8f0d4f62f))
451
-
452
- ### Bug Fixes
453
-
454
- * **ci:** keep the binding inside the size ratchet and the built-path test unskipped ([4201565](https://github.com/event4u-app/agent-config/commit/4201565a647fe075d69646c42ff39d07af70176f))
455
- * **ci:** land the nightly evaluator record through a pull request ([75dae15](https://github.com/event4u-app/agent-config/commit/75dae15a18edde57fcfbdb8fcb23c2d536bf855c))
456
- * **code-graph:** name the map's render result map-render.json, clear of the design-sync artefact name ([9868be2](https://github.com/event4u-app/agent-config/commit/9868be25d59ce85c5f5814b20c6bb63ae1b48292))
457
- * **ci:** fit the two map tools into the kernel payload band and dispose of their state ([4f362af](https://github.com/event4u-app/agent-config/commit/4f362af254c9d39bd8869499b3e5b88848b39050))
458
- * **ci:** record the map's runtime dependencies and tighten its verify clauses ([9705541](https://github.com/event4u-app/agent-config/commit/97055419e6447ed882e00a8b9d4e6bda53baf273))
459
- * **ci:** keep Playwright out of the bundles and regenerate what the map moved ([dc896f4](https://github.com/event4u-app/agent-config/commit/dc896f4749f07eea8bcd159e8cf25cb1857402eb))
460
- * **code-graph:** close the independent review's findings on the map ([8956a5b](https://github.com/event4u-app/agent-config/commit/8956a5b970b55fe22957918f1fb9c422757c326f))
461
- * **project-map:** use the lite model tier, the schema's lowest band ([c4833a9](https://github.com/event4u-app/agent-config/commit/c4833a9c6989a52a952b310e9707bf8725dbfeaa))
462
- * **code-graph:** keep the hook bundle under its ceiling ([2356031](https://github.com/event4u-app/agent-config/commit/2356031a2f56b87a3f53717bc5b49db51096e0de))
463
- * **code-graph:** index the consumer project and actually write its index ([e15e45c](https://github.com/event4u-app/agent-config/commit/e15e45c7ce13de2cda7c486652d546cbca972e7e))
464
-
465
- ### Documentation
466
-
467
- * **roadmap:** name unopim and larasend as the code-graph benchmark subjects ([eb4599e](https://github.com/event4u-app/agent-config/commit/eb4599e460609ab0437ec0afb9bf4a9074972e73))
468
- * **evidence:** re-ratify the binding after the CI-fix delta (round 5) ([12cbfa6](https://github.com/event4u-app/agent-config/commit/12cbfa68d33b0a293e0772b266c924c0b0ea3835))
469
- * **roadmap:** claim the observer's concern in the estate and type the council prompts ([ae8d5a9](https://github.com/event4u-app/agent-config/commit/ae8d5a993b9324bdf47e0c2fe9944e973f0049d7))
470
- * **evidence:** ratification record for the InstructionsLoaded binding ([ae1162c](https://github.com/event4u-app/agent-config/commit/ae1162c0e43cac457f666afe4cc98f641c45399e))
471
- * **roadmap:** close step 1.1 and its ratification-quorum blocker ([bc66921](https://github.com/event4u-app/agent-config/commit/bc66921a44fa6a74312a4d5938442431e1524404))
472
- * **roadmaps:** archive road-to-a-map-that-draws-itself — every step and criterion closed ([d40e797](https://github.com/event4u-app/agent-config/commit/d40e797f990afadf94b79a243ce0b83108718c55))
473
- * **adr:** register agents/map/ for derived views and correct the stale graph claim ([66f75c5](https://github.com/event4u-app/agent-config/commit/66f75c5cd02d4506afbd60c7c92685d70572283b))
474
- * **roadmaps:** plan a project map the code-graph engine draws itself ([06f332a](https://github.com/event4u-app/agent-config/commit/06f332a2550a1797b050d046d43f9a1dd6a7e7cf))
475
-
476
- ### CI
477
-
478
- * **tests:** bound the FFmpeg install and let a stall skip the stitch cases ([1d0f01b](https://github.com/event4u-app/agent-config/commit/1d0f01b4cb3f0940a226d0a96a94ebeb2948e954))
479
-
480
- ### Chores
481
-
482
- * **hooks:** record the admission of the instructions-observer concern ([a5ee675](https://github.com/event4u-app/agent-config/commit/a5ee675245df43e7279ee0ef485c98867ab5d99b))
483
- * **plugin:** regenerate hooks/hooks.json in matrix order ([339b306](https://github.com/event4u-app/agent-config/commit/339b3062cc73ef2995f2b493d5ea627c850c3d27))
484
- * **ci:** regenerate the ADR index and lower the source-size ratchet to the live total ([7c11522](https://github.com/event4u-app/agent-config/commit/7c11522b49c1dac1199e142ed17c8b6e9fa06f22))
485
- * **adr:** regenerate the evidence census for ADR-297's provenance kind ([18b7d11](https://github.com/event4u-app/agent-config/commit/18b7d113e811f17c1115010676e49c6d0c8e9849))
486
- * **tokens:** trim the map's surfaces, then re-anchor the two that still grew ([5d61dab](https://github.com/event4u-app/agent-config/commit/5d61dab35e0540492109a4b9233b198e9df6bc3c))
487
- * **index:** regenerate the catalog for project map ([1522e30](https://github.com/event4u-app/agent-config/commit/1522e30103815b03c1a777cb4a24c234e3995f7e))
488
- * **proof:** regenerate after the merge with main ([c4d0a11](https://github.com/event4u-app/agent-config/commit/c4d0a1133339e081f738a2f3df353d649110449c))
489
- * **sync:** project the map command, the code-intelligence step and the analyze changes ([5651955](https://github.com/event4u-app/agent-config/commit/5651955b72866023bde89afc1e85a0001a944a93))
490
-
491
- ### Other
401
+ > All entries before `17.4.0` live in
402
+ > [`docs/archive/CHANGELOG-pre-17.4.0.md`](docs/archive/CHANGELOG-pre-17.4.0.md).
403
+ > The archive is read-only; git tags remain the canonical
404
+ > source for what shipped. Splitting them out of the main file
405
+ > keeps the active era under the 250-line drift cap enforced by
406
+ > `tests/test_changelog_eras.py`.
492
407
 
493
- * **code-graph:** record the map's costs and the orientation benchmark ([84c2421](https://github.com/event4u-app/agent-config/commit/84c24216f474eab896d4f8979b2353b37f81e4b6))
494
- * **code-graph:** pre-register the orientation benchmark and add the map cost probe ([1fdc013](https://github.com/event4u-app/agent-config/commit/1fdc013f9038ee50495bfe1ab0c3e75ecd90b3b3))
408
+ # Era: 17.4.x — current
495
409
 
496
- Tests: 32297 (+82 since 17.1.0)
410
+ > Started at `17.4.0`. Full entries live inline below.
411
+ > The drift test caps this era at 250 lines of entry body; growth past
412
+ > that forces a new era split (`# Era: 17.5.x`, etc.) — see
413
+ > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
497
414
 
498
- ## [17.1.0](https://github.com/event4u-app/agent-config/compare/17.0.0...17.1.0) (2026-10-23)
415
+ ## [17.4.0](https://github.com/event4u-app/agent-config/compare/17.3.0...17.4.0) (2026-10-24)
499
416
 
500
417
  ### Release highlights
501
418
 
502
- - **Behaviour changes:** _none_
503
- - **Default changes + migration:** Breaking, pending in `BREAKING_CHANGES.md` and shipped by this release: **Three `fail_closed` hook guards run where they were silent.** The installed claude hook command now reaches a dispatcher staged under `~/.event4u/agent-config/runtime/` after a project-local install and before `PATH` ([`3f8c98e`](https://github.com/event4u-app/agent-config/commit/3f8c98e74), #2455). On machines installed through `npx`, or hosts launched with a bare `PATH`, every hook command used to end in a silent `exit 0`; there `block-no-verify` (refuses `git … --no-verify` and `core.hooksPath` overrides), `block-kernel-rule-writes` and `block-plumbing-writes` (refuse agent writes to this package's kernel rules and hook plumbing) now run and may refuse a tool call for the first time. Classed breaking by the AI council, 2026-10-19 (`agents/evidence/council/hook-carrier-release-note-class-20261019.md`). **`uninstall --global --purge` stops being a recursive delete of the host anchor.** Old scope: `fs.rmSync(anchor, { recursive: true })` on whole host configuration roots — `~/.claude/`, `~/.codex/`, `~/.config/zed/` — so everything under them went, whoever wrote it. New scope: only the anchor-relative paths this package's own deploy inventory recorded writing; the anchor itself is never removed, directories are pruned only when left empty, a recorded symlink is unlinked rather than followed, and a purge with no readable inventory for that anchor exits 1 having deleted nothing. A second change in the same area: a plain `uninstall --global` now keeps the lockfile while recorded content is still on disk, where it used to delete it.
504
- - **Security and correctness:** pace free-hands shadow calls from the last free reply (c28d888); record the id a keyless route actually serves (9235bdc); a pre-ledger global refresh updates untouched files instead of preserving thousands (#2590) (601abd8); put the SC2016 directive on the node command it covers (029da1a); pin the aging-hour notice case to midday UTC (0d2efc5); assemble the reach self-test fixtures so prepack reads no shipped import (839a4d5); +26 more.
419
+ - **Behaviour changes:** schema for a source-free mechanism decision ledger (a50af39).
420
+ - **Default changes + migration:** a local estate index of packages and exports, off by default (be0676a). Breaking, pending in `BREAKING_CHANGES.md` and shipped by this release: **Three `fail_closed` hook guards run where they were silent.** The installed claude hook command now reaches a dispatcher staged under `~/.event4u/agent-config/runtime/` after a project-local install and before `PATH` ([`3f8c98e`](https://github.com/event4u-app/agent-config/commit/3f8c98e74), #2455). On machines installed through `npx`, or hosts launched with a bare `PATH`, every hook command used to end in a silent `exit 0`; there `block-no-verify` (refuses `git … --no-verify` and `core.hooksPath` overrides), `block-kernel-rule-writes` and `block-plumbing-writes` (refuse agent writes to this package's kernel rules and hook plumbing) now run and may refuse a tool call for the first time. Classed breaking by the AI council, 2026-10-19 (`agents/evidence/council/hook-carrier-release-note-class-20261019.md`). **`uninstall --global --purge` stops being a recursive delete of the host anchor.** Old scope: `fs.rmSync(anchor, { recursive: true })` on whole host configuration roots — `~/.claude/`, `~/.codex/`, `~/.config/zed/` — so everything under them went, whoever wrote it. New scope: only the anchor-relative paths this package's own deploy inventory recorded writing; the anchor itself is never removed, directories are pruned only when left empty, a recorded symlink is unlinked rather than followed, and a purge with no readable inventory for that anchor exits 1 having deleted nothing. A second change in the same area: a plain `uninstall --global` now keeps the lockfile while recorded content is still on disk, where it used to delete it.
421
+ - **Security and correctness:** install the pinned version globally before writing the pin (aadcb27); treat collector limits as capacities and validate health (3993d80); the mutation suite copies egress_normalize.ts with the engine it now imports (f1c732a); treat the someone-else fixture slug as a placeholder (a94fbee); key registry entries per checkout so clones keep their own (eaa4055); keep a worktree build from overwriting the main checkout's entry (cbd8c23); +28 more.
505
422
  - **Honest nulls:** _none_
506
- - **Known limitations:** a pre-ledger global refresh updates untouched files instead of preserving thousands (#2590) (src/scripts/install.ts declares a residual) (601abd8); a release waits for no review ledger (#2591) (src/scripts/_lib/release_findings_ingest.ts declares a residual) (e1dde82).
423
+ - **Known limitations:** the Rails provider (src/scripts/code_graph/providers/catalog.ts declares a residual) (e93491f); Spring controllers render the view they name (src/scripts/code_graph/providers/catalog.ts declares a residual) (d94f2fb); prefix Django routes with the include() that reaches them (src/scripts/code_graph/providers/catalog.ts declares a residual) (c39b45e).
507
424
 
508
- > **Governance mix:** governance-only 24 vs consumer-only 2 (mixed 39, maintenance 15; taxonomy 1.1.0; range ad30b6dfecd0..e1b086677d04).
425
+ > **Governance mix:** governance-only 49 vs consumer-only 2 (mixed 70, maintenance 21; taxonomy 1.1.0; range b31d12006f93..65ac68606432).
509
426
 
510
427
  ### Features
511
428
 
512
- * **bench:** rerun the tier pair on a pinned tree; both tier claims underpowered ([479bcf0](https://github.com/event4u-app/agent-config/commit/479bcf0c2428d83dca4c21b71471415cbea5cec8))
513
- * **gate:** a ticked step's tested symbols must reach a production entry ([1fd70d8](https://github.com/event4u-app/agent-config/commit/1fd70d8160dffa8a8cce04912493b405329189f9))
514
- * **bench:** refuse to price with a stale or older-generation price row ([fe4fa4b](https://github.com/event4u-app/agent-config/commit/fe4fa4bcd7b9bffaba49a233b18a6e82bdcfcc7b))
515
- * **bench:** bind bench evidence to the commit whose bytes it measured ([9972c55](https://github.com/event4u-app/agent-config/commit/9972c5575f64f8469a05da6e35307e2a1f38b202))
516
- * **lint:** the owner lock reaches the roadmap decision and blocker lints ([b5bb1a5](https://github.com/event4u-app/agent-config/commit/b5bb1a5e83f2b0f4d9a386c8912b21026a5d4000))
517
- * **bench:** free-hands shadow harness over the production ask path ([d148952](https://github.com/event4u-app/agent-config/commit/d1489529b8fff772175854d5ec269aea1b7349cc))
518
- * **bench:** paired quality run for egress placeholders, PREREG (e) ([d5f7f45](https://github.com/event4u-app/agent-config/commit/d5f7f453d9ff94d0e7e1e0fe79fdc9aa5d5a1608))
519
- * **spawn-guard:** reconstruct the reuse verdict per spawn at report time ([bc48e93](https://github.com/event4u-app/agent-config/commit/bc48e93a918a3c5c19d3e0d36307e1434b79e3d1))
520
- * **council:** catalogue a keyless first-party route, maintainer-only ([e9009ba](https://github.com/event4u-app/agent-config/commit/e9009baac5f06db9e978e638bc2c5690489ca33b))
521
- * **spawn-guard:** live worker_resume probe and reconstruction stamps ([4671ab7](https://github.com/event4u-app/agent-config/commit/4671ab758cb2ec6d3505f5121e2785d2eacd0c3c))
522
- * **hooks:** field-level payload projection for advisory concerns ([e2e04d1](https://github.com/event4u-app/agent-config/commit/e2e04d1aa3f3fcfc6508532d5f82cb93a329927c))
523
- * **egress:** the IBAN table names its registry release ([ce7783b](https://github.com/event4u-app/agent-config/commit/ce7783bd9f788291df6141bc5052cf5fec874aa4))
524
- * **council:** a real self-hosted probe for loopback routes ([7b4054e](https://github.com/event4u-app/agent-config/commit/7b4054e5f94b0585384486fe8b3e65e48165bfc6))
525
- * **ask:** shadow public-artifact typed asks on a free route ([a45480a](https://github.com/event4u-app/agent-config/commit/a45480aaf451d68775c90d22d0956719278bf2ba))
526
- * **spawn-guard:** index the worker register instead of reading a ledger tail ([40786bb](https://github.com/event4u-app/agent-config/commit/40786bb420c2b52732664c04fd4d098a9f595ea9))
429
+ * **doctor:** the version axis compares the pin with the global install ([a9eb77c](https://github.com/event4u-app/agent-config/commit/a9eb77c296ed61a84a55b4568f4b2686e7544e8d))
430
+ * **gates:** a degraded report-only run exits 2 and never reads as complete ([8fb06e3](https://github.com/event4u-app/agent-config/commit/8fb06e3d5ed7699b5b4e42f0ac0a0fd58da24eee))
431
+ * **gates:** an experimental per-aspect collector with a stop-point byte boundary ([29e04b0](https://github.com/event4u-app/agent-config/commit/29e04b0357977f8bfd741c6905572920d6c36678))
432
+ * **update:** verify releases against pinned sigstore roots before installing ([19237ec](https://github.com/event4u-app/agent-config/commit/19237ecf41252f639e20482920610b18e652e380))
433
+ * **egress:** the senders detect through invisible characters and lookalike letters ([2cbee58](https://github.com/event4u-app/agent-config/commit/2cbee5877aea35a99fc889a6239dcc3a1bbc8c01))
434
+ * **code-graph:** a storage budget for user-global graph homes ([d526b33](https://github.com/event4u-app/agent-config/commit/d526b33d3de26fdd02ac23906a9dd05e338a5d4e))
435
+ * **code-graph:** map --estate draws the registered projects on one page ([e42d335](https://github.com/event4u-app/agent-config/commit/e42d33524d654f8fab7d9f72cb4c72ed4af747d2))
436
+ * **code-graph:** estate queries across registered projects ([3b67f49](https://github.com/event4u-app/agent-config/commit/3b67f4900d3bcc7088089267ea1d746a2d12cd03))
437
+ * **mcp:** a root without a graph names the registered projects that have one ([524929a](https://github.com/event4u-app/agent-config/commit/524929a0f167aa3d5612ed38a389bdc7521ff76d))
438
+ * **code-graph:** a project parameter on the graph tools and the CLI ([d2d2444](https://github.com/event4u-app/agent-config/commit/d2d244425a3c6dc3119fe365f17d17e567af43e5))
439
+ * **code-graph:** a local estate index of packages and exports, off by default ([be0676a](https://github.com/event4u-app/agent-config/commit/be0676a02211d72a1103ab4eb0f3433d006f874b))
440
+ * **code-graph:** a local upstream delta watch that writes stubs, not code ([517533b](https://github.com/event4u-app/agent-config/commit/517533b614f90ad8c177e014b816e4b053a9c721))
441
+ * **code-graph:** lineage backfill proposes drafts from existing tokens ([404af3e](https://github.com/event4u-app/agent-config/commit/404af3e163b6500a792c70d93925cddaf880c462))
442
+ * **code-graph:** register projects by use and manage them by hand ([3698dbe](https://github.com/event4u-app/agent-config/commit/3698dbe7fa367f071f4ede351e5cab31ff9d41d0))
443
+ * **code-graph:** a tracked lineage view and a local source view ([af7149a](https://github.com/event4u-app/agent-config/commit/af7149a2a7fb3e0fe08849354a9b8813d6baa7d9))
444
+ * **registry:** one user-global project registry keyed by repo id ([74b7372](https://github.com/event4u-app/agent-config/commit/74b7372d1d35bbfe41ce9844d62713de335a5f66))
445
+ * **code-graph:** lineage of resolves realised_in through the graph too ([24f1ae1](https://github.com/event4u-app/agent-config/commit/24f1ae1ca5ea226d38e149b1651bc2061bbf8dce))
446
+ * **code-graph:** lineage of, gaps, rejected and from ([433b3bb](https://github.com/event4u-app/agent-config/commit/433b3bb9d08d838eb7009ef9c2475b13edfc8777))
447
+ * **provenance:** seed both lineage ledgers from the existing stores ([f96491e](https://github.com/event4u-app/agent-config/commit/f96491e313dd40cf4d49c519c775c4474d1821f6))
448
+ * **code-graph:** a local lineage ledger and lineage check ([6e5b5cc](https://github.com/event4u-app/agent-config/commit/6e5b5cceb4450efc6f7e3e6ec385fb59f70318b2))
449
+ * **provenance:** lint the mechanism decision ledger ([d03ae2d](https://github.com/event4u-app/agent-config/commit/d03ae2daed7e49c4b8cfe3420d53cb952d8750a9))
450
+ * **code-graph:** one graphHome resolver for state, map and lock paths ([6a81a01](https://github.com/event4u-app/agent-config/commit/6a81a01e077e7afb6ad552ee80bca27803c609dd))
451
+ * **code-graph:** a machine-keyed repo identity ([ced9d19](https://github.com/event4u-app/agent-config/commit/ced9d192322617ec6b9fefe76bc36af94b46857f))
452
+ * **provenance:** schema for a source-free mechanism decision ledger ([a50af39](https://github.com/event4u-app/agent-config/commit/a50af395139e44215cdf237c0f6928708faa09ba))
453
+ * **network-sources:** codebooks emit stable source ids given a key ([9343ab9](https://github.com/event4u-app/agent-config/commit/9343ab99ae9bce9d5cad339ffd9654c164b0ec97))
454
+ * **link-crypto:** mint keyed, stable source ids ([15a5fd3](https://github.com/event4u-app/agent-config/commit/15a5fd3bf5b36f8361875bc32fac75e7091b75fd))
455
+ * **git:** export the work-tree walk-up as enclosingWorkTree ([721dd70](https://github.com/event4u-app/agent-config/commit/721dd707b198aa3e51c58f8e326760341a23cddc))
456
+ * **code-graph:** the Rails provider ([e93491f](https://github.com/event4u-app/agent-config/commit/e93491f33dd7c33ee4068f88edcf6af382c588bf))
457
+ * **code-graph:** Ruby is a parsed language ([d3013ae](https://github.com/event4u-app/agent-config/commit/d3013ae784edf7dad9906f58e49d8616a64ed089))
458
+ * **hooks:** count a notice as shown only on the dispatcher's receipt ([90ca393](https://github.com/event4u-app/agent-config/commit/90ca393a6c6961a718185526b3956e94ccfdc64e))
459
+ * **update:** register update-notice on claude session_start ([695349b](https://github.com/event4u-app/agent-config/commit/695349b740b058d09eedf8ced21da6726100433d))
460
+ * **hooks:** a user channel that never reaches the model ([03d20d6](https://github.com/event4u-app/agent-config/commit/03d20d6707b717d091ea0a848d459b6a0da337fc))
461
+ * **code-graph:** Spring controllers render the view they name ([d94f2fb](https://github.com/event4u-app/agent-config/commit/d94f2fb5465ab774c6ee6f64d4bfade38fbccaec))
462
+ * **code-graph:** request paths follow the handler three calls deep ([77a7651](https://github.com/event4u-app/agent-config/commit/77a765170d6cc2beb38a2e81c1b4aedb910a455d))
527
463
 
528
464
  ### Bug Fixes
529
465
 
530
- * **bench:** pace free-hands shadow calls from the last free reply ([c28d888](https://github.com/event4u-app/agent-config/commit/c28d888b6e003db06a642a43db9ccbab829dbaa9))
531
- * **free-route:** record the id a keyless route actually serves ([9235bdc](https://github.com/event4u-app/agent-config/commit/9235bdc342cf360b36c2a318d67df759d6d3e153))
532
- * **install:** a pre-ledger global refresh updates untouched files instead of preserving thousands (#2590) ([601abd8](https://github.com/event4u-app/agent-config/commit/601abd83d6a9817435d481267c85c8a69d1b1ae8))
533
- * **ci:** put the SC2016 directive on the node command it covers ([029da1a](https://github.com/event4u-app/agent-config/commit/029da1a4b509efcc873fb716db4a84338d271e5d))
534
- * **tests:** pin the aging-hour notice case to midday UTC ([0d2efc5](https://github.com/event4u-app/agent-config/commit/0d2efc5a820bca0a8626e56e933c1b1a35e5ae22))
535
- * **gate:** assemble the reach self-test fixtures so prepack reads no shipped import ([839a4d5](https://github.com/event4u-app/agent-config/commit/839a4d564c4dd21aaf9d2da4805fd071ac32f69e))
536
- * **release:** a release waits for no review ledger (#2591) ([e1dde82](https://github.com/event4u-app/agent-config/commit/e1dde822d02de813349b49c23b73317bfa43b27c))
537
- * **tests:** the identity fixture carries the content ceiling too ([6a35ab8](https://github.com/event4u-app/agent-config/commit/6a35ab8a244b33b3351f0e46a4bac1220ac8d7e2))
538
- * **tests:** free route fixtures carry the content ceiling the client now requires ([bdaeb97](https://github.com/event4u-app/agent-config/commit/bdaeb972e0ade5281287c6a88c4c493b568de6e8))
539
- * **config:** the egress chunk raise names only the rows it carries ([8d8f84b](https://github.com/event4u-app/agent-config/commit/8d8f84b41055d3dd70114221ae38569a8982adc0))
540
- * **bench:** read the store precision bar as PREREG (b) states it ([7c33852](https://github.com/event4u-app/agent-config/commit/7c33852caccbac7097d7d80381a8e0de96d2533b))
541
- * **redaction:** store rows tag a digit run only where its shape is evidence ([50aa48d](https://github.com/event4u-app/agent-config/commit/50aa48d3019e0555d1948df2957c1e2e997ee67a))
542
- * **docs:** correct four texts the #2585 review found stale, pin ratification answers ([140eb36](https://github.com/event4u-app/agent-config/commit/140eb36adc4b1f6396d3edb2a4c811f55ca734a5))
543
- * **hooks:** a host rate marker sets its own source and parked_at ([d4b8475](https://github.com/event4u-app/agent-config/commit/d4b84753c0c7cc111f19d8971f81fa8f6dcdb2b6))
544
- * **council:** a stance repair never leaves a resume flag behind ([dd2860f](https://github.com/event4u-app/agent-config/commit/dd2860f4d189f1deb3476d6dac05e7c6eb1d6d38))
545
- * **council:** a base_url route member never holds a head role ([89af384](https://github.com/event4u-app/agent-config/commit/89af38437035c1daf0d3a153739374986d332b05))
546
- * **council:** shadow calls send the hand payload, not the raw prompt ([788b002](https://github.com/event4u-app/agent-config/commit/788b0029e34a6c419eaae1d58b45c2834efda263))
547
- * **council:** route members carry their content ceiling ([4ff3a8d](https://github.com/event4u-app/agent-config/commit/4ff3a8d307bb047c2282c6c6f15dd70a3326f883))
548
- * **council:** refuse a callee that holds more than one declaration ([57c3ba1](https://github.com/event4u-app/agent-config/commit/57c3ba14458288485b9cb503d4514d71f98ad5ce))
549
- * **tier-verdict:** read quality from an exact one-sided Clopper-Pearson bound ([f7383bd](https://github.com/event4u-app/agent-config/commit/f7383bd7b16f06fd78e87fb4b8d9863830320795))
550
- * **update:** leave the global installed.lock to the global install ([2a01a5f](https://github.com/event4u-app/agent-config/commit/2a01a5f785ba11698bc047f4e3da95e6d77e5fb8))
551
- * **ci:** silence the deliberate SC2016 in the egress latency step ([d104626](https://github.com/event4u-app/agent-config/commit/d10462685e34a131cfbe4c63bf5d80c6e1660480))
552
- * **report:** close the reconstruction review findings and add the secondary (c) reading ([607fe33](https://github.com/event4u-app/agent-config/commit/607fe33bbc05b3b430d32995dc1ab21016ffcc5b))
553
- * **bench:** free-hands shadow harness — retry, streak stop, window-scoped report ([1f6b85f](https://github.com/event4u-app/agent-config/commit/1f6b85f691a4f58a11f566a3c5e40df611cc67fe))
554
- * **council:** hand a route member's key reference to the self-hosted probe ([73e7bf8](https://github.com/event4u-app/agent-config/commit/73e7bf85592539ac3621b4d04b9a6c608679caa8))
555
- * **hooks:** close the review findings on the ledger index and the projection ([3158fc5](https://github.com/event4u-app/agent-config/commit/3158fc5e741b3af321db9abba0d9730c9b5bd188))
556
- * **bench:** exclude unparsed sessions and re-read the warm-worker claims ([5de579f](https://github.com/event4u-app/agent-config/commit/5de579f5a7af78cf737cb92dd811514d945ee9a3))
557
- * **council:** give the first-party route gate a roster writer, a shared root and a normalised match ([3b1ebcc](https://github.com/event4u-app/agent-config/commit/3b1ebcc71f0563f92e62c895f40ca611137f6a15))
558
- * **council:** harden the self-hosted probe memo, scratch dir, models dir and auth ([96ed61d](https://github.com/event4u-app/agent-config/commit/96ed61de0d61546c9bc771e138a09c2cd72cdd83))
559
- * **ask:** bound the shadow wait and record free exposure only when called ([32fc497](https://github.com/event4u-app/agent-config/commit/32fc4978c8dec8087464b669742e7a0e3387cddb))
560
- * **spawn-guard:** close the ratification's three non-blocking findings ([667ec17](https://github.com/event4u-app/agent-config/commit/667ec17701e61628a3c07f8da1269ac8083dd19e))
561
- * **council:** forward base_url route fields through the settings block ([e9312ba](https://github.com/event4u-app/agent-config/commit/e9312bad3de02a155e182b1c44dc137920cc74dd))
562
-
563
- ### Reverts
564
-
565
- * **subagents:** package workers load project instructions and ac-researcher inherits again ([e3f32ac](https://github.com/event4u-app/agent-config/commit/e3f32ac44a414d4e2bc25491c0ccf283004e0b3b))
466
+ * **update:** install the pinned version globally before writing the pin ([aadcb27](https://github.com/event4u-app/agent-config/commit/aadcb27b4a616532ea09377682e6d6d67b500605))
467
+ * **gates:** treat collector limits as capacities and validate health ([3993d80](https://github.com/event4u-app/agent-config/commit/3993d80baf942128f5555133982d33e28ce82141))
468
+ * **gates:** the mutation suite copies egress_normalize.ts with the engine it now imports ([f1c732a](https://github.com/event4u-app/agent-config/commit/f1c732aebb130f0b7abad74114a18f36edcf778d))
469
+ * **skills:** fit the graph_estate row into code-intelligence and regenerate the MCP inventory ([f9e0e55](https://github.com/event4u-app/agent-config/commit/f9e0e55848827c36b6d5f2cbcb27a6bb19fc7b0e))
470
+ * **gates:** treat the someone-else fixture slug as a placeholder ([a94fbee](https://github.com/event4u-app/agent-config/commit/a94fbee7948ffd210b9ebb67b992d1c5f556272c))
471
+ * **code-graph:** key registry entries per checkout so clones keep their own ([eaa4055](https://github.com/event4u-app/agent-config/commit/eaa4055a5085389205a9f7cd2509576d3f78ea44))
472
+ * **code-graph:** keep a worktree build from overwriting the main checkout's entry ([cbd8c23](https://github.com/event4u-app/agent-config/commit/cbd8c2371f61a399706a9ce8f908527e6c007210))
473
+ * **egress:** a key block's extent is read where its disguised markers were found ([462aa35](https://github.com/event4u-app/agent-config/commit/462aa3560f2c5d091d15048676238027c580cb97))
474
+ * **code-graph:** never evict a graph home a build is writing into ([b4baa0d](https://github.com/event4u-app/agent-config/commit/b4baa0d08ae32f0aad485f937e86c27053e48475))
475
+ * **lineage:** match a short-SHA or tag pin in the upstream watch ([3f002e4](https://github.com/event4u-app/agent-config/commit/3f002e4b1e673f5a68987053d5f3532baa953aa9))
476
+ * **lineage:** record a changed pin or locator on re-import ([158d9a0](https://github.com/event4u-app/agent-config/commit/158d9a04762ec3c093554a1e1b6d73430811584d))
477
+ * **mcp:** stop the no-graph answer from listing other repositories' paths ([92ab26d](https://github.com/event4u-app/agent-config/commit/92ab26db84f73048000a420b62f68e33a0cb658b))
478
+ * **code-graph:** resolve a relative remote against the repository root ([8442bc1](https://github.com/event4u-app/agent-config/commit/8442bc120b28290779d979faf2df124284420f8b))
479
+ * **code-graph:** give every clone its own user-global graph home ([65ec05a](https://github.com/event4u-app/agent-config/commit/65ec05ad836038478a4a98977c04385b3b803422))
480
+ * **code-graph:** version the estate index path and drop a section banner ([939ffd8](https://github.com/event4u-app/agent-config/commit/939ffd82fd1bd4f747e23a0c933b6276ad00ce2e))
481
+ * **lineage:** an error report carries a note even when the message is empty ([f6f2f99](https://github.com/event4u-app/agent-config/commit/f6f2f99b6b811c05d7fb3e412c360c65a5b08298))
482
+ * **update:** use the narrowed pending record when confirming a notice ([a04ab47](https://github.com/event4u-app/agent-config/commit/a04ab47427ee7bfa48332a9b3a5c32bd77a690ba))
483
+ * **hooks:** write the receipt after the notice, never before ([04cd50a](https://github.com/event4u-app/agent-config/commit/04cd50a64cdaab836c96a6a579d12b7598e79692))
484
+ * **update:** bind each receipt to the notice it confirms ([91c3bf7](https://github.com/event4u-app/agent-config/commit/91c3bf77a5945a5c92106561bebb4f608adf1eb1))
485
+ * **hooks:** a receipt only for a notice that survived into the output ([5394e2c](https://github.com/event4u-app/agent-config/commit/5394e2c3dfe5e3af3e1f1b5ac7a906e594737f71))
486
+ * **code-graph:** the SQLite twin stops carrying a second copy of the graph ([d4c19b7](https://github.com/event4u-app/agent-config/commit/d4c19b7b88f5c28556542487fe60a19056b22174))
487
+ * **code-graph:** a refresh promotes its SQLite twin and sweeps the ones a killed refresh left ([be0ecd6](https://github.com/event4u-app/agent-config/commit/be0ecd61d630c73122140d0b95e2a7e9bc041ec5))
488
+ * **update:** no session id, no pending report ([1d91d15](https://github.com/event4u-app/agent-config/commit/1d91d15fde3e4556c07c11335eb189f1dd34a8ee))
489
+ * **update:** another session's receipt never throttles a pending notice ([d292436](https://github.com/event4u-app/agent-config/commit/d292436e738a9c6153141000829001df68fd62fb))
490
+ * **distribution:** give the Copilot pointer copy its triggers stub ([6fce40f](https://github.com/event4u-app/agent-config/commit/6fce40f2b183cbed19127ef8241a61239532940f))
491
+ * **hooks:** a field of the wrong type keeps the old output ([96b2305](https://github.com/event4u-app/agent-config/commit/96b2305ffc2115a3f08abdc92bdfe7e3492e3dc4))
492
+ * **distribution:** guard both pointer copies, re-test every submitted release ([48ec18b](https://github.com/event4u-app/agent-config/commit/48ec18b57584067a58be979bd297c48db617c1b1))
493
+ * **hooks:** merge the user notice as structures, never as text ([2b41cd6](https://github.com/event4u-app/agent-config/commit/2b41cd60f3382969231489a3caf7c9e59b21b55e))
494
+ * **distribution:** make the Copilot plugin directory self-contained ([692c90c](https://github.com/event4u-app/agent-config/commit/692c90c1410561a9981d1fc93f468f0302570d44))
495
+ * **code-graph:** a path in a comment or a log message is not a read ([2be7657](https://github.com/event4u-app/agent-config/commit/2be765708d2f9e95a24ec3acbcd0546f55c22878))
496
+ * **map-viewer:** an orb that spreads, and an area list that reads ([34825dd](https://github.com/event4u-app/agent-config/commit/34825dd5b3c4bb0afdbec0d8cf1c3f721547ccf8))
497
+ * **code-graph:** map areas no longer centre on a partial or a routes file ([816d695](https://github.com/event4u-app/agent-config/commit/816d69598f8553480d41306a67696435b6df393f))
498
+ * **code-graph:** bind a static call through the class the file states ([cf3d0e5](https://github.com/event4u-app/agent-config/commit/cf3d0e5f49dea37524035776ba2361e6bcfbdbe0))
499
+ * **code-graph:** resolve C# types by namespace scope ([348b68f](https://github.com/event4u-app/agent-config/commit/348b68fb11f0d1af315076479afee7e685dd728f))
500
+ * **code-graph:** prefix Django routes with the include() that reaches them ([c39b45e](https://github.com/event4u-app/agent-config/commit/c39b45e07fcc99b01bff22abb2ed5350f8642653))
501
+ * **bench:** lift the paid-CLI daily cap in the shadow council example ([ede80d0](https://github.com/event4u-app/agent-config/commit/ede80d0598c00ee39f46e1d3a9306b894dfcc95b))
502
+
503
+ ### Performance
504
+
505
+ * **code-graph:** the estate index stops re-walking the tree on refresh ([65ce5ab](https://github.com/event4u-app/agent-config/commit/65ce5abaf07eb2dc4d8a4e8583be56deaef3e14e))
566
506
 
567
507
  ### Documentation
568
508
 
569
- * **roadmaps:** record the owner round and the council answers of 2026-10-23 ([f255228](https://github.com/event4u-app/agent-config/commit/f255228f48439cf83733535896162ccf537ca35f))
570
- * **roadmap:** give the two new verify clauses an expectation ([948233e](https://github.com/event4u-app/agent-config/commit/948233effddd60a6275eb04ec0034f2fbc6795a1))
571
- * **evidence:** ratify the raise_log correction, council round 3 of 2026-10-23 ([cb7da1f](https://github.com/event4u-app/agent-config/commit/cb7da1f8c2d747df7563999cd286a54c9eaa1ccd))
572
- * **roadmap:** close AC-1, 2, 3, 5 and 7 of the tick roadmap ([16824c0](https://github.com/event4u-app/agent-config/commit/16824c000193e87fd0a002e5fa99ed319056db43))
573
- * **roadmap:** receipts on the last six ticks ([59ec06d](https://github.com/event4u-app/agent-config/commit/59ec06df41184cea1df56fa1c082dcf094966071))
574
- * **roadmap:** tick Phase 4, 1.4 and 6.1; receipts on every new tick ([7f9509f](https://github.com/event4u-app/agent-config/commit/7f9509fdc03c080407cce6e52b4dce50bfd4f2f0))
575
- * **evidence:** replay every #2585 tick and fingerprint the main residue ([f3de42e](https://github.com/event4u-app/agent-config/commit/f3de42eff643a023ad3b14edc4460e8f97d04691))
576
- * **bench:** record the PREREG (b) store reading, 0.55 % of tree files ([342cc7a](https://github.com/event4u-app/agent-config/commit/342cc7a374b1b52dd6dea4544f335dc2c5565f3b))
577
- * **roadmap:** keep step 2.2 under the step cap ([2c28cc8](https://github.com/event4u-app/agent-config/commit/2c28cc826830d13f1810450cfba7927917c5dcf1))
578
- * **roadmap:** shorten the one-detector 2.5 reopen note under the step cap ([a336969](https://github.com/event4u-app/agent-config/commit/a3369697781104026a0122fc48de41f7072b25b0))
579
- * **roadmap:** road to a tick the shipped path earns, from inbox round 2026-10-aa ([9023428](https://github.com/event4u-app/agent-config/commit/90234285623d0727fc23e5cbd4fd568f4c6c40a3))
580
- * **readme:** move the downloads badge beside the artefact counts ([6a0c9ea](https://github.com/event4u-app/agent-config/commit/6a0c9ea156785fc861bedcf8af9488120d0eefb5))
581
- * **roadmaps:** owner rows read 'owner'; step notes trimmed under the word cap ([656a135](https://github.com/event4u-app/agent-config/commit/656a13553994a8b04b6271217d30412689ad1089))
582
- * **roadmaps:** risk registers re-reviewed 2026-10-23; owned digest regenerated ([5831666](https://github.com/event4u-app/agent-config/commit/5831666901f4b7f8dea0ee4b1f2d57ea98b4eff0))
583
- * **roadmaps:** archive the completed tier roadmap; risk registers re-reviewed ([5e46c8a](https://github.com/event4u-app/agent-config/commit/5e46c8a49afd6f320139044221a39d54d00df950))
584
- * **roadmaps:** cold-start 3.5, 6.2, AC-2 and AC-8 close; 3.6 stays open, evaluated ([b6f7142](https://github.com/event4u-app/agent-config/commit/b6f7142204ccbbfbc447ee8b0dfeb3fd2462feab))
585
- * **bench:** amend the free-hands PREREG before the first scored call ([4449316](https://github.com/event4u-app/agent-config/commit/44493165ebbeee3673ae2ad6ff4c9de6c6494fc2))
586
- * **council:** condition (c) split twice; keep it and add a second reading ([df1947a](https://github.com/event4u-app/agent-config/commit/df1947a2542d7f650a9004308ce5c16157f09d80))
587
- * **claims:** dated verdicts for the four cold-start claims ([c8028f5](https://github.com/event4u-app/agent-config/commit/c8028f5b27a72d096e4652268dda8121374ec2d7))
588
- * **evidence:** file the reconstructed reuse window and the warm-worker readings ([d38df92](https://github.com/event4u-app/agent-config/commit/d38df921bf13401c08ee0e7d6e539b75f22ef25b))
589
- * **roadmaps:** free-hands 6.2 and AC-3 — wired, harnessed, live run pending an operator ([b5d61ac](https://github.com/event4u-app/agent-config/commit/b5d61acb36fe602c8e1a9c2edb432ebd6cff3681))
590
- * **ratification:** gated hook plumbing of the #2583 rest, 2/2 ratified ([bc07604](https://github.com/event4u-app/agent-config/commit/bc07604dd44faae97d7bd4c93802506cca8d220c))
591
- * **roadmaps:** track the block-credential-reads false positive on filter expressions ([e157166](https://github.com/event4u-app/agent-config/commit/e1571668041fe58eb53a36758fe10db21fcd8da2))
592
- * **roadmaps:** record the indexed register, the real probe, the attested route and AC-6 (c)/(e) ([a9da06f](https://github.com/event4u-app/agent-config/commit/a9da06f81a39658c7a12bc049f9a096d889d07b1))
593
- * **bench:** pre-register the free-hands shadow window ([1bc9c41](https://github.com/event4u-app/agent-config/commit/1bc9c41c5dcc2ae4f6713c093e583072dd6d9936))
594
- * **evidence:** accepted evidence-type marker on the two council prompts ([45b288d](https://github.com/event4u-app/agent-config/commit/45b288d451141188177676fa80c0a8fcbd0cd3e4))
595
- * **roadmaps:** owner decisions O1–O6 and the council's three design calls ([a3c9cce](https://github.com/event4u-app/agent-config/commit/a3c9cce472ab21658f98f8f9a4acbd4240c7811b))
509
+ * **roadmaps:** drop the landed one-detector depends row from placeholders-on-the-wire ([7e19959](https://github.com/event4u-app/agent-config/commit/7e199591209d9bcd5da9f18bab4ad19e7cb230c8))
510
+ * **memory:** record the update pin split-state incident ([e1327f6](https://github.com/event4u-app/agent-config/commit/e1327f6b847d339f2ba8391a8307960389554913))
511
+ * **evidence:** the 16-check contract-and-classification ledger, provisional ([abe8e1a](https://github.com/event4u-app/agent-config/commit/abe8e1aa8d7ed134fdd5ab8a767115c97df3dcb2))
512
+ * **roadmaps:** close and archive road-to-one-detector-and-the-senders-we-own ([af2400e](https://github.com/event4u-app/agent-config/commit/af2400efc70097fe017b54aa86b1b502ebcdc412))
513
+ * **evidence:** the slice round keeps the owed item open and names the ledger (D30) ([774f577](https://github.com/event4u-app/agent-config/commit/774f5777fe30e566add131a80069fcc356f660da))
514
+ * **evidence:** put the collector slice to the council ([8b800f8](https://github.com/event4u-app/agent-config/commit/8b800f8f133cae9992b6ec6b280d35d300f18540))
515
+ * **evidence:** the degraded split converges fail-closed (D29); record the slice under 7.1 ([7a24eb7](https://github.com/event4u-app/agent-config/commit/7a24eb79d506c38decc4dd68f404e64a24fc0549))
516
+ * **readme:** use the new info banner as README hero ([49c5ea7](https://github.com/event4u-app/agent-config/commit/49c5ea72744b9ae56e755d39ed733342a5110a69))
517
+ * **roadmap:** step 2.5 under the complexity word cap, evidence in the commits and the ratification ([18dd411](https://github.com/event4u-app/agent-config/commit/18dd411796c0d833a8b9240accb828bd4e09e02b))
518
+ * **evidence:** mark the outcome-table prompt line the reference checker misreads ([fafec53](https://github.com/event4u-app/agent-config/commit/fafec539c872011cc19130ee12ea62d5a5f42783))
519
+ * **evidence:** the outcome-table round permits an experimental slice, owes the collector state machine (D28) ([1b1f853](https://github.com/event4u-app/agent-config/commit/1b1f853ca9d866ccbb9566b1c80dcc2bd8f61a9a))
520
+ * **evidence:** draft the outcome table and accepted-byte boundary D27 owes ([100ff77](https://github.com/event4u-app/agent-config/commit/100ff7762d0647e0c2d66a0192a4d49984c07cfa))
521
+ * **evidence:** an escaped descendant rewrites a file channel, not a stopped pipe ([e42607a](https://github.com/event4u-app/agent-config/commit/e42607af58b7b20061dc59acef67b75d2a0139de))
522
+ * **ratification:** the normalised senders, ratified 2/2 by the council ([3ef0ca8](https://github.com/event4u-app/agent-config/commit/3ef0ca838f8e42619e0062b8bd2d9990639e6992))
523
+ * **evidence:** the envelope round permits exploratory fixtures, owes the outcome table (D27) ([1e48f2a](https://github.com/event4u-app/agent-config/commit/1e48f2add3d78b188a830aa0951808a7f9dced40))
524
+ * **evidence:** the round-2 ratification prompt for the normalised senders ([9255f16](https://github.com/event4u-app/agent-config/commit/9255f165feead8ec3c4f0e34038899e3376c464c))
525
+ * **evidence:** draft the invocation envelope D26 owes ([8fec35f](https://github.com/event4u-app/agent-config/commit/8fec35f7def3ce88bf6625a1b9f949e7c763ac28))
526
+ * **evidence:** the protocol round permits disposable fixtures, owes the envelope (D26) ([83981d8](https://github.com/event4u-app/agent-config/commit/83981d898f54ad66a71c771f8c333535d79fc48e))
527
+ * **evidence:** draft the producer protocol D25 owes before fixtures ([dd12e80](https://github.com/event4u-app/agent-config/commit/dd12e8060b724be29ffb4ccd82384bb0c731627d))
528
+ * **evidence:** the truth-table round answered, fixtures and schema withheld (D25) ([9dc8eb8](https://github.com/event4u-app/agent-config/commit/9dc8eb8146739667cc28d0bd09c22a3fc0c9e66a))
529
+ * **evidence:** inline the src delta into the ratification prompt ([eb7f5d6](https://github.com/event4u-app/agent-config/commit/eb7f5d613d077362b5e96826c529b38afe2fe188))
530
+ * unattended upgrades verify against pinned sigstore roots ([0258ff1](https://github.com/event4u-app/agent-config/commit/0258ff1728a859a2fb181a9e364d062a6b748a4c))
531
+ * **evidence:** the ratification prompt for wiring detectNormalized into the senders ([aa08c3b](https://github.com/event4u-app/agent-config/commit/aa08c3bfbb7453a39147d73656c7102dc09580f0))
532
+ * **bench:** PREREG (f) read on the CI runner class, and AC-6 records it ([9010d6b](https://github.com/event4u-app/agent-config/commit/9010d6ba9094886973edf2ff3326511dcfc7cfa5))
533
+ * **roadmap:** a graph that follows you is complete and archived ([4305416](https://github.com/event4u-app/agent-config/commit/43054161e90197059ba09929435e1d60cab7ca59))
534
+ * **code-graph:** the usage line and CLI synopsis name the lineage and estate verbs ([8de5197](https://github.com/event4u-app/agent-config/commit/8de51974ce5444a94e7e87fec760593e702b875c))
535
+ * **roadmap:** one-detector 2.5 records where detectNormalized is wired ([31a2a48](https://github.com/event4u-app/agent-config/commit/31a2a48ca0831e53aa5e66908911f6f45c1d11b3))
536
+ * **roadmap:** phases 2-6 of a graph that follows you are done ([bfc0631](https://github.com/event4u-app/agent-config/commit/bfc06315389531d9d8231d39981e00a8bb10fc03))
537
+ * **evidence:** measure the graph home, the estate index and a foreign repo ([2459b03](https://github.com/event4u-app/agent-config/commit/2459b03949e4f1d27a1fadd9c529d8c97d8c6a60))
538
+ * **roadmaps:** regenerate the owned digest for the parked review roadmap ([7922fa0](https://github.com/event4u-app/agent-config/commit/7922fa098755d49a3ff8646163ef71b6e53ee8a0))
539
+ * **roadmaps:** park road-to-a-review-that-ends until the 20th post-cap review ([86e3342](https://github.com/event4u-app/agent-config/commit/86e3342b40e71acc28dac1ab5950c80ef5b5c154))
540
+ * **evidence:** ratification of the user channel, round 10 ([239d9ee](https://github.com/event4u-app/agent-config/commit/239d9ee3a072fbe3c983f6e1ca438823d50691fb))
541
+ * **contracts:** a notice receipt evidences the hand-over to stdout, not transmission ([c1363dd](https://github.com/event4u-app/agent-config/commit/c1363dd22f5fb81d167f0490502ce30822473d85))
542
+ * **provenance:** describe the lineage verbs and where their output lives ([17816d1](https://github.com/event4u-app/agent-config/commit/17816d1dd98b03a8a76c70de51868da9f0dbc108))
543
+ * **roadmap:** phase 7 of a graph that follows you is done ([c6064ab](https://github.com/event4u-app/agent-config/commit/c6064ab4b8220b2a5e7525d80470686891ea9ce7))
544
+ * **adr:** record the graph home beside the project graph as ADR-299 ([a2d0e29](https://github.com/event4u-app/agent-config/commit/a2d0e2996f8edfca7a98c8d89bb00793203191a9))
545
+ * **roadmaps:** drop the archived carried roadmap from the owned digest ([9451541](https://github.com/event4u-app/agent-config/commit/9451541e982d075ad6c2c8866461b9675b2ff93b))
546
+ * **roadmap:** the ADR-index verify clause parses its exit expectation ([21d6ecb](https://github.com/event4u-app/agent-config/commit/21d6ecb84898e0450c700035ca7075ee1dafa5c3))
547
+ * **roadmap:** verify clauses name what their command must produce ([81ccf44](https://github.com/event4u-app/agent-config/commit/81ccf443bc84aec2c59009155a10555f3ecc04b8))
548
+ * **roadmap:** phase 1 of a graph that follows you is done ([ba5deb3](https://github.com/event4u-app/agent-config/commit/ba5deb37c423da6ed27e701ce8e69c90e0b7452f))
549
+ * **roadmaps:** archive road-to-graph-providers-for-every-stack-carried ([1344bdc](https://github.com/event4u-app/agent-config/commit/1344bdccac0ec22df68624f5f3930b9b5d0a00db))
550
+ * **roadmap:** point the fabricated-provenance risk at the renamed ledger phase ([f474169](https://github.com/event4u-app/agent-config/commit/f4741699321ca8d631402743e3b686f3d1604dc4))
551
+ * **roadmap:** a graph that follows you, and a lineage that stays local ([325dfef](https://github.com/event4u-app/agent-config/commit/325dfefce42088bc3c92e5ea3cee51e80e54ffc8))
552
+ * **roadmaps:** claim the concern_count growth of the update-notice registration ([82708bd](https://github.com/event4u-app/agent-config/commit/82708bda308564aaa4b4a813537defd33794e97e))
553
+ * **evidence:** ratify the user channel and the update-notice registration ([7d10cb2](https://github.com/event4u-app/agent-config/commit/7d10cb2089c4d47e16940405a2463a60dbd3ae5c))
554
+ * **evidence:** re-bind the Copilot-repair review after the triggers stub ([9d86f0a](https://github.com/event4u-app/agent-config/commit/9d86f0a15191188d2a50592ff2e12eba8cd7226b))
555
+ * **evidence:** close the Copilot-repair review findings and re-bind the round ([ea5073e](https://github.com/event4u-app/agent-config/commit/ea5073e490366a248b111895a85a2adcf4d9d9a6))
556
+ * **evidence:** completion review of the Copilot plugin repair ([1646541](https://github.com/event4u-app/agent-config/commit/16465418aa278bb2ac8b91600336f718c16e601f))
557
+ * **distribution:** record the Copilot install test and its repair ([821d768](https://github.com/event4u-app/agent-config/commit/821d768e37e70f07c37752a4abe8fc90628d0674))
558
+ * **roadmaps:** close 3.1 and resolve dsse-trust-root in the council ([f4055a2](https://github.com/event4u-app/agent-config/commit/f4055a2d83f2524fa7e0e74ad7051c1cd1771543))
559
+ * **evidence:** skip declaration for the docs-only registry record ([a7b0e4d](https://github.com/event4u-app/agent-config/commit/a7b0e4d78d29d7130f469a020db5729ff1c017cf))
560
+ * **distribution:** the official MCP Registry lists the package ([aebef31](https://github.com/event4u-app/agent-config/commit/aebef314abf5650e566f55960e7a818419aab083))
561
+ * **evidence:** skip declaration for the docs-only ledger record ([d98be0c](https://github.com/event4u-app/agent-config/commit/d98be0c128fe3288e07c0428b8fdde13e0804c50))
562
+ * **distribution:** record the Docker MCP Catalog submission ([155688c](https://github.com/event4u-app/agent-config/commit/155688ce79cc9c0f9554d33a7607c68d7169a36e))
563
+ * **free-hands:** file the shadow window evidence and close the roadmap ([3239925](https://github.com/event4u-app/agent-config/commit/3239925071fffd14eba1e3c40a9ee79bc08c421e))
564
+
565
+ ### Refactoring
566
+
567
+ * **advisories:** keep the project list in the shared registry ([26d67cd](https://github.com/event4u-app/agent-config/commit/26d67cdcfcc4b13f71e9db40082a13ba6e4bf359))
568
+ * **code-graph:** route every graph path through graphHome ([89c2dbf](https://github.com/event4u-app/agent-config/commit/89c2dbf50c4b548c02e728f75eece8977358aa84))
569
+ * **hooks:** move the notice plumbing out of the over-cap dispatcher ([bf4a567](https://github.com/event4u-app/agent-config/commit/bf4a567be457dde7ad34f6467915a9f3ec663e99))
596
570
 
597
571
  ### Tests
598
572
 
599
- * **advisories:** pin the aging-hour case to midday UTC ([5412135](https://github.com/event4u-app/agent-config/commit/54121352fa8924dcf174764f84cc644d9e05824f))
600
- * **bench:** worker-resume harness over a roadmap citation audit ([e382a41](https://github.com/event4u-app/agent-config/commit/e382a419691d38140987e17846c74c329831c61c))
601
- * **bench:** measure PREREG (c) round trip on the identifier class ([86e8f46](https://github.com/event4u-app/agent-config/commit/86e8f467889c438cb1682efd38416e431254b078))
602
-
603
- ### Build
604
-
605
- * **dist:** project the host-capability manifest context ([ecd24af](https://github.com/event4u-app/agent-config/commit/ecd24af6bde6dc8a89b1dd619c8bc049063643ef))
606
- * **install:** regenerate the install bundle for the worker_resume probe ([7318dff](https://github.com/event4u-app/agent-config/commit/7318dffac580b546e42506905fe211b49aa54b09))
607
-
608
- ### CI
609
-
610
- * **bench:** read PREREG (f) egress engine latency on the CI runner class ([7f23bb3](https://github.com/event4u-app/agent-config/commit/7f23bb3813bfc736087c1604369f863bae73070e))
573
+ * **update:** independent verdict on the removed signature test; baseline the new deps ([e907746](https://github.com/event4u-app/agent-config/commit/e9077465fcfdabea82024047da777dbe56dfe950))
574
+ * **egress:** offsets around hidden and astral characters, and multilingual prose stays clean ([271c3fd](https://github.com/event4u-app/agent-config/commit/271c3fd0eb91c54411b125123afc1d6148f3f891))
575
+ * **code-graph:** call canonicalOrigin through a lambda in the forms test ([c3e4bf2](https://github.com/event4u-app/agent-config/commit/c3e4bf264996c9edda8003ed3f4d9f3468a36421))
576
+ * **update:** type the bundle fields the forging cases rewrite ([aa8f466](https://github.com/event4u-app/agent-config/commit/aa8f4667682a2c0d8349656371b903648d8a61bf))
577
+ * **code-graph:** no sender reaches the registry, the index or the lineage ledger ([73fa25d](https://github.com/event4u-app/agent-config/commit/73fa25dc4edeb930858d70c76426bbd6466312f1))
578
+ * **code-graph:** a stale root is flagged by list and removed only by prune ([678ec07](https://github.com/event4u-app/agent-config/commit/678ec0732640794f1e794c2543636d80a69c50b8))
579
+ * **code-graph:** a foreign repository stays untouched by build and map ([04ffc64](https://github.com/event4u-app/agent-config/commit/04ffc641433a0cc6408acd857574fe605e04bb5e))
580
+ * **hooks:** pin that update-notice's slot can never withhold its notice ([0c06f11](https://github.com/event4u-app/agent-config/commit/0c06f11784afb849f80b0309825609b7c610cceb))
581
+ * **egress:** move the free-tier prefix tests whole into tests/contracts ([e4a187c](https://github.com/event4u-app/agent-config/commit/e4a187c7863098850dcabcb07809eb2c3370d5b3))
582
+ * **egress:** move the credential coverage join to tests/contracts ([7593eb2](https://github.com/event4u-app/agent-config/commit/7593eb2f644b317951acd3d88e9794c00e09135e))
611
583
 
612
584
  ### Chores
613
585
 
614
- * **roadmap:** regenerate the owned digest for the new roadmap ([de05ef7](https://github.com/event4u-app/agent-config/commit/de05ef770947d5603418f3d20c2317529b85cf84))
586
+ * **roadmap:** re-review the one-detector risk register after 2.5 was wired ([d331ca2](https://github.com/event4u-app/agent-config/commit/d331ca299d6344e4e38476b9b9f7f9cbdac0e384))
587
+ * **deps:** pin the sigstore verification modules exactly ([c24617e](https://github.com/event4u-app/agent-config/commit/c24617e8b2b3fd8a47edf214a6bcd3f0542fe47a))
588
+ * **roadmaps:** regenerate the owned digest after the archival ([366ee00](https://github.com/event4u-app/agent-config/commit/366ee00ee29ddc84830cee423c4ce9e2b5ae152e))
615
589
 
616
- Tests: 32215 (+213 since 17.0.0)
590
+ Tests: 32955 (+304 since 17.3.0)
617
591
 
618
592
  # Era: pre-4.0.0 — archived
619
593