changelog · newest first
Every release, since v0.1.
From Git-native engineering memory to shared deterministic state — the whole arc, newest first.
Oct 11, 2026
v1.44.0Uninstall, and a round of fixes —
hunch uninstall removes everything Hunch installed in a repository and keeps it from setting itself up again. Agent writes can no longer change a record a human confirmed, a pull request can no longer disarm its own veto in CI, and runbooks, topic markers in markdown, Kubernetes ids and commit-provenance repair are more accurate.Sep 30, 2026
v1.43.0Memory picked for the task at hand — Each prompt now receives the records that match the files and terms it names, instead of a broad overview: higher precision and recall with less text. Session start is shorter, the verify hint points at the tests covering the change, shell commands are no longer blamed for earlier writes, and memory commits reach a protected main without a manual step.
Sep 26, 2026
v1.42.0Leaner context, trusted shared stores, sibling-fix lessons — MCP results for hunch_context, hunch_now and hunch_task are smaller, with recent tasks and project DNA now opt-in. A team store advertised in team.json connects only after hunch shared --trust. Before an edit, Hunch flags a fix applied to a near-identical copy but not the target, grounds files written through the shell, and starts faster on macOS.
Sep 23, 2026
v1.41.6Shared line-ending handling for text scanners — Markdown anchors, generated-grounding merges, hooks, managed ignore blocks, and Kubernetes manifests use shared CRLF-aware helpers. Manifest references still point to their original source positions.
v1.41.5Test fixtures avoid background Git maintenance — test runs disable automatic Git maintenance across temporary repositories, including Git calls that sanitize runtime settings. This reduces a possible teardown race while the wider fixture cleanup remains open.
v1.41.4Checks stay reliable across agent sessions — the EXP-01 test uses its declared Codex fixture even inside a Claude session, and the merge-range Git fixture avoids background maintenance that could race its teardown.
v1.41.3JSONC comments stay intact — provider setup leaves a commented config untouched and asks for a manual edit instead of erasing the comments. Configs without comments still merge normally.
v1.41.2Compacted history stays compacted — merging two state ledgers no longer brings back events both clones already compacted. Events retained by either clone still survive the merge.
Sep 22, 2026
v1.41.1JSX text keeps indexing — bare and repeated ampersands in JSX text no longer make valid TSX look unparseable, so labels such as Research & Development cannot block project indexing. Original source text and import paths stay intact, genuine syntax errors still fail, and Hunch's local runtime files stay out of Git.
v1.41.0Clearer task cards, safer worktrees — failed checks stay visible until the same command passes, long report hashes fit small screens, and hunch retire-constraint retires outdated rules while keeping their history. Capture tools catch more wrong-worktree writes, shared hooks preserve their options, hook-manager snippets stay portable, and shared-memory operations start faster on Windows.
v1.40.1Keeps the graph when parsing fails — indexing refuses to replace a healthy graph when every eligible file of a language fails to parse, and doctor reports the same failure; subscriptions request a resync when their cursor is ahead of the ledger; task reports show the complete contribution card.
Sep 20, 2026
v1.40.0Lighter on every prompt — the prompt hook prints the hunch task verify command inline and the task's start and finish round trips become conditional, the pre-edit hook stops re-sending a grounding block that nothing changed, and the native parsers load on first parse instead of at import, so hunch --version and every hook start in a fraction of the time; Kubernetes references resolve within a namespace, the grounding tools share one definition of a known path, and an install from a linked worktree keeps the repo's shared git hooks.
Sep 19, 2026
v1.39.3Keeps what you recorded — reindexing, branch merges and hunch private migrate keep edges, lifecycle moves and overlay records they used to drop; the grounding tools stop matching the wrong file; stale-lock takeover is serialized and a recycled pid no longer vouches for a dead owner; hunch task verify settles on the command's own exit and ledger reads stop taking the writer lock; and hunch doctor reports a git hook whose command is dead instead of calling it installed.
Sep 17, 2026
v1.39.2Tighter boundaries — state writes stay inside their partition, capture tokens no longer stand in for a human confirmation, hunch serve keeps internals out of errors and anonymous health checks, Codex output without an exit status no longer counts as a pass, and Windows batch-launcher arguments stay literal.
v1.39.1Safer checks, safer cleanup — constraint checks read the whole change instead of its first 60 KB and fail closed when they cannot, Codex patches are checked file by file, git hooks are no longer installed where husky or pre-commit would never run them, older .gitignore blocks are brought up to date, shared-state retries replay instead of duplicating, and hunch workspaces prune no longer deletes relanded branches, untracked work or half a step.
v1.39.0Reach, reuse, clean up — hunch serve speaks MCP over streamable HTTP, so a remote agent gateway can use shared state as a tool; the TypeScript and Python clients get readOrCompute, which reuses a statement whose sources did not move and writes a replacement with the right idempotency key when they did; hunch branches and hunch workspaces answer "what is open where, and what can I delete" across machines; and Kubernetes manifests are indexed as a graph of references.
Sep 16, 2026
v1.38.1Nothing stays open — a prompt the user interrupted is closed by the session's next prompt and its evidence still reaches the record; an agent reusing an older task id no longer reopens a task nothing would close; background-command notifications stop opening empty rows; task records no longer list the grounding files a capture rewrites, and a shared checkout anchors only commits. hunch task verify gets a 15-minute default budget, and hunch_task start works again on published installs.
Sep 15, 2026
v1.38.0Every turn counts — a task becomes memory when the turn ends, whether or not the agent reported it; follow-up prompts ("status", "next", "go") join the work they belong to as one record per episode; and work done from a shell, a rebase or a release commit anchors the record to the files git saw change. A verification whose runner died no longer freezes its task. Nothing to run, nothing to configure.
v1.37.1The ranking judges itself — the evaluation of which past tasks to show reruns whenever a task finishes, delivery switches back to "latest only" on its own if the ranked choice loses with a confidence interval once enough history exists, and hunch now prints the current verdict. Nothing to run, nothing to configure.
v1.37.0The right past work, with reasons — the tasks an agent sees before editing a file are chosen by relevance, not recency alone: same file, dependents, files that change together, shared rules, what went wrong, what was verified; each line says why it is there. A task that re-verified a file supersedes the older ones, hunch task rank-eval measures the selection against history with a confidence interval, and commit-time output is quiet.
v1.36.0Agents inherit each other's work — before an agent touches a file it sees the last three finished tasks there: what they received, applied, saved and verified, and whether a rule was violated, delivered next to the invariants in hunch_context, the pre-edit hook and hunch context. Verification commands run on Windows again (npm, npx and other launchers), a command that cannot start says so, and the evidence view is rendered on demand instead of written for every prompt.
Sep 14, 2026
v1.35.0Finished tasks become graph memory — the work an agent did is remembered in the repository like a decision: what Hunch delivered, what the agent applied, saved and checked, and which files it touched, visible in search, hunch why, hunch task list and the VS Code Contribution view, including tasks finished on another machine. Native tasks are titled from the prompt, and task reports on Windows no longer split by drive-letter casing.
v1.34.0Quiet update notices and tasks routed to the right worktree — installed users learn about a newer release without any command waiting on the network, a fresh clone reports its untested state honestly, and native task reports follow the exact worktree that opened them. Product documentation is back in the public repository. Tagged but superseded before npm publication; included in v1.35.0.
v1.33.0Inspect and share state with explicit access and sources — a read-only browser view, exact field citations, record audiences, sourced conventions, state CLI, key-bound credentials and a repository-built Python client. Upgrade all servers before enabling new access controls. Setup and upgrade guidance →
Sep 13, 2026
v1.32.8Updates repair hooks and preserve user settings — legacy launch commands are repaired without changing unrelated settings or enabling disabled hooks. Codex update guidance explains command trust through /hooks and starting a new session.
v1.32.7Codex hooks and MCP findings preserve honest provenance — native command matchers cover Bash and PowerShell, integration health requires explicit failed-tool evidence, commit handoff waits through a transient owner release window, and finding captures remain advisory agent testimony until a human explicitly authenticates them.
v1.32.6Codex shell hooks report failures honestly — native command matchers cover Bash and PowerShell, while integration health requires explicit failed-tool evidence instead of treating every PostToolUse delivery as a failure.
v1.32.5Memory writes and workspace actions stay safe — concurrent updates respect shared-store locks, interrupted writes preserve complete files, and integration updates preserve malformed configuration for repair. The editor companion keeps actions in the right workspace and launches reliably through Windows command shims. Guard messages now distinguish a review requirement from a demonstrated violation.
v1.32.4Tool calls stop failing silently — a release cut no longer points hooks and the MCP server at a version npm cannot serve, and hunch doctor names such a pin; a hook that fails says so in one line instead of nothing; Codex gets native lifecycle hooks; the contribution card has a home in the VS Code Contribution view and the terminal status line, and prints on stop only when there is something to show; the MCP server exposes the everyday tool set by default.
Sep 12, 2026
v1.32.3One current statement per subject, and a flush that cannot freeze — a second current summary on a subject must name the one it replaces or is refused with it named; a memory commit is bounded in time and never repacks inside a served write; both found by a half-year emulation of ten agents.
v1.32.2The lesson announces itself once — the first time a lesson reaches a task the agent, and the person watching, see one line saying what was recalled; policy checks that cannot run say exactly why in one block instead of ten; and memory drift on a vanished file now fails the release gate.
v1.32.1Task reports survive real use — a long check can be retained with a caller-set budget instead of timing out; the completion summary an agent receives now fits the host's round-trip, with the full evidence one command away; and hook capabilities are marked verified only from events the host actually delivered.
Sep 11, 2026
v1.32.0See what Hunch contributed — each task ends with a short contribution card and a local evidence view: the lesson recalled, what the agent says it applied, whether the lesson's own rule held on the changed files, the command Hunch observed, and what was saved for the next task. Grades stay separate; nothing is upgraded by prose or by an unrelated passing test.
Sep 10, 2026
v1.31.0Automatic review memory, with the initiating agent — review discussions become scoped advisory rules without manual selection or wording. Uncertain cases stay visible, repeat runs avoid duplicate work, and agent tasks stay with their initiating provider instead of switching accounts when another CLI is available.
v1.30.0Review lessons reach the next edit — selected PR review lessons become source-linked rules delivered when their files are edited. Replay checks verify the recorded state, while human corrections retain authority over agent suggestions.
Sep 9, 2026
v1.29.0The chain, closed — a receipt now names what it rested on (the decision it implements, the change proof for the shipped revision, the incident it answers) and a commitment is closed by the receipt that fulfilled it, so an incident raised in an organization drawer is answered by an engineering decision, a shipped change and a verified receipt every agent can follow; merge lag on the grounding block is a warning with a post-merge refresh, not a release blocker; and the site, README and package speak one language: Hunch competes for the deterministic state layer from the organizational side.
Sep 8, 2026
v1.28.0Many agents, one subject — one read across every drawer a key opens; a supersede of an already-closed record is refused naming the current one, so two racing writers can never leave two current records; receipts, commitments and derived state are searchable and delivered by subject.
v1.27.0The contract learns from its first writers — a refused idempotency key now names the differing fields and the way out; a write result returns the record as stored; a new records verb fetches records by id, grants first, over the store, MCP, HTTP and the typed client. Each change came from a defect a real agent hit on the live pilot.
v1.26.2Served partitions commit, pin, and answer — served writes now commit (the write lock was blocking the auto-commit quietly); hunch mcp --root pins the MCP server to a served partition so a second agent on any repository reads the same drawer; a read carries the referenced records and renders the state of record, so an agent answers from it without a second lookup. All three found on the first live pilot run.
v1.26.1serve init honors its own options — in 1.26.0 hunch serve init --config <file> --port <n> silently wrote the default config into the current directory with the default port, because the parent serve command claimed the values. Fixed, with a regression test that runs the CLI from another directory. No server, binding or contract code changed.
v1.26.0The state layer, served — hunch serve hosts organization, team, user and repository partitions over HTTP on loopback with the contract's three verbs plus capabilities and health. A served partition declares the scope it is in .hunch/partition.json, so user and organization state needs no overlay; the bearer token resolves the principal and grants come from the config only. Writes run under a cross-process write lock; a typed client ships as @davesheffer/hunch/state. This folds the separate Hunch Memory service into Hunch.
v1.25.0The state contract ships — nuryel.state/1 is the one contract every orchestrator and agent speaks to organizational state: read under a delivery receipt, write with provenance and an idempotency key, subscribe to an ordered change stream. Five new facets — action receipts, commitments, derived state with dependencies, entities, relationships — are registered additively, with a git-native per-scope change ledger, and bound over MCP as nuryel_read, nuryel_write, nuryel_subscribe and nuryel_capabilities. Ids are derived, replays return the original, a second live decision per topic is refused. Legacy stores load unchanged.
Sep 6, 2026
v1.24.0One command keeps Hunch and its harnesses up to date — ask an agent to update Hunch, or run hunch update, to install the latest release and align every configured harness in the current repository. Preview with --dry-run and reconnect active sessions afterward. The restored DNA hero is now saved in the repository so future site deployments preserve its design.
Sep 1, 2026
v1.23.2The public site moves to hunchmemory.com — the package, plugin and MCP registry manifests now point at www.hunchmemory.com, titles use the two-word “Hunch Memory” form, and the site ships a generated sitemap and robots.txt. No runtime change since 1.23.1.
v1.23.1The change-proof contracts actually ship — the trusted release workflow refused the 1.23.0 tarball because its package-path allowlist predated the change-proof schema, fixture and type entries. The allowlist now admits exactly those paths, and the test suite executes the workflow's own allowlist against npm pack --dry-run so the mismatch fails before a tag exists. No runtime code changed.
v1.23.0Exact changes carry native semantic proof — hunch prove and the hunch_change_proof MCP tool emit one canonical hunch.change-proof/1 artifact binding exact Git change identity, repository and Project DNA revisions, base/result semantic graphs, relevant decisions and constraints, blast radius, conformance, the strict Change Gate result and explicit omissions/unknowns. Publication-safe derivation excludes private-overlay records, the package exports the seal validator with a versioned JSON Schema and sealed fixture, and the proof grants no execution, CI, deployment, merge, ranking, promotion or policy authority.
v1.22.3Project DNA feedback keeps receipts — a separate, content-addressed outcome contract now binds the exact Memory delivery receipt, profile and snapshot, role-shaped traits, downstream artifact and Project Match assessment. Project Match remains non-causal: automatic outcomes can say only unknown, and classified signals require explicit-human or independent-review evidence. Contradiction and staleness create advisory review work only; feedback cannot change ranking, mutate profiles, promote knowledge or grant authority.
v1.22.2Cold graph refresh stays inside the budget — private/shared memory publication no longer repeats identical repository-publication proofs between a completed merge and the guarded push seam. The push helper still re-proves source isolation and remote identity immediately before publishing. Hunch Memory's 750-record ORC pilot completed in 8.85 seconds and ORC's fresh-process Project DNA retrieval completed in 7.80 seconds, both inside the strict 10-second budget, while all 45 overlay and sync guards remained green.
Aug 31, 2026
v1.22.1Cold graph refresh fits the strict budget — exact-commit scans now validate immutable Git blobs once and hydrate them in bounded batches without relaxing per-file safety or repeatability. On ORC, the scan fell from 41.0 seconds to 3.0 seconds, the complete cold path through a separate Hunch Memory server took 5.0 seconds, and ORC retrieval completed inside its strict 10-second budget. The repository integration also adds native Windsurf lifecycle hooks.
v1.22.0Project DNA learns from authorized collaboration evidence — Hunch can now derive repository-native vocabulary and contribution guidance from bounded pull-request and review evidence supplied by an authorized host. Every batch is canonical, sealed, tied to an exact Git revision, and raw collaboration text never enters the profile. The public typed library contract lets cross-repository consumers transport and verify that evidence without changing the deterministic fallback.
v1.21.1The agent speaks the repository's language — Project DNA now gives Hunch a sealed, revision-specific profile of how a repository communicates and works, then delivers a compact evidence-backed slice through normal context. CLI and MCP surfaces expose the profile, explainable Project Match checks, and drift without promoting observed style into policy. The patch also keeps installed Claude hooks portable and replaces legacy Hunch hooks without duplicating or disturbing user hooks.
Aug 29, 2026
v1.20.2Snapshot deletion is durable without risking source — private and shared memory sync now carries stale JSON record deletions only after proving the overlay is a standalone repository distinct from protected code. Public deletion, local configuration, derived artifacts, non-JSON paths, and anything outside the exact Hunch subtree remain fail-closed.
v1.20.1Reviewed landscapes stay current safely — a complete reviewed Engineering Landscape can now be re-reviewed at a newer exact Git revision. Hunch replays the prior immutable discovery, proves the stored bytes and repository identity, and replaces only proven adoption records; partial selections, hand edits, forged review IDs, missing history, same-revision conflicts, and foreign repositories remain fail-closed.
Aug 28, 2026
v1.20.0One verified memory path from reason to result — reviewed repository structure and role-shaped engineering context now travel in one native, content-addressed envelope; the exact resulting code change can be bound to later usefulness evidence without turning that evidence into ranking or authority. PHP and existing ADR corpora join the same graph, long-lived team clients recover after transient remote failures, and generated assistant instructions match the MCP schema they document. Version 1.20.0 is the stable release on npm's latest channel.
Aug 26, 2026
v1.19.0Release evidence where people install — GitHub, npm, and the public site now lead with the preregistered correction-search receipt and its limits: 3/12 to 6/12 changed-declaration coverage, 8/12 to 10/12 correct-file coverage, and 41.9% less inspection for the same five hits. Version 1.19.0 is the stable release on npm's latest channel.
Aug 25, 2026
v1.19.0-rc.1Evidence-bounded correction search — hunch shortlist preserves its flat top five while adding file-anchored semantic declaration families and an eleven-declaration progressive queue. Execution and intervention receipts remain annotation-only because fresh transfers did not establish them as reliable exact-owner signals; rejected rerankers cannot silently change production ordering.
Aug 22, 2026
v1.18.1Deprecated ADRs no longer invent successors — hunch import-adr now distinguishes a bare deprecated lifecycle from an explicit replacement. A named successor still closes the decision window; without one, Hunch keeps the imported record visible as advisory memory, preserves the raw lifecycle in provenance, and emits a review warning instead of fabricating history.
v1.18.0YAML and Helm enter the graph — YAML anchors and aliases now produce truthful reference edges, while Helm define, include, and template relationships resolve only inside the nearest chart. Templated YAML and .tpl helpers remain indexable before rendering without forgiving invalid ordinary YAML or mistaking GitHub Actions expressions for Helm. Root-level components now own exact files instead of a repository-wide glob, and symbol-index attribution keeps overlapping synthetic YAML/Helm symbols distinct. This release also begins the Engineering Landscape Graph as an additive, versioned resource/relationship view: exact-revision package and Git-remote discovery emits evidence-bearing candidates without credentials, local paths, silent authority, or orchestration.
Aug 18, 2026
v1.17.0The projection notices when it rots — an exported ADR corpus is now held to the same standard as the wiki: a content-hash manifest (adopted on first hunch export-adr, silent where absent) feeds three new drift kinds — madr-stale (the decision moved), madr-edited (a human changed a generated file the next export would eat), madr-orphan (a public artifact whose decision left the public graph — a leak shape, and it says so) — each with its own hunch heal section, because they need different human fixes. Once adopted, the corpus refreshes automatically on the post-commit sync, so staleness is usually fixed by the machinery that would have reported it. Edit protection is keyed by content, not file name — per-export renumbering shifts names, and a name-keyed check destroyed hand edits twice over (overwrite and sweep) before review caught it; the regression tests were watched failing first. Also: retrieval now ranks recorded intent above code symbols that merely share the query's vocabulary — a bounded prior, never an exclusion — lifting the curated benchmark's Recall@10 from 70% to 90% (MRR 0.402 → 0.575); HUNCH_MEMORY_PRIOR_SHIFT=0 disables.
v1.16.0The MADR bridge — repos that already keep Architecture Decision Records get a populated graph on day 1: hunch import-adr reads an existing MADR or Nygard corpus deterministically — accepted decisions stay live, superseded ones close their bi-temporal windows at the successor's date, considered-but-rejected options become recorded alternatives — and re-running updates the same records instead of duplicating them. The reverse direction, hunch export-adr, regenerates the graph as a standard MADR corpus any ADR reader understands (Backstage annotation included), refuses to touch a hand-written corpus, and never leaks a private-overlay record. The graph stays the source of truth; the markdown is a disposable, regenerable projection.
v1.15.0Go support — Go repositories now index into the same symbol and dependency graph as TypeScript and Python: one registry entry, no engine changes. Structs and interfaces classify as the kinds blast radius and conformance predicates key on, type specs and aliases both land, and Go's dominant package-qualified call form (fmt.Println) is filtered through a stdlib allowlist so it never fabricates edges to same-named repo symbols. Imports resolve through go.mod's module path to exact package directories — a wrong dependency edge is worse than a missing one, so nothing is guessed. The grammar ships prebuilt for every supported platform and rides the same per-process loader isolation as the other languages.
v1.14.0Context arrives with its graph neighborhood — retrieval used to stop one edge away from a match, so a structurally relevant record two hops out never reached the payload. Delivery now walks the memory graph within a bounded, deterministic radius — depth decay, hard node and token caps, and external-hub exclusion keep the fan-out honest — lifting the curated retrieval benchmark's Recall@10 from 81.8% to 90.9% without changing the response contract. Also in this release: retired and closed constraints no longer surface among Top invariants in grounding; MCP auto-commit resolves its repo root per call, so a mid-session worktree switch can no longer commit memory into the wrong tree; and the release gate no longer misreads an unstaged-only change as source drift.
Aug 15, 2026
v1.13.1MCP delivery receipts arrive as structured data — hunch_context used to flatten the canonical delivery envelope into prose and never record its own delivery, forcing orchestrators to scrape IDs and metadata from text while hunch served stayed empty. The MCP tool now advertises an output schema, returns the complete envelope in structuredContent alongside the backward-compatible brief, and receipts exactly the records it actually delivered — including rank, reason, currentness and token cost. Budget-omitted and stale records are never counted, and a receipt write can never block context.
Aug 13, 2026
v1.13.0Truthful, provenance-checked delivery envelopes — CLI, MCP, and edit hooks now deliver memory through one deterministic envelope. Every candidate is checked for currentness, ranked into the same hard context budget, and either delivered with an exact reason or reported as omitted; active blocking constraints are never silently lost to a small caller budget. The local receipt ledger now records the exact delivered ID, rank, delivery reason, provenance status, and estimated token cost, while existing ledgers migrate additively. Documentation, decision, and retired-code grounding also compete inside that same budget instead of overflowing after packing.
Aug 12, 2026
v1.12.2Grounding that never arrived on Windows — on Windows, the hooks hunch init writes were quoted in a form only a Unix shell accepts. PowerShell — which VS Code, Cursor and Windsurf use to run them — read the first word as a piece of text rather than a command, so every hook died in the parser before Hunch ran at all. Nothing blocked, nothing warned: the assistant simply worked without the graph, session after session, and the one place that would have said so was the hook that never started. The commands are now written in a form PowerShell, cmd and sh all accept, and re-running hunch init replaces the broken entry instead of leaving a duplicate beside it. The same platform was also quietly costing you Architectural Conformance: a Windows path written the idiomatic way — String.raw`C:\Users\…` — is ordinary TypeScript that the parser behind hunch conform rejects, and because that scan is deliberately all-or-nothing, one such line took conformance down for the entire repository. Real syntax errors still fail it; the tolerance is declared per language and scoped to the exact shape the grammar gets wrong, so nothing else was loosened to buy it. And the release checks now include drift measured the way a fresh clone sees it — the blind spot that let all of this go unnoticed.
Aug 10, 2026
v1.12.1Memory that keeps receipts — memory that is never delivered is memory that doesn't exist, so Hunch now keeps receipts: every grounding injection and every helper-agent briefing lands in a local ledger, and hunch served reads it back — what reached an agent, how often, and which in-force records never have (that's where compaction starts). Helper agents now get briefings shaped to their job: explorers open with the component map, planners with live decisions and what each already rejected. The release gate stopped failing itself: memory commits landing mid-run, its own regeneration, and its own leftover receipt no longer read as source mutation — while anything touching real code still fails hard. Two false-alarm classes died: a doc describing the proposed status no longer grades as stale, and a marker quoted in backticks is an example, not a declaration. And when a write lands in the committed public store while a private overlay exists, the tools now say so out loud — the one-line warning that would have caught a real near-leak.
Aug 10, 2026
v1.12.0Grounding that survives delegation and compaction — two quiet ways your memory stopped reaching the assistant, closed. When an assistant hands work to a helper agent, that helper started with none of your graph — session orientation never fired inside it, and a read-only helper never touches the edit hook — so it could plan against decisions you'd already rejected. Helpers now open with the invariants that must survive delegation. And when a long session compacts its context, everything already injected was summarized away while the dedup ledger still said "delivered" — the rest of the session got one-line reminders about grounding the assistant no longer had. Compaction now resets that ledger, so grounding arrives in full again. Also: the release checks now prove themselves on Windows too — five platform-only faults in the offline release verifier (quoting, tar, process-group, and stdio-capture semantics) were found and fixed by running the full gate where CI never had.
Aug 9, 2026
v1.11.0A rule only blocks you if you actually signed it — until now, an assistant could turn something it believed you'd said into a hard rule that blocks commits across your whole repository, and that rule was recorded as if you had personally confirmed it. Now the signature has to be earned: a correction still lands the moment it's made and is still shown on every matching edit and in CI, but it can only block once you've been interviewed and countersigned it. Everything already in your graph keeps the authority it has. Also: a decision that rests on "we don't have X yet" now has to say where it's looking — under: "src" — so when that whole area is renamed or deleted, Hunch says "I can't tell any more" instead of quietly reporting that nothing's changed. One honest limit, stated plainly rather than papered over: a mistyped path still reads as absent, so re-check it when you re-attest — and prefer stating what does exist, which fails safely.
Aug 9, 2026
v1.10.8The reasons you write down actually get checked — v1.10.7 introduced premises: the checkable reasons a decision rests on. The tool that records them described the wrong shape, so the check was quietly dropped on the way in and the premise was stored as a plain note — one that can never go stale, and therefore never asks you anything. A decision could sit there resting on a reason that stopped being true, looking perfectly healthy. Fixed, with a test that fails if the check is ever dropped again. Also: an unreadable clock now counts as "can't tell" instead of "still fine" — the same rule the rest of the feature already followed; hunch heal now lists dead premises instead of reporting nothing while hunch drift reports them; and a decision you asked an assistant to record now ranks above one it drafted on its own initiative.
Aug 9, 2026
v1.10.7Memory that says who vouched for it — a decision recorded through a proper interview is now marked differently from one an assistant wrote on its own initiative. The second kind still works and is still searchable; it just never carries human authority, so it can't block your commits on its own say-so. An assistant reading a stray instruction in a file it opened can no longer produce a record that speaks with your voice — and, just as importantly, it can no longer take your signature off a decision you already vouched for by re-recording it. Also new: a decision can write down the checkable reasons it rests on — "there's no gateway yet", "reviewed until March" — and when one of those reasons stops being true, Hunch asks you about it instead of quietly deciding for itself. A dead reason never changes what a decision is allowed to enforce; it only raises the question.
Aug 9, 2026
v1.10.6Search that couldn't find your own function names — on setups without full-text search, Hunch fell back to a simpler lookup that quietly deleted underscores from your query, so hunch_record_decision was searched for as hunchrecorddecision and matched nothing at all. That fallback is the only search those setups have. Also: when two live decisions claimed the same topic, the pre-edit guard presented both as settled — and since each one lists what it ruled out, the agent was told both answers were right and each was forbidden, in the last thing it reads before writing code. A contested topic is now named as unresolved, with both decision ids and the command that settles it, because silence reads as "nothing was ever decided here" — which is how a settled question gets re-decided by accident. Plus: escalations no longer come back empty for teams whose memory lives in a private overlay, and two release-pipeline checks that could pass on the wrong evidence now read the evidence they were meant to.
Aug 6, 2026
v1.10.5A merge that quietly undid your bug fixes — if your team shares memory, closing a bug and then merging could put it straight back to open. Nothing conflicted, nothing warned you; the merge simply preferred the copy that hadn't been fixed yet, because closing a bug doesn't change any of the fields the merge used to pick a winner. A closure now survives the merge, while genuinely re-opening a bug still works. Also: a damaged search index no longer takes Hunch down with it. That index is rebuilt from your committed files and was always meant to be disposable, but only one kind of damage triggered a rebuild — any other left hunch index, query, check and doctor all failing on a raw database error, and the pre-edit guard silently seeing nothing at all, with no command left that could repair it.
Aug 6, 2026
v1.10.4Memory that stopped saving, and memory you couldn't find — a third audit round found two ways Hunch could go quiet without ever telling you. If you run the pre-edit hook at strict firmness, the very first blocked edit wrote a log file that made every later capture stop committing — the tool still said "recorded", the record still landed on disk, and nothing reached git again. And if you had installed the optional embeddings package, the reranker was throwing away most of your own decisions before you saw them: measured against this repo's 152 committed decisions, 38% were dropped from the results even when they were the single best match, and 88% when they sat a little further down. Both are fixed, and a decision now dims with age instead of disappearing. Also: a rule you record with an absolute file path is no longer silently enforced nowhere, and a failing test the model happens to label "critical" can no longer mint a repo-wide rule that blocks every edit you make afterwards.
Aug 6, 2026
v1.10.3A rejected decision no longer blocks your commits — the veto, regression, retired-symbol and conformance guards each carried their own copy of the "is this decision still in force?" test, and every copy only checked for supersession. So a decision you formally rejected kept blocking commits and kept telling your agent "don't re-add this" — and hunch review --reject couldn't stop it; only hand-editing the JSON could. All of them now share one predicate that also excludes rejected and expired decisions, while a proposed draft stays advisory as designed. Also fixed: a capture through MCP could write the same record id into both your public and private stores, which later broke topic uniqueness in a way no tool call could repair; and policy repair now heals the via binding of a must-pass-through policy after a rename, instead of leaving it pointing at the old symbol until the policy quietly stopped enforcing.
Aug 6, 2026
v1.10.2Guards that were quietly failing open — a second audit round found four enforcement paths that treated "cannot evaluate" as "complies", so a blocking rule could be denied by the pre-edit hook and then pass hunch check --strict on the very commit that broke it. All four now fail closed: rules on non-code files (CI workflows, SQL, Dockerfiles) match again, a forbidden dependency is checked against every added import rather than the first, external packages resolve in conformance predicates, and a delete-only PR no longer skips the graph-wide gates. Also: the wiki can no longer be steered into deleting files outside its own directory, wiki --private stops sending overlay records to your LLM provider by default, and construction (new Foo()) plus method-less Python classes finally appear in the graph — blast radius and hunch why were blind to both.
Aug 5, 2026
v1.10.1The audit wave — 28 defects closed in a day — a multi-agent code audit filed 29 issues against the released code; 28 are fixed here, each with a receipt and a regression test. The ones you'd feel: memory can no longer be lost to a crashed migration, an interrupted rewrite, or a torn config write; synthesis can no longer silently bill a metered Bedrock/Vertex gateway from your shell profile; non-ASCII file paths no longer slip past constraint checks; stranded git locks self-heal instead of silently wedging auto-commit; and your own hooks and slash commands are never overwritten by hunch init.
Aug 4, 2026
v1.10.0Findings — memory for what you observed but haven't fixed — a new record kind anchored to a date and evidence instead of a commit: an audit that surfaced a gap, a measured number, an incident with no code change. Findings ground future edits to the affected files automatically, ride the same search as every record, and resolve only with the fixing commit (/audit, hunch findings, hunch_record_finding). Also in this release: memory JSON stays byte-exact on Windows regardless of the installer's CRLF default, the test suite runs honestly on stock Windows hosts, and every production dependency advisory is closed at zero.
Jul 26, 2026
v1.9.4Collision-safe MCP, reproducible installs — MCP assistants keep repository roots and simultaneous decision captures isolated across projects, while generated MCP, hook, plugin, and CI commands execute the exact Hunch npm release that created them. This removes stale-global and retired GitHub-tarball failure paths without sacrificing deterministic installs.
Jul 23, 2026
v1.9.3Verified npm release receipts — fixes the executable semantic-version guard used after successful Sigstore bundle verification, so the immutable npm release closes with a content-addressed publication receipt instead of rejecting its own verifier metadata.
v1.9.2npm OIDC reaches the registry — trusted publishing keeps setup-node's required npm registry configuration, permits only its exact fixed non-secret sentinel, and still rejects every real long-lived npm credential. Open VSX verification also allows the public index a bounded three-minute visibility window. The immutable candidate, provenance, digest, and public-registry verification gates remain unchanged.
v1.9.1Open VSX-only editor publishing — the editor companion now has one explicit public home: Open VSX. Its immutable release gate validates one credential-free VSIX, publishes only those bytes, and verifies the public download digest. The accompanying npm hardening exposed setup-node's required sentinel as a follow-up release issue before npm publication.
Jul 22, 2026
v1.9.0One living engineering memory for the whole team — connect a codebase to a dedicated private Git memory repo once, and fresh clones, worktrees, CLI checks, and connected MCP assistants converge on the same decisions, corrections, constraints, policies, and proofs. Captures synchronize by default, concurrent structured records resolve deterministically, strict checks refuse stale or unverified team routes, and public-only receipts exclude the shared graph. Hunch still hosts nothing and grants no rule authority automatically. The npm package and VS Code 0.17.2 are validated as immutable artifacts before isolated publication.
Jul 17, 2026
v1.8.5npm publishing that does not expire — releases now authenticate through GitHub Actions and npm's short-lived trusted publishing credentials instead of a stored write token, while retaining a verifiable link from each public package to its source workflow.
Jul 17, 2026
v1.8.4Strict CI that stays available — Hunch guards keep running on standard GitHub Actions runners even when the host's SQLite build omits full-text search, falling back to portable keyword retrieval without weakening deterministic enforcement. Generated guard workflows pin an engine-compatible Node and exact Hunch release.
Jul 16, 2026
v1.8.3Reviewer-qualified experiments and a clearer market boundary — independent reviews begin with a plain-language comprehension check, present clearer choices, and keep target authors out of their own timed reviews. Hunch also ships a dated competitive landscape and a repeatable npm run research:competitors watch command; public positioning stays category-level and grounded in verifiable properties.
Jul 15, 2026
v1.8.2A shorter path from install to useful memory — the README is now a focused five-minute introduction instead of a full reference manual. The documentation leads with three clear paths — set up a repo, use Hunch day to day, or diagnose a problem — and the cookbook now includes a complete local/self-hosted model recipe with explicit safeguards for metered providers.
Jul 13, 2026
v1.8.1Python support — deep code-structure parsing now covers Python alongside TypeScript and JavaScript: symbols (functions, classes, decorated methods), call edges, and import/from … import resolution into component dependency edges, so hunch backfill, blast radius, and structure queries work on Python repos. Built on a new LanguageSpec registry that collapses the extractor's language gates into one entry point — adding a language is now a registry entry plus a tree-sitter grammar. Contributed by MrSampson, who also fixed the commit synthesizer: a squash-merge whose subject says "Merge …" but whose body carries the real PR description is no longer thrown away as noise (and a latent chore(deps) regex bug is gone). The "why" layer — decisions, bugs, rules — was always language-agnostic; now the structure layer starts catching up.
v1.8.0Memory that runs itself — the review queue is gone: every captured decision enters the graph as live advisory memory the moment it lands (auto-trust), and nothing gains blocking power until a human explicitly vouches. The rare decision only you can make is asked inline — hunch escalations lists topic conflicts, candidate rules awaiting review, and proposed rules ready to activate, each as a question with its resolution verb; normally empty. The new VS Code Hunch Memory panel is a source-control view of memory itself: a timeline of every move (capture · adopt · supersede · prune · repair) with click-to-diff and local revert, a Constitution section with one-click audited authority transitions (activate / demote / withdraw / retire), a strictness switch, and approve-to-push — memory auto-commits locally; publishing it is deliberately your click. Renames now self-repair the graph: decision bindings, tripwire and constraint scopes, and policy selectors heal automatically from git's own rename detection (exact matches only, zero guessing), landing as revertable timeline moves; a repaired policy asks once for a fresh proof. The VS Code surface is conformance-certified: its real spawn seam returns byte-identical policy receipts to the CLI, MCP, and CI in an executable fixture.
Jul 10, 2026
v1.7.0Subscription choice without vendor lock-in — Hunch now understands the coding-assistant CLIs available on your machine. Select Claude Code, Codex, or Cursor once with hunch provider <name>; an environment override still wins for a shell or CI run. If several subscriptions are installed and no choice has been made, Hunch deliberately stays on its free deterministic path instead of guessing whose plan to bill. The same policy now governs capture, verification, auto-review, and wiki prose, while Deep Synthesis remains an explicit multi-provider action.
Jul 8, 2026
v1.4.0The verification pipeline — delivery enforced, not hoped for — measured on real zod bugs: instruction skills installed as files were read in 0/20 sessions, and pass rates matched no-skill exactly; guaranteed delivery of the same content flipped hard-bug diagnosis FAIL→PASS on every discriminating cell (Opus and Haiku — Haiku+skill solved what bare Opus couldn't). So the operating loop — scope → evidence → change → verify → attack → report — now ships in the hooks: PostToolUse records observable facts (product edits, verify-shaped commands), Stop refuses to end a turn with unverified product edits (firm/strict only, max twice per turn — a broken gate degrades to advisory, never a lockout), SessionStart injects the loop once. Facts, not claims. No new knob — firmness governs; HUNCH_PIPELINE=0 kills. Plus a cookbook of copy-paste recipes, incl. how to write skill descriptions that actually fire.
Jul 5, 2026
v1.3.1A friendlier first hello — the README now leads with what you gain (a repo that remembers why, sessions consistent with your decisions) and says the quiet part out loud: advisory by default — nothing blocks until you say so. Same guarantees, receipts over threats.
v1.3.0Retrieval that follows the graph, not just the keywords — results now rank by what the graph knows: live decisions outrank superseded ones, human-vouched records outrank drafts, recent work outranks history — and when your query only matches a superseded decision, the topic's current decision surfaces right above it. Measured on a committed golden set: Recall@10 90→100%, MRR +14% — and that eval now gates every future retrieval change. No model in the ranking path.
v1.3.0The wiki knows what's happening — and what's next — hunch now and the wiki's now.md show recent decisions and the roadmap: record intent as a proposed decision and it appears; ship it and it leaves by itself. Renaming a component re-renders every page that links to it; --prose-heal drafts a reconciled overview on adopted docs (the deterministic corrections stay authoritative); and assistants get it all over MCP via hunch_now and hunch_wiki_status.
v1.3.0A quieter, sharper agent loop — identical pre-edit grounding no longer repeats: the full context arrives once per session, a one-line delta after (≈100× smaller on repeats), and sessions open with a graph orientation (recent + roadmap). Every blocking invariant is now content-matched — the strict gate denies the edit that actually breaks the rule, not every edit near it. Auto-drafts that duplicate a decision you already recorded are skipped before the LLM is even called, and hunch review --reject-duplicates sweeps any that slip through. hunch_context answers task phrases too, falling back to the closest graph matches instead of coming back empty.
Jul 4, 2026
v1.2.2The wiki takes over your docs — drift-gated, never rewriting them — hunch wiki renders a component wiki from the graph, and a specs ledger grades every repo markdown deterministically: ✅ grounded, ⚠ stale, ◻ unverified. A stale doc is adopted — a wiki-managed copy healed against the graph, every superseded pin re-pinned to the current decision with the correction inline — while your original is preserved untouched and the copy retires the moment you heal it. Freshness is drift, not a schedule: hunch drift names the stale pages, hunch wiki --heal regenerates only those, --check gates CI, and --private renders the full graph into the overlay repo — nothing private ever lands in the committed wiki.
v1.2.2Honest plumbing — capture replies report what the auto-commit actually did (a safety-backstop skip is no longer claimed as committed; a failed overlay push says so with a retry hint) · Node < 22.13 gets a friendly upgrade message instead of a raw ERR_UNKNOWN_BUILTIN_MODULE crash — and the edit-hook stays silent-exit-0, so an old Node never blocks an edit · reindexing preserves component enrichment (curation, raised fragility) and is byte-identical when nothing changed — no more timestamp churn in committed .hunch/ · releases publish from CI on a version-tag push, with npm provenance.
Jul 2, 2026
v1.2hunch structure — your agent greps; a grounded agent asks — agents burn grep/glob rounds every session rediscovering structure the graph already holds. One call now serves it: the repo map, a directory’s files and symbols, a file’s outline with who-calls-what, or a symbol’s exact definition site with its callers — so the agent knows exactly which file to read, first try. Deterministic, no LLM, straight from the index.
v1.1.1Claude Code plugin + the repo demos itself — install with /plugin marketplace add davesheffer/hunch → /plugin install hunch@hunch: the hunch_* tools plus /hunch:capture, /hunch:heal, /hunch:why, /hunch:fix, /hunch:fragile. And the repo now ships a curated slice of its own graph — clone it and hunch why answers on day one. Plus: runbook --find sees runbooks written out-of-band.
v1.1AGENTS.md as a drift surface — memory that gates, not just recalls — Anchor a section of AGENTS.md / CLAUDE.md / any repo markdown to a decision topic: your assistant is grounded with the current decision (and what it rejected) whenever it edits the file, and CI can fail when prose still describes a superseded one. hunch heal shows exactly what to reconcile — and never rewrites your prose.
v1.1hunch impact + hunch path — See what a change actually reaches before review — the dependent files, the invariants, the decisions concerned — and walk the shortest dependency chain between any two points in the codebase. Read-only, instant, no LLM.
Jul 2, 2026
v1.01.0 — zero native dependencies for the index — No install-time native builds, no node-gyp failures, no file-lock errors on Windows upgrades. Install is npm and nothing else. Requires Node ≥ 22.13.
Jul 2, 2026
v0.40One source of truth for memory — Every capture lands in exactly one home — shared cleanly across branches, worktrees, teammates, and agents. A fresh clone connects itself to the team's store, and hunch doctor tells the truth about where memory lives instead of silently reading empty.
v0.40Auto-commit on by default — Captures are committed to their store without being asked. Hunch never pushes or merges your code branch. Opt out per repo with --no-auto-commit.
v0.40Security — team discovery hardened — Opening an untrusted clone can never turn into code execution: the team-store pointer is validated before anything acts on it.
Jul 1, 2026
v0.39Decision-grounding — the doc≠graph spoke — The complement to Architectural Conformance: one spoke holds the code to recorded intent, this one holds the docs to the graph. The graph now resolves which decision is current for a topic — and which were superseded or rejected. Backward-compatible; existing graphs load unchanged.
v0.39Read-time grounding + drift gate — Assistants see the current decision — follow the graph, not a stale doc — before editing, and a file still anchored to a superseded decision is caught deterministically. CI-gateable via hunch drift.
v0.39One live decision per topic — by construction — The graph refuses to hold two live decisions on one topic; /capture interviews a decision to a resolved state — rationale and rejected alternatives included — before it is written; and the one case a git merge can break is caught for human resolution.
v0.39hunch heal + /capture and /heal — Read-only doc↔graph reconciliation, scaffolded as slash commands. It shows where prose and graph disagree; it never rewrites your prose silently.
Jun 27, 2026
v0.38.3Overlay auto-commit safety — Memory sync can never touch your code repo — hardened so the worst case is a skipped sync, never a surprise commit. If you use auto-commit, upgrade.
v0.38Architectural Conformance for AI code — Record the semantic architectural rules a linter can't express — layering, must-reach, dependency direction — and Hunch deterministically blocks any AI change that breaks them, citing the decision behind the rule and the bug it prevents reopening. No model in the gate.
v0.37Enforcement at a glance + grounding everywhere — hunch status shows what's armed, what's waiting on your confirmation, and what went stale — one screen. A rule taught once is held by every assistant, not just the one you taught it to.
v0.36Sharper rule matching — Forbidden-dependency rules now match what the code actually imports — a comment or string can't false-positive — and stay accurate for the file's whole life. Corrections auto-derive the right rule.
Jun 26, 2026
v0.35Content-matched constraints + symlink-safe hooks — Blocking rules fire on the actual violation and stay quiet on harmless edits in the same file. Plus reliable hook delivery on symlinked setups.
v0.34One memory across branches & worktrees — Edit memory anywhere in the repo; it's the same source of truth everywhere. No manual sync.
v0.32–0.33Seamless multi-branch / worktree memory — Linked worktrees and concurrent branches share one memory automatically.
Jun 25, 2026
v0.31Google Antigravity support — One graph now serves Google's agent IDE too — detected and wired automatically, only when installed.
v0.30Intent-conformance — The inversion: not "did this diff touch a guarded file?" but "does the code still satisfy the recorded design?" — silent drift is caught with no diff in scope.
v0.29Inline intent capture — Mark intent where it lives: a hunch-why: comment becomes a decision, a hunch-rule: comment becomes an enforced file rule.
v0.28hunch compare — multi-candidate verdict — Give it N candidate branches (several agent solutions to one task) and it ranks them by architectural fit. The "evaluate 5 solutions in 10 minutes" check.
v0.25–0.27Runbook memory — The how layer beside the why: reusable procedures distilled from real work, returned when the task recurs. Plus self-healing grounding that keeps every assistant's docs fresh.
v0.24Memory drift checks — hunch doctor flags memory that fell out of sync with the code — a smoke detector for stale memory.
v0.23Retrieval eval harness — Retrieval quality is a measured number in CI, not a claim.
v0.22Graph-augmented retrieval — Uses your code's own connections to surface the cross-file evidence plain search misses. Measured +41.7pt recall@10.
Jun 23, 2026
v0.18Deep Synthesis — Several independent readings of a change, reconciled into one more-trustworthy note. Advisory until you confirm it.
v0.17Private memory overlay — Open-source your code without open-sourcing your reasoning: sensitive records live in a separate private repo, visible to your local queries only — public outputs can never leak them. One command to set up.
v0.16Redundancy Guard — "this already exists" — A diff that re-implements something already defined elsewhere is flagged with the original's location. Advisory, tuned quiet.
Jun 21, 2026
v0.15Veto — the Decision Guard — Re-introducing an approach you rejected — the alternative that never existed in code — is caught with a receipt: what you rejected, what you chose instead. Also: relicensed Apache-2.0.
Jun 20, 2026
v0.14Causal Merge Verdict — One cited verdict per diff — BLOCK / WARN / PASS — showing the decision and the bug behind each rule, so a change that re-opens a closed bug is caught with its why.
v0.13Never Twice — corrections become enforced invariants — Correct the agent once and the rule is held against every assistant, in every future session.
Jun 18, 2026
v0.12CI Constraint Guard — A GitHub Action that comments what a PR touches and fails the check on a confirmed blocking rule. Memory that blocks a merge, not just advises.
v0.11On npm + safe strict mode — npm i -g @davesheffer/hunch. Strict mode is safe to enable on a shared repo — it only fails on what you've confirmed.
Jun 17, 2026
v0.10Windsurf support — Five assistants wired to one graph. Also: 24× faster indexing.
v0.9Time-Travel Memory + Regression Guard — Query the graph as of any commit; history is closed, never deleted. And re-introducing deliberately-retired code gets blocked.
Jun 16, 2026
v0.8Agent hooks + firmness — Memory injected before every edit; four enforcement levels, tunable at runtime.
v0.7Multi-CLI synthesis — Codex & Cursor join Claude — learning bills to whichever coding subscription you have.
v0.6Multi-assistant — Cursor, VS Code (Copilot), Codex & AGENTS.md wired to one graph.
v0.5Guardrails everywhere — Pre-commit guard, blast-radius tooling, and VS Code near-violations.
Jun 15, 2026
v0.4Blast-radius near-violations — hunch check flags rules you can break indirectly, through dependencies.
v0.3Drift repair — Stale records re-verify against the code in one command.
v0.2Failure-learning loop — Failing tests become bugs with suspects; recurring bugs are promoted into enforced rules.
Jun 14, 2026
v0.1Initial release — A git-native decision/bug/constraint graph, an MCP server, post-commit learning, auto-maintained grounding, and a VS Code extension.