What's Changed
- ci: trigger Grok replies with /grok not an at-mention by @infektyd in #219
- Grok App reviews: REQUEST_CHANGES/COMMENT only (no LLM APPROVE) by @infektyd in #220
- chore: retire the machine-side Grok path (CI-only), preserving its reasoning by @infektyd in #224
- Serve Claude Code's plugin surface from the wire-managed tree by @infektyd in #221
- fix(audit-r0): un-hide vault.ts from grep; make timestamps un-poisonable by @infektyd in #242
- fix(health): make the three blind health tools report the drift that exists by @infektyd in #241
- Grok v2: mechanical merge trust via grok-mechanical-approve check by @infektyd in #223
- Mechanical APPROVE on gate success (autonomous-merge step 1) by @infektyd in #244
- docs(ops): pre-flight probe caveat — workflow_dispatch registration + canary-PR equivalence by @infektyd in #243
- Mechanical APPROVE moves to the relay user (App approvals do not count) by @infektyd in #248
- fix(ci): anchor the boundary test's leak gate to the default branch by @infektyd in #246
- fix(learn-gate): scan every persisted channel, not content alone by @infektyd in #245
- fix(hooks): stop SessionStart losing corrections — deliver before archiving, budget the boot by @infektyd in #247
- feat(vaults): register claude-science; repair the drifted slug mirrors by @infektyd in #257
- docs(mcp): readiness plan for the 2026-07-28 spec, with a protocol tripwire by @infektyd in #255
- fix(handoff): fail-loud on lease-store errors; atomic active pointer (#231) by @infektyd in #265
- fix(install): un-freeze gauges identity_present when layer1 arrives (#254) by @infektyd in #267
- fix(tests): resolve minni from the worktree under test (#258) by @infektyd in #262
- fix(memory): index the daemon's own vault and expire drafts past TTL by @infektyd in #256
- fix(hooks): route Grok SessionStart-parked corrections to Stop (#253) by @infektyd in #268
- fix(hooks): SessionStart compact-harvest for shared platforms (P3 #227) by @infektyd in #264
- fix(learn-gate): semanticTier observability + POLICY redaction honesty (#237) by @infektyd in #270
- fix(ci): raise Grok review max-turns 30 → 60 by @infektyd in #266
- fix(ci): pin PATH binaries in grok-review/grok leak gates (#252) by @infektyd in #263
- fix(deploy): R10 — deploy honesty and root update propagation (#232, #233, #234) by @infektyd in #261
- fix(retrieval): R7 retrieval integrity — episodic reachable, decay scheduled and in the default ordering, vector gap drained and surfaced by @infektyd in #259
- fix(memory): dual candidate_packets resolution + virtual _durable hygiene (#239) by @infektyd in #269
- fix(observability): make every degrade path visible at the call site (#226, #228, #230) by @infektyd in #260
- docs: post-campaign accuracy — sync-root, fleet partition, P0 fixes by @infektyd in #271
- docs(propagate): Grok PreToolUse comment matches live wiring by @infektyd in #272
- feat: minni sync fleet update, dual-track docs truth, App ops playbook by @infektyd in #273
- docs + plugin: multi-host honesty (wire/doctor/deny) and Grok cold-tool guard by @infektyd in #274
- fix(cli): minni sync wire Namespace needs socket by @infektyd in #275
- feat(minni): inline layer1/core.md into the SessionStart envelope by @infektyd in #282
- fix(sync): honest fleet redeploy verdict, Grok re-stamp, and deploy-by-copy enforcement by @infektyd in #278
- fix: post-merge residual converge — redaction depth, X10 status audit, docs honesty by @infektyd in #276
- chore(plugin): remove the minni_plan_* deprecated tool aliases (finish the threads dissolve) by @infektyd in #277
- fix(r8): give the recall degradation report real consumers and real tests by @infektyd in #281
- fix(episodic): backfill events predating the FTS trigger, and count them by @infektyd in #279
- fix(tests): fail bare pytest loudly on wrong-tree minni import (#258) by @infektyd in #285
- fix(ci): stop persisting the checkout token into the reviewed tree by @infektyd in #280
- fix(minnid): pin daemon models to CPU, serialize encode/predict, footprint watchdog (Fixes #284) by @infektyd in #286
- fix(handoff): close the T3 dual-channel merge gap and audit T4's traversal refusal by @infektyd in #289
- fix(plan): remove the never-emitted shelf_pulled event kind (Fixes #292) by @infektyd in #302
- fix(episodic): sync episodic_fts on UPDATE and collect stale index rows set-wise by @infektyd in #303
- fix(minnid): pin OMP/MKL/veclib threading in main(), plus torch.set_num_threads(1) (Fixes #299) by @infektyd in #300
- fix(#229): drain the memory-lifecycle queues and report them honestly by @infektyd in #305
- refactor(hooks): migrate claude-code's hook.ts onto the shared factory by @infektyd in #308
- test(db): pin the auto-commit contract at every raw _get_conn() call site by @infektyd in #310
- fix(team): align apprentice vault writer with the reader's path resolution (Fixes #298) by @infektyd in #306
- fix(agent-ping): distinguish expired-and-reaped from never-existed in getAgentPingStatus (Fixes #297) by @infektyd in #301
- fix(plan): auto-check shelf drift at SessionStart (Fixes #295) by @infektyd in #315
- fix(plan): durable journal + plan-note writes (Fixes #293) by @infektyd in #309
- fix(hooks): generalize boot-time handoff auto-ack to every platform by @infektyd in #318
- test(conftest): pin OMP/MKL/veclib threads before any native import by @infektyd in #323
- test(omp): run the #299 pin assertions in a subprocess by @infektyd in #322
- Fixes #294 by @infektyd in #324
- test(db): cover each _get_conn() call site's own code, not just its shared callee by @infektyd in #320
- fix(ci): gate honesty — fork no-op, tier overstatement, unpinned CLI (#235) by @infektyd in #304
- fix(ci): guard the Claude mention handler; remove the review check that never reviewed (#236, #240) by @infektyd in #314
- Fixes #291 by @infektyd in #333
- fix(tests): decide worktree containment on the filesystem, not on strings by @infektyd in #332
- fix(afm): surface compact_distillation's dropped-file count (#307) by @infektyd in #335
- test(db): measure the thread-locality blind spot, and audit the raw connect sites by @infektyd in #334
- fix(hook-handlers): filter vault search results before truncating to 6 (#313) by @infektyd in #338
- fix(vault): gate resolveVaultRef through the SEC-006 privacy filter (#312) by @infektyd in #337
- fix(server,task): filter/re-rank vault search before its raw-lexical truncation (#339) by @infektyd in #342
- fix(inbox): drain unusable compact_summary files (#336) by @infektyd in #341
- fix(vault,hook-handlers): add handoff_context_withheld count marker (#340) by @infektyd in #343
- feat(governance): operator opt-in auto-accept of an agent's own learn candidates (#290) by @infektyd in #344
- ci(grok): accept XAI_API_KEY as an alternative to the subscription OAuth blob by @infektyd in #350
- docs(ops): record the 60-day re-check expiry policy for accepted dispositions by @infektyd in #353
- fix(wire): dry-run bookkeeping no longer writes wired.lock into HOME by @infektyd in #357
- release: v0.5.0 — close of the 2026-08 audit remediation campaign by @infektyd in #358
Full Changelog: v0.4.1...v0.5.0