github.com/zzet/gortex
v0.63.8
#1500 most downloaded on Go modules
zzet/gortex
What this package is like to depend on
Last release 3 days ago
20 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Rarely documented
notes for 10 of 119 stable releases
Nothing withdrawn
no release was ever pulled
4 months old
158 releases · first in 2026
158 releases in the last 12 months
see the full history below
Release timeline
158 releases · Apr 2026 to Aug 2026Releases
latest 60 of 158-
v0.63.9-0.20260820221759-b8b13ca70d2820 Aug 2026 pre-releaseNothing published for this version
-
v0.63.820 Aug 2026Release notes
Open source →Changelog
- 2a33f3d Bump version to v0.63.8
- ff76686 Merge main: re-base tools/list ceilings over the receipt growth
- a94e056 Merge pull request #614 from pbednarcik/fix/mcp-tool-arg-guard
- a71cbed Merge pull request #615 from pbednarcik/feat/lsp-dispatch-predicate
- 5f9de46 Merge pull request #640 from zzet/fix/homebrew-cask-preflight-stanzas
- 83645ee lsp: confirmation preserves edge provenance so gate evidence cannot decay
- 80b32a0 lsp: fall back to the permissive type gate without hierarchy evidence
- 20310c8 lsp: gate the file sweep on real dispatch relevance
- daacb52 mcp: attach the warn rider after the response decorators
- 67ad30d mcp: pin warming-path rider survival too
- 277152b mcp: reject unknown tool options at dispatch
- 26e9b62 mcp: warn on unknown tool options by default, reject opt-in
- 9449485 release: fix the homebrew cask so it loads at all
-
v0.63.720 Aug 2026Release notes
Open source →Changelog
- 0988412 Bump version to v0.63.7
- 5493a73 Merge pull request #611 from madeinoz67/feat/daemon-upgrade-skew-609
- 8705528 Merge pull request #612 from madeinoz67/feat/cask-daemon-restart-hooks
- f1f6c5c Merge pull request #631 from madeinoz67/fix/doctor-posttooluse-deny-posture
- d9c0861 Merge pull request #632 from zzet/fix/verify-signatures-repo-context
- 19a6fc6 Merge pull request #633 from zzet/feat/member-extraction
- 908a576 ci(release): stop and restart the daemon around cask upgrades
- 594ee10 feat(cli): surface daemon skew and staleness in daemon status
- da3f8bb feat(cli): warn when the connected daemon runs a different build
- 872723e feat(daemon): self-report on-disk binary drift in status
- c2c91bb feat(dart): emit class and mixin fields, enum constants, and bare setter names
- 668dfa4 feat(doctor): surface CLI-vs-daemon version skew in the environment probe
- c82f37f feat(swift): emit init, deinit, and subscript members in types and extensions
- 0756a13 fix(cli): direction-aware daemon skew remedy; pin daemon-newer case
- 824c71e fix(cli): drop dangling 'see warning' tail from the cli status row
- e8b86b9 fix(doctor): PostToolUse zero-injection is expected under the deny posture
- 5129b76 fix(localize): a name-term lane cannot seat a constructor or data member
- 6f4cc54 fix(localize): seat substantive callables ahead of constructors and data members
- 21c350a fix(localize): trade a member's window slot for its ordinary sibling below the cut
- 352131a fix(mcp): skew remedy names 'gortex upgrade', not brew-only advice
- aed0c1d fix(release): give the signature gate an explicit repo to query
- 205b2e2 refactor(version): move semver precedence compare into internal/version
- c4676ab test(cli): pin SemVer §11 prerelease precedence; silence dev-daemon skew
-
v0.63.619 Aug 2026Release notes
Open source →Changelog
- 9a2f1cc Bump version to v0.63.6
- 0e308ff Merge pull request #627 from zzet/fix/mutation-commit-receipt
- fa94836 Merge pull request #628 from zzet/fix/release-checksums-signature
- 7127a89 Merge pull request #629 from zzet/fix/gitignore-literal-metacharacters
- 6191952 ci(release): verify every published signature against its artifact
- 0cd9dcb excludes: treat regexp metacharacters in ignore patterns as literal text
- 2757802 fix(mcp): expose the disk-commit boundary when a mutating tool is abandoned
- cc86fda fix(release): re-sign checksums.txt after appending the windows entry
- 0bec99a indexer: report a repo that indexed no files instead of reporting success
- 03d2693 test(indexer): pin the reported repro — pandas' .gitignore against a real index pass
-
v0.63.519 Aug 2026Release notes
Open source →Changelog
- 088e750 Bump version to v0.63.5
- cd085c9 Merge pull request #602 from zzet/feat/localization-literal-grounding
- 96408d9 Merge pull request #603 from pbednarcik/fix/windows-lsp-answer-join
- b55b9a0 Merge pull request #604 from pbednarcik/feat/csharp-ls-solution
- 2f789fc Merge pull request #608 from madeinoz67/feat/htmx-extractor-606
- 1145b9f Merge pull request #610 from pbednarcik/fix/csharp-overload-arity
- ca7ad3e Merge pull request #613 from pbednarcik/feat/lsp-rebound-ledger
- 0b9258d Merge pull request #618 from zzet/fix/diagnostics
- c45e00d Merge pull request #620 from pbednarcik/fix/test-hermeticity
- 90a710a Merge pull request #621 from zzet/fix/codex-required-mcp-server
- 4774ad9 Merge pull request #622 from zzet/fix/temporal-allowlist-case-insensitive-match
- 0099242 Merge pull request #623 from zzet/feat/mutation-physical-evidence
- 9858342 Merge pull request #626 from zzet/fix/detect-changes-file-level
- 7133677 Merge remote-tracking branch 'origin/main' into feat/localization-close-grep-gap
- a33fd72 blame: write test fixtures with os.WriteFile instead of sh
- cb77bd4 chore(mcp): drop refactor-orphaned helpers
- d599af8 codex: bridge localization receipt lifecycle
- fa287e8 codex: install and route localization claim checks
- f660dbd codex: recognize non-prefixed localization tools
- 86bf0e2 csharp: consult arity for ordinary overload sets (#559)
- 9c3ffa9 csharp: pin argument-shape coverage for arity narrowing
- 6fc3453 csharp: stamp method_type_params on ordinary methods too
- f2d0e0f diff: report deleted, renamed, and non-symbol file changes
- d55cb8d docs(contracts): note leading-segment handling in normalizeHtmxPath
- 4fed9df docs(mcp): separate the five content-hash contracts
- f39772a explore: add task-mode terminal parity
- bdd1e93 explore: budget task outlines lazily
- b2f0b9b explore: require distinctive diagnostic literals
- 303f466 explore: widen explicit quoted literal recall
- dbe0791 feat(contracts): HtmxExtractor — hx-* attributes as HTTP consumer contracts
- 9fc2476 feat(indexer): register HtmxExtractor for html/gotmpl/htmldjango
- 2938aee feat(localization): merge bounded overlay literals
- eebc79a feat(localization): scan bounded overlay literals
- 128029b feat(localize): ground quoted task literals in ranked primary evidence
- 70da9d0 feat(localize): mine distinctive unquoted task tokens for source-literal recall
- 643138c feat(localize): seat task-named rows into the primary block across admission lanes
- 8597b57 feat(mcp): return disk-verified SHA-256 receipts from single-file mutations
- 6791c3d fix(agents): stop making Gortex a hard dependency of Codex startup
- 5b8ae73 fix(ci): satisfy tightened linters, refresh codex render golden, remove Stop hooks on uninstall
- 3e78ab9 fix(codex): collapse duplicate managed hooks
- 5f565b5 fix(codex): count hooks from every user-level file Codex reads
- 41d644a fix(codex): enforce terminal gate for every tool
- a980c5c fix(codex): harden terminal hook boundary
- b7d2952 fix(contracts): comment-aware scan, guard hardening, honest language coverage
- 6824d11 fix(contracts): normalize whole-segment template expressions in HTTP paths
- 126bbb1 fix(contracts): skip external URLs, classify template actions, tighten attr boundary, matcher test
- 4469fec fix(contracts): skip query-only hx values; pin test counts and meta
- 3c8fe74 fix(contracts): strip query before external-URL check; reject declaration actions
- 1f8a7b4 fix(daemon): read launchd service state from the domain the agent runs in
- 4e50597 fix(explore): keep task mode nonterminal
- 30dc8cc fix(explore): preserve exact source range owners
- 2a4993e fix(explore): preserve owner fold insertion order
- 0a4013c fix(explore): reserve secondary task citation
- 756ddee fix(explore): resolve scoped source citations
- 45c1edd fix(explore): retain explicit adjacency evidence
- 2853fa1 fix(graph): bound overlay localization shadows
- 8fefc32 fix(graph): drop hidden localization sentinel
- 31f731b fix(hooks): enforce bounded localization claims
- a8fa35c fix(localization): authenticate every final claim
- f6404df fix(localization): bind Markdown fences to containers
- e3ef786 fix(localization): bound overlay shadow refill
- 7375523 fix(localization): charge inspected overlay bytes
- d0b0716 fix(localization): close final claim parser bypasses
- 8fd8a2f fix(localization): distinguish claims from file syntax
- caa043d fix(localization): harden final claim parsing
- e9ef9fa fix(localization): honor request overlays
- 99c314f fix(localization): preserve adjacency evidence contracts
- 144af25 fix(localization): preserve claim identity across response
- bb373a3 fix(localization): preserve explicit claim syntax
- 697d9d6 fix(localization): preserve literal provenance through projection
- a352282 fix(localization): preserve ranked primary cohort
- 3654140 fix(localization): promote bounded direct adjacency
- 80bc315 fix(localization): propagate literal primary eligibility
- c31928c fix(localization): retain graph-resolved literal callees
- f4003b6 fix(localization): shed supplemental digest rows first
- c9dfe8e fix(localize): extend the primary block for task-named rows instead of displacing ranked seats
- ebffc98 fix(localize): mine only structurally identifier-shaped bare tokens
- 3d0e09e fix(localize): require whole-word task naming for seats and promote task-named declarations
- 3a14da4 fix(localize): scope task naming to the immediate declaring owner
- ec1f29d fix(mcp): bound implementation and owner recovery
- 5fb688a fix(mcp): bound overlay layer construction
- bc150ad fix(mcp): bound search consumption attribution
- 2faeb45 fix(mcp): canonicalize request overlay cohorts
- 5aa26ab fix(mcp): pin overlay state per request
- 0fb520f fix(mcp): use bounded extractors for overlays
- 09da1cb fix(overlay): bound request snapshots before materialization
- d048a98 fix(parser): bound subprocess extractor wire output
- 0249030 fix(temporal): match repo-local env-helper names case-insensitively
- e4ddd61 hooks: challenge unsupported localization claims once
- 8e57bba hooks: consume enforceable claim checks once
- 89c9817 hooks: fix claim trim cutset lint
- 570284a hooks: normalize structured symbol claims
- bf9fd75 hooks: preserve UTF-8 in bounded claim checks
- b865719 hooks: stub the symbol probe in the untracked-grep fallback test
- 98555e0 localization: authenticate bounded evidence IDs
- d0d8c08 localization: bound case-folded exact-name fallback
- 02d5a68 localization: bound packed body promotion
- 9afea63 localization: bound structured page outline files
- fdc0d08 localization: bound structured page outlines
- 01efee4 localization: cache node-only file declarations
- 3f34bb7 localization: cap retained task declarations
- 241b2fc localization: complete the top two file outlines
- b9b0414 localization: extract bounded bare source literals
- e829658 localization: persist terminal evidence authority
- bd2e9be localization: preserve ranked task candidates
- 7f42d66 localization: preserve task outline counts
- f760625 localization: promote packed body declarations
- da7f8c0 localization: prove qualified leaf ownership
- 3445343 localization: recover qualified leaf anchors
- e2e7caa localization: reject unsafe evidence identities
- 9c8c19e localization: remove obsolete anchor wrapper
- 3f1c3c8 localization: report bounded outline truncation
- ee29055 localization: scope case-folded anchor recovery
- 5fadae4 localization: search unanchored bare literals
- 2fac49e localization: seat bounded literal evidence in primary
- cc37f0a localization: serve bounded literal source windows
- d2f005f localization: shed low-rank outlines first
- 10d40ec lsp: accept a PATH-style list in GORTEX_LSP_CSHARP_SOLUTION
- 4a9ed41 lsp: count definition rebinds separately from confirmations
- 92a09c9 lsp: count definition-fallback verdicts as productivity yield
- f931fe2 lsp: csharp solution-pin review round
- 7febe00 lsp: env-tunable router idle timeout
- 0b53812 lsp: match server answers to nodes across path-separator spellings
- 824ca73 lsp: pin the csharp-ls solution and target the pre-restore at it
- 53fdb46 perf(explore): bound causal owner recovery
- d03b899 perf(explore): bound qualified-leaf edge proof
- 1026f15 perf(graph): add bounded adjacency projections
- 4dc58e2 perf(graph): add bounded file-node summaries
- 714e554 perf(localization): align bounded outline depth
- f93a8dc perf(localization): bound declaration projections
- 9f7faf3 perf(localization): bound exact-name projections
- f1ed2e2 perf(localization): bound file summary allocation
- 5a7f260 perf(localization): prioritize overlay literal evidence
- c251629 perf(mcp): bound AST enclosing projections
- 5067221 perf(mcp): bound localization file ownership
- 6fd456a perf(mcp): bound ranked-file exact-name recovery
- 2816cb8 perf(mcp): bound source-literal adjacency
- f455efe perf(mcp): bound typed-anchor graph projection
- 96ed1ae perf(mcp): enrich only matched AST files
- 8f71a78 perf(mcp): preserve localization match priority
- 395bcf3 perf(mcp): share bounded file-summary budget
- 35d57d3 perf(overlay): avoid missing-session write locks
- f8843db refactor(contracts): scope template-expression normalization to the htmx extractor
- 7a481ed semantic: restore gofmt alignment in EnrichResult
- 6c7e9ff serverstack: opt-in resolve-time C# LSP helper
- 1173567 style(contracts): gofmt contract.go (pre-existing drift)
- 41564d7 test(contracts): htmx consumer IDs collide with provider route IDs
- d0c7518 test(mcp): pin the mutation receipt against disk, its refusals, and confinement
-
v0.63.5-0.20260818074507-b55b9a0d604118 Aug 2026 pre-releaseNothing published for this version
-
v0.63.417 Aug 2026Release notes
Open source →Changelog
- 5f5fce2 Bump version to v0.63.4
- 65723c1 Exempt Python dunders from dead-code analysis
- 047c49b Merge branch 'main' into fix/read-file-task-boundary
- c1a39a0 Merge branch 'main' of github.com:zzet/gortex into fix/facade-target-selector-coverage
- f529e24 Merge pull request #526 from zzet/chore/drop-code-orphaned-by-sqlite-only
- c277839 Merge pull request #527 from zzet/refactor/retire-in-process-bm25
- 02bef34 Merge pull request #547 from tiendungdev/feat/guarded-file-lifecycle
- 0593575 Merge pull request #553 from tiendungdev/fix/reject-unknown-facade-container-fields
- 4d9a51c Merge pull request #554 from tiendungdev/feat/read-file-physical-evidence
- 37c6605 Merge pull request #558 from tiendungdev/fix/capability-request-shape
- ecd52d4 Merge pull request #572 from zzet/fix/read-file-task-boundary
- 3f4bafd Merge pull request #573 from tiendungdev/fix/contract-verification-paths
- 28f24d4 Merge pull request #574 from tiendungdev/fix/rename-unindexed-guidance
- 55def60 Merge pull request #575 from tiendungdev/fix/csharp-params-shape
- ad4f12a Merge pull request #576 from tiendungdev/fix/cpp-nested-qualified-calls
- 662b980 Merge pull request #577 from zzet/fix/cpp-out-of-line-member-definitions
- a8a80dd Merge pull request #579 from zzet/deps_update
- c5ed12b Merge pull request #580 from zzet/fix/rename-recovery-owner-indexer
- 7e1458b Merge pull request #582 from zzet/fix/churn-file-exists-subprocess-fanout
- ff36d80 Merge pull request #583 from zzet/fix/facade-repo-selector-cost-and-guidance
- 008e5af Merge pull request #584 from zzet/fix/physical-evidence-secret-gate-and-guard-coverage
- 3f03c6d Merge pull request #585 from zzet/fix/facade-target-selector-coverage
- 4de3e87 Merge pull request #586 from zzet/feat/agent-skills-hooks-parity
- 4633803 Merge pull request #587 from zzet/fix/opencode-user-scope-mcp-server
- c1080c8 Merge pull request #588 from zzet/fix/cache-index-health-scans
- 29e3729 Merge pull request #590 from zzet/fix/incremental-untrack-contracts-only
- 0258e46 Merge pull request #591 from pbednarcik/fix/retention-review-notes
- b40326e Merge pull request #592 from pbednarcik/fix/spool-review-notes
- c4cfe2e Merge pull request #594 from pbednarcik/perf/resolve-interior-instr
- dec8c9d Merge pull request #596 from zzet/dependabot/github_actions/actions-minor-patch-d9eba01160
- 3c48fae Merge pull request #598 from pbednarcik/perf/wal-checkpoint-spacing
- b5b39d8 Merge pull request #599 from pbednarcik/fix/windows-file-dir-column
- 1bab224 Merge pull request #601 from protereus/fix/python-dunder-dead-code
- 3c8fcd5 Merge remote-tracking branch 'upstream/main' into fix/contract-verification-paths
- f8984f8 Merge remote-tracking branch 'upstream/main' into fix/csharp-params-shape
- 6bc147e Merge remote-tracking branch 'upstream/main' into fix/pr553-maintainer-review
- 5389756 Merge remote-tracking branch 'upstream/main' into fix/reject-unknown-facade-container-fields
- 83f6356 Merge remote-tracking branch 'upstream/main' into fix/rename-unindexed-guidance
- afa75c2 Update internal/semantic/tstypes/fact_spool.go
- a71dda7 chore(agent): remove unreachable sync compaction
- d8a068d chore(config): retire repository auto-detection
- 7e1e47f chore(daemon): drop the bleve names from the status protocol
- 6750394 chore(daemon): drop the ignored backend buffer-pool knob
- d8145bc chore(daemon): drop the unreferenced overlay and router helpers
- aa4989c chore(deps): tidy checksums after search retirement
- 1dc2f28 chore(eval): drop the eval-server index cache
- 0ff251c chore(githooks): retarget the post-commit tests at the hook installer
- ead520c chore(graph): drop the never-run backend-resolver conformance suite
- 5d3516f chore(graph): drop the unreferenced graph package helpers
- 3d9ff39 chore(indexer): drop the unreferenced indexer accessors
- b00782b chore(indexer): drop the vector snapshot import/export API
- f6554ab chore(indexer): remove callerless orchestration residue
- 4eaff0a chore(indexer): remove obsolete compatibility wrappers
- b834018 chore(mcp): drop the never-populated community coupling field
- 891a9c9 chore(mcp): drop the unadopted structured-error constructors
- c091ee9 chore(mcp): remove unused facade helpers
- bd92b63 chore(parser): drop the unreferenced parser helpers
- 2e5233a chore(progress): drop the unused reporters and spinner run helpers
- a16db71 chore(progress): remove unused presentation helpers
- 28c13b4 chore(runtime): remove unused idle hooks
- 77e1db0 chore(search): drop the Bleve auto-upgrade backend
- b663949 chore(semantic): drop the test-only node matchers and edge helpers
- f45cb56 chore(sqlite): remove superseded internal APIs
- 4b9c7e1 chore(temporal): remove unused file source provider
- 0b0801f chore: drop the remaining unreferenced exported helpers
- d198e2e chore: drop the write-only residue and dangling references
- f34dddf chore: merge upstream main into guarded file lifecycle
- 734e9a4 chore: remove callerless internal accessors
- bc81e87 chore: stop naming the removed bleve backend in comments
- 9dd5c0c ci(deps): bump github/codeql-action/upload-sarif
- d20c692 docs(agents): document the new host surfaces and the ones that do not exist
- c0d2d6f docs(search): clarify native FTS evaluation behavior
- ff1ff1e docs(search): retire stale RRF and builder terminology
- 1a75bb3 feat(agents): add a GitHub Copilot CLI adapter
- d310ecb feat(agents): give Copilot CLI the skills, subagents and hook config
- 241e778 feat(agents): give OpenCode skills, commands and an enforcement bridge
- 411aa11 feat(agents): install the Gortex skills for Codex CLI
- 8b177ae feat(agents): install the Gortex sub-agents for Codex CLI
- bc7c88f feat(agents): make an instructions switch reshape every host's skills
- 42689da feat(audit): discover the instruction and skill trees Gortex now writes
- be2eb22 feat(doctor): report install state and hook activity for the new hosts
- c8891e5 feat(graph): expose structural integrity telemetry
- 38fe93c feat(hooks): add an OpenCode bridge over a shared host-agnostic core
- 201fb31 feat(hooks): add the GitHub Copilot CLI wire protocol
- 3fd5047 feat(indexer): isolate parser config and lifecycle
- 7e44615 feat(indexer): publish vectors after durable drain
- 039f677 feat(mcp): add physical file read evidence
- e21e6fc feat(mcp): add transactional file lifecycle edits
- c793584 feat(search): publish delegated vectors safely
- ce47c6e feat(sqlite): atomically replace vector corpora
- ad27d56 fix(agents): prune Hermes skills on a profile switch, and refuse an empty home
- ad7887a fix(agents): register the OpenCode MCP server at user scope
- 998f0b5 fix(bench): repoint the search-backend fixture cases at live symbols
- 18b96b8 fix(churn): stop spawning a process per file to test path existence
- ca53148 fix(ci): repair dead-code cleanup fallout
- e848772 fix(codex): bound the
codex --versionprobe with a deadline - 9b78962 fix(cpp): emit nested qualified call edges
- d698f0b fix(cpp): extract out-of-line member definitions
- bc3c68f fix(csharp): recover params parameter shape
- 0168143 fix(deps): keep Bleve compatible with Go 1.26.6
- dbc0fef fix(eval): finish the index-cache removal in the docker harness
- a58d633 fix(indexer): invalidate stale csharp params graphs
- 86c496c fix(indexer): use incremental contract cleanup on untrack
- 2b1d93c fix(mcp): anchor unindexed rename recovery
- 5f537db fix(mcp): bound unindexed rename recovery
- 9e6aa4f fix(mcp): cache index health scans
- 205d712 fix(mcp): canonicalize edit verification paths
- 06be468 fix(mcp): enforce facade repository selectors
- fe2a644 fix(mcp): fail closed on every spelling that names a repository
- e0a63ad fix(mcp): guide unindexed symbol renames
- db8ad1b fix(mcp): harden batch lifecycle commit
- cf4429e fix(mcp): harden physical read evidence
- fbd49d6 fix(mcp): harden unindexed rename recovery
- b332fb6 fix(mcp): judge the physical-evidence secret gate on the hashed buffer
- 3ac324b fix(mcp): keep agent tool list under budget
- 37a7a3c fix(mcp): let explicit file reads escape stale localization state
- ad11aab fix(mcp): narrow facade repo validation
- 429cc9e fix(mcp): preserve verification repository scope
- 7c441d7 fix(mcp): publish directly callable request shapes
- 10dfb3d fix(mcp): refine facade request guidance
- 8e8bf2c fix(mcp): reject symlinked move destinations
- 9e11785 fix(mcp): reject unknown facade repo selectors
- 6f9a54a fix(mcp): remove obsolete rename counter
- 3c953e6 fix(mcp): say why a repository selector was refused
- ab4dfd0 fix(mcp): scope contract verification paths
- f8eaa39 fix(mcp): stabilize physical read evidence
- d7ba826 fix(mcp): stop the edit facade's aliases eating another handler's vocabulary
- 5d4bf1d fix(mcp): surface unindexed rename refusals
- 9755d55 fix(mcp): verify unindexed rename declaration
- f334570 fix(search): give the null backend real identity and finish the naming sweep
- 079e6ce fix(search): keep vector-only hybrid corpora queryable
- 95e3182 fix(search): preserve native FTS normalization across restarts
- b509d84 fix(search): serialize vector publication
- 366c208 fix(search): use authoritative native FTS counts
- 9fcf8e0 fix(semantic): match Go definitions by identity
- c5aec01 fix(skills): stop double-fencing the community routing block
- fd91d06 fix(sqlite): scope vector corpus lifecycle
- a4dac00 fix(uninstall): remove Claude Code's per-community skills too
- 04cac60 fix(uninstall): remove the artifacts the new hosts install
- 11aacb5 perf(mcp): memoize the facade repository selector lookup
- ec829d6 perf(mcp): presize the physical-evidence read from the observed size
- ed3111c refactor(agents): drop the dead sentinel-append instructions helper
- bceefbd refactor(agents): extract a host-neutral skill pack
- de0eeb2 refactor(daemon): drop the retired text backend from the search status arms
- df6ad4c refactor(eval): drop the recall ranker that wrapped the retired text backend
- b6232ef refactor(eval): measure stdbench against the store-native FTS text path
- d0189de refactor(indexer): collapse the search build path onto the store's native FTS
- a3db3a4 refactor(query): drop the typo-rescue tier no wired backend implements
- 477a8da refactor(search): remove retired publication compatibility seams
- fd8f27f refactor(search): retire inactive fusion branch
- 5f2a6b9 refactor(search): retire the in-process BM25 text backend
- 046683c refactor(search): route stores without native symbol search to a null text backend
- 6d4fab0 resolver: attribute pass interior time and churn shapes
- 507ea33 resolver: note razor marker removals; make retention counters mean what they log
- 70ee51d resolver: scope page_load to the pass clock
- f9ff8c4 resolver: split commit_apply interior timings
- 3e2dded store_sqlite: bind resolved-conversion updates as one json_each relation
- 7b4e45a store_sqlite: guard the json transport against unmarshalable payloads
- c72c737 store_sqlite: normalize native separators in generated dir columns
- dddd7d8 store_sqlite: space WAL auto-checkpoints at 8k pages for index-write bursts
- ee76a7a store_sqlite: three-phase seeded reindex benchmark
- bf3a047 style(mcp): format explore fixture
- 5048657 style: gofmt the init wizard test
- 227225d test(agents): regenerate the render goldens for the widened fence
- 98f1489 test(agents): widen the render fence to hooks, generated skills and user scope
- 6f09faa test(csharp): pin params overload extraction
- d1ae1a2 test(daemon): expect authoritative native FTS counts
- 2e3cf10 test(docs): migrate retired BM25 references
- b458455 test(mcp): drive the ranking-shape fixtures from an explicit ordered backend
- 4ed7451 test(mcp): harden file lifecycle guards
- aa2fcab test(mcp): migrate rename recovery fixture off BM25
- 18b7c67 test(mcp): pin the physical-evidence confinement wiring and non-blocking open
- c942bb0 tstypes: true up spool capacity hints and page-cap/deadline comments
- 387df94 update dependencies
-
v0.63.312 Aug 2026Release notes
Open source →Changelog
- d480163 Bump version to v0.63.3
- 55ca2cd Deliver the compaction briefing through the hook that can inject it
- 37ac696 Exclude repo-local toolchain caches from the index walk
- 756aa74 Merge branch 'main' into fix/generic-call-edges-scala-go-cpp-swift
- 78a79ea Merge pull request #473 from zzet/refactor/sqlite-only-graph-backend
- c1babdd Merge pull request #519 from pbednarcik/fix/csharp-lone-member-ns-gate
- d21a449 Merge pull request #520 from aryansk/codex/sandbox-query-log-tests
- d13facb Merge pull request #521 from zzet/fix/rationale-nodes-fail-repo-ownership-audit
- c655de1 Merge pull request #522 from zzet/fix/deliver-the-compaction-briefing-through-sessionstart
- ba559af Merge pull request #523 from zzet/fix/exclude-toolchain-caches-and-throttle-shed-log
- 43d4462 Merge pull request #528 from zzet/dependabot/github_actions/actions-minor-patch-0dd9ebdc0e
- a3f2033 Merge pull request #529 from pbednarcik/fix/import-projection-path-guard
- 9aa52e5 Merge pull request #530 from pbednarcik/perf/spool-class-partition
- ebf66ce Merge pull request #531 from pbednarcik/perf/reach-adjacency-retention
- b74445c Merge pull request #532 from pbednarcik/fix/windows-store-path-comparisons
- fe48f16 Merge pull request #533 from zzet/fix/wait-for-the-context-enrich-pass-to-stop
- aaea5bf Merge pull request #535 from zzet/feat/localization-serve-source-evidence
- 6db9d8d Merge pull request #536 from zzet/fix/csharp-generic-invocation-call-edges
- 9fae0db Merge pull request #538 from zzet/fix/generic-call-edges-scala-go-cpp-swift
- 3c5fd67 Merge pull request #540 from tiendungdev/fix/memest-bounded-and-no-partial-cache
- 858c80b Merge pull request #541 from zzet/fix/counter-backed-status-and-truncation-guards
- 4478823 Merge pull request #551 from tiendungdev/fix/canonical-agents-community-routing
- de6ffb0 Merge pull request #552 from zzet/fix/mcp-embedded-fallback-opt-in
- 2bf6cd1 Merge pull request #557 from zzet/fix/lsp-resolver-helper-orphans
- 31990a8 Merge pull request #565 from zzet/fix/qualified-static-form-and-go-index-misbinds
- a1c26e1 Merge pull request #568 from tiendungdev/fix/batch-edit-discriminator
- 7ff32d7 Merge pull request #569 from zzet/fix/rerank-tokenize-unicode-panic
- 375643c Merge pull request #571 from zzet/fix/mcp-call-time-tool-filter
- 1239492 Merge remote-tracking branch 'origin/main' into refactor/sqlite-only-graph-backend
- c6f51d8 Merge remote-tracking branch 'origin/main' into refactor/sqlite-only-graph-backend
- 1d4c9d9 Normalize the remaining store-path prefix filters and guard them on Windows
- 9c9f8c9 Pin the import-adjacency retention to its production write sites
- 1024eb5 Report shed patches once per window instead of once per patch
- 7e4dd90 Serve daemon status from the per-repo counters instead of scanning the corpus
- d3fc1a5 Stop silently truncated SQL scans from passing as complete results
- 9b478aa Stop the repo-ownership audit from flagging projected rationale nodes
- b379d86 Stop the session briefing from doubling the version prefix
- d580335 analysis: normalize store paths before glob and segment matching
- af20cef chore(persistence): remove the graph snapshot store
- fcd23ff ci(deps): bump github/codeql-action/upload-sarif
- 86486a2 config: add embedded MCP fallback policy
- 72c6e65 csharp: gate the lone-member guard keep on namespace visibility
- 5dc7b58 feat(api)!: give the embedding engine an explicit store and Close
- 4132cd3 feat(daemon): render the LSP router section in daemon status
- bcda63d fix(agents): canonicalize community routing in AGENTS.md
- 36b90f0 fix(cli): distinguish a corrupt index store from an absent one in repos
- 61203d4 fix(cli): guard live embedded stores from the startup reaper
- 64d0c5f fix(cli): read the backend path the daemon actually uses in repos
- b92f1d9 fix(cli): shim the retired cache flag and reap stale one-shot stores
- d0ebbf9 fix(cpp): emit call edges for templated and namespace-qualified calls
- d6ac9f8 fix(csharp): bind same-name extension overloads by call applicability
- 95e596f fix(csharp): count the receiver argument when an extension is called statically
- d165ab9 fix(csharp): emit call edges for invocations with explicit type arguments
- 4d4f683 fix(daemon): run shared teardown on signal exits
- 597d257 fix(go): emit call edges for explicitly instantiated generic calls
- 5a3190a fix(indexer): replace the symbol FTS corpus atomically
- 8465f84 fix(indexer): write symbol FTS on the direct-to-disk cold path
- 7e7072d fix(lsp): stop resolver helpers resurrecting router-reaped providers as orphans
- 27cbbad fix(mcp): keep deferred tools callable by name
- fc35ad3 fix(mcp): keep the zero-impact warning fallback and bound the caveat probe
- 1c5d044 fix(mcp): preserve daemon-only startup safety
- a038ae4 fix(mcp): require opt-in for embedded fallback
- 381f321 fix(mcp): validate batch edit discriminators
- fa04773 fix(parser): stop reading a generic declaration's own name as a function value
- 5df55e9 fix(scala): emit call edges for calls with explicit type arguments
- 59d13d3 fix(search): stop the rerank tokenizer panicking on trailing multi-byte uppercase runes
- 5289166 fix(sqlite): fail closed on row decode errors in cursor scans
- d4ab9c6 fix(sqlite): finish the scan-error sweep and align the reindex receipt preload
- 169ab4c fix(sqlite): surface row-iteration errors in edge and node scans
- 3abde6d fix(store_sqlite): bound the repo memory estimate and never cache a truncated count
- a061b73 fix(swift): emit call edges for generic calls and ordinary member calls
- 7513af9 fix: stop two call shapes binding to the wrong target
- 694de53 graphpath: helpers for mixed-separator store paths
- 8ad8ec1 mcp: compare bridge adjacency directories on normalized store paths
- 9a4865e mcp: serve source-grounded localization pages within the same wire bounds
- 0383939 refactor(bench): run the benches against a temp sqlite store
- 4b048f3 refactor(cli): drop the one-shot graph snapshot and its cache flag
- 254e740 refactor(cli): run the intake dry run without a graph store
- f3bcccf refactor(daemon): drop the gob graph snapshot path
- 1c56bcb refactor(eval): run the eval harnesses against a temp sqlite store
- 92c7c68 refactor(indexer): drop the memory-backed warm-restart branch
- 901c2c1 refactor(mcp): compute zero-impact caveats on every backend
- 2208bba refactor(mcp): give the batch journal a direct state-dir helper
- 18ca30f refactor(serverstack)!: select the sqlite backend unconditionally
- 6f6d00a refactor(serverstack): drop the repeated backend-name check
- 65a4464 refactor(serverstack): give the one-shot server its own store
- c97d6e7 resolver: bump import-edge generation at adjacency-affecting write sites
- 9992150 resolver: invalidate adjacency retention per dirty file instead of wholesale
- 1013379 resolver: invalidate pass-scoped adjacency retention on import-edge writes
- d7c09c1 resolver: log adjacency retention fallback and size per page
- 0109987 resolver: log adjacency-retention hits per page
- 08c8929 resolver: log reachability retention stats per page
- 450e53b resolver: normalize store paths in directory-convention matching
- adae547 resolver: retain import-adjacency projections within a pass
- 65f89ae resolver: retire iteration-history phrasing in adjacency-retention comments
- 05e9ce2 resolver: skip identity-preserving rewrites in adjacency invalidation
- 2b52b0d store: match path-prefix scoping against both store path spellings
- a116989 store_sqlite: accept separator-normalized paths in import adjacency projection
- 1c1fce0 test(bench): recalibrate the fixture budgets for the sqlite harness
- 6a27c07 test(graph): fence the staging graph's construction sites
- ddfe219 test(graph): harden the staging fence and state out-edge order semantics honestly
- c8913f3 test(graph): make the conformance nil checks explicit for the linter
- 04344d4 test(graph): specify edge detachment and the persist round-trip
- 7213eff test(graph): specify read ordering, reentrancy and reindex payload semantics
- 40ccb49 test(semantic): assert no pass is active instead of polling the caller's defer
- 69774d2 tstypes: add golden snapshot test for streamed apply
- c3b8d39 tstypes: add per-class fact payload codecs
- f273549 tstypes: benchmark four-phase spool walk shapes
- cb36b0a tstypes: log apply hot cache funnel stats at pass end
- 14ce5d2 tstypes: page fact spool per class with imports side-fetch
- bd6a5a7 tstypes: stage facts into class-partitioned spool tables
- c413d2a tstypes: walk each apply phase over its own fact class
-
v0.63.3-0.20260810072637-43d4462d805310 Aug 2026 pre-releaseNothing published for this version
-
v0.63.209 Aug 2026Release notes
Open source →Changelog
- 8131df8 Add new contributors to CONTRIBUTORS.md
- 7c73428 Apply the overbroad-root refusal to ScopeForCWD's own containment arm
- a83fb13 Bind Godot res:// references instead of stubbing them external
- c5eb7ad Bind an MCP session opened above its repos to the repos it contains
- 6a2905e Bump version to v0.63.2
- d60e387 Confine the generator tools' output paths, and keep the root set fixed
- 7be71ee Cover the aliased analyze kinds in the target parity gate
- b364cb1 Describe the boundaries the code actually enforces
- 469bf1f Emit parseable JSON from gortex call --format json
- 34e1f48 Fail cmd/gortex when a test writes to the real user state
- f3a1787 Freeze the Pi nudge streak during an outage and pin the degraded contracts
- 1338af0 Isolate a test's user home the same way on every platform
- e3978af Join the analysis-generation prune before the backend store closes
- a92d18d Keep the embedded MCP fallback out of the directory it launched from
- 567f5bc Let the watcher observe its own startup handshake on macOS
- 5b64436 Lower the compact target selector on every analyze surface
- 238cefa Merge pull request #483 from zzet/fix/hook-tool-reachability-guard
- ed779ee Merge pull request #484 from pbednarcik/fix/workspace-root-session-scope
- bb7b9ba Merge pull request #489 from pbednarcik/fix/testpath-case-insensitive-markers
- e1d9104 Merge pull request #490 from pbednarcik/fix/find-implementations-edges
- 8387e5e Merge pull request #492 from pbednarcik/fix/csharp-interface-base-list
- 745f0e4 Merge pull request #494 from zzet/fix/daemon-control-plane-not-blocked-by-indexing
- 603d43b Merge pull request #495 from zzet/fix/gdscript-static-autoload-connect-resolution
- a857b18 Merge pull request #496 from zzet/fix/hooks-degrade-when-daemon-down
- 9127c1c Merge pull request #497 from zzet/fix/resume-deferred-enrichment-without-clean-head
- d503fbd Merge pull request #498 from zzet/fix/cli-call-arg-split-and-explore-json
- 7686d8a Merge pull request #499 from peterkc/fix/xdg-init-test-isolation
- 77147e4 Merge pull request #500 from peterkc/fix/topic-prefix-diagnostics
- 2417582 Merge pull request #501 from zzet/feat/localization-outline-breadth
- ca9bb19 Merge pull request #502 from zzet/fix/drain-analysis-prune-before-store-close
- 2cfeb76 Merge pull request #504 from zzet/fix/analyze-facade-target-lowering
- 63321d4 Merge pull request #507 from tiendungdev/fix/analyze-routes-repo-narrow-shared-contract
- 3c13069 Merge pull request #508 from zzet/fix/isolate-real-user-home-in-tests
- 029e11f Merge pull request #509 from zzet/fix/watcher-announces-applied-patch
- edd6fcf Merge pull request #510 from zzet/fix/mcp-untracked-cwd-session-binding
- 80fc86a Merge pull request #513 from zzet/fix/harden-daemon-attack-surface
- 3f54493 Merge pull request #515 from zzet/fix/watcher-startup-barrier-macos
- e73576a Merge pull request #516 from pbednarcik/fix/csharp-facade-self-steal
- 4f81cbd Merge pull request #517 from zzet/docs/refresh-contributing-and-add-discord
- a9976f4 Note why the unit-level target test could not see the drop
- b537ba4 Prove a target narrows the ranking, not just annotates it
- 344cd8d Refuse a git revision that git would read as an option
- ef6f9f5 Refuse a malformed analyze selector instead of ranking the repo
- 7fdb668 Refuse every selector the chosen operation cannot consume
- 58c10ce Refuse to bind a session to a root too broad to be anyone's project
- 7a05ad2 Report a repository the daemon is not actually watching
- e53ad36 Resolve GDScript calls the receiver names, and refuse the ones it doesn't
- b91e51c Resume deferred enrichment from a durable per-file ledger
- a9bf2f6 Route every home-isolating test through the shared sandbox
- 9db7501 Say why a selector was refused instead of guessing one reason
- c6ba522 Split --arg on the key separator so values may contain :=
- 1e35efc Stand down per-call hook enforcement while the daemon is unreachable
- c13e7f4 State what the startup barrier actually guarantees
- 0858a07 Stop diff handlers falling back to the daemon's own working directory
- 8c93913 Stop the HTTP surfaces from being reachable by anyone who can route to them
- c699ae9 Update CONTRIBUTING.md
- 38cbf85 Verify the user-state sandbox on the platform it exists for
- f56e71d Write down where the user, not Gortex, is carrying the risk
- 939fe6a csharp: emit interface base-list extends edges
- 79c0e9a csharp: review round — claim self-typed-field recursion, stamp cross-repo exact-type origins
- 0e5a92f csharp: stop member calls from binding to the calling method itself
- 014769c daemon: keep the control plane answerable while indexing runs
- 059a299 daemon: resolve workspace-root cwds to their contained repos' workspace
- c3edae6 fix(analyze): let the handler decide repo visibility for a route row
- 7756657 fix(graph): exclude topics from prefix diagnostics
- b306cee fix(indexer): announce a point patch whose graph mutation already landed
- 0fe058f indexer: pin case-variant workspace-root resolution
- e7b2d31 mcp: clamp workspace-root sessions to their workspace end to end
- 7605435 mcp: fill find_implementations' GCX edges section
- 50f0a52 mcp: guard that every hook-dispatched tool still resolves
- c3f9d13 mcp: index a refining page's files even when ranking elects no leader
- 061f01a mcp: index the other files a refining page's rows came from
- b37bf06 mcp: keep the declarations a task names when an outline elides
- 12941b6 mcp: leave half a file's index to the file itself
- dc3cac4 mcp: make the outline floor reachable on a page that filled its budget
- c56400b mcp: shrink a refining page's outline instead of dropping it
- 19ba365 mcp: stop the further-file indexes from starving the leading file's depth
- 388ab98 mcp: undo a detail trade that did not save the index
- 71c2238 testpath: match directory markers case-insensitively
-
v0.63.107 Aug 2026Release notes
Open source →Changelog
- 6cb6fe6 Allocate evidence depth to the leading file in localization pages
- dd15ec0 Anchor localization on the symbols and ranges a task spells out
- abb9ad9 Anchor task tokens that exactly match indexed symbol names
- 03e246f Apply rename_symbol edits to disk instead of only planning them
- aceb506 Attach a bounded file outline to refining localization pages
- 3710daf Bind Godot autoload singleton calls to their declared script
- 4f2d169 Bump version to v0.63.1
- ffa8a47 Carry graph results in hook deny responses
- 0422f27 Detect a C++ header's language from its content, not its extension
- 7a5d497 Extract Dart named, factory, const, and redirecting constructors
- 4585d65 Extract free template function definitions in C++ headers
- 9d381ee Extract named function expressions in JavaScript and TypeScript
- 3be8651 Fall back to text search when an exact symbol lookup returns nothing
- 13823e0 Ground primary answer rows and prefer provenance-linked homonyms
- 43aa6c9 Keep the bleve dependency set on the pre-1.4 index API
- 348ebf0 Localize the graph-proven cause behind a reported symbol
- 32f8bf3 Merge branch 'main' into fix/csharp-member-access
- b7f66ca Merge pull request #462 from zzet/fix/gdscript-receiver-aware-call-resolution
- a27e61d Merge pull request #466 from pbednarcik/fix/csharp-this-base-calls
- b9c3ac8 Merge pull request #467 from zzet/fix/bound-daemon-memory-hot-paths
- 76b794d Merge pull request #468 from zzet/fix/rename-symbol-applies-edits
- bd58cdb Merge pull request #469 from zzet/fix/localization-contract-directed-read-release
- 0d6fd76 Merge pull request #470 from zzet/fix/surface-unresolved-calls-tscn-and-dockerfile-indexing
- 29a22a8 Merge pull request #471 from zzet/update_deps
- a144e98 Merge pull request #475 from pbednarcik/fix/csharp-awaited-receivers
- 43d5a11 Merge pull request #476 from zzet/feat/localization-evidence-depth
- 58535a6 Merge pull request #478 from pbednarcik/fix/csharp-record-members
- fcab495 Merge pull request #480 from zzet/fix/hook-tracked-repos-from-config
- c1088d6 Merge pull request #481 from pbednarcik/fix/csharp-record-positional-props
- 468ef03 Merge pull request #482 from pbednarcik/fix/csharp-member-access
- 85ebe67 Mine fenced code blocks for anchors and literals instead of discarding them
- fc20f48 Rank explore artifact candidates by distinctive path probes
- 38a6e16 Resolve GDScript calls by receiver instead of method name
- 6b06599 Score candidate source files against task-derived path probes
- b5ac457 Stamp receiver types on capitalized Dart call chains
- 41df80e csharp: anchor awaited-call typing to the enclosing scope
- df5952e csharp: appease staticcheck QF1002 in awaited-call helper
- 134f8d9 csharp: bump extractor version for qualified-call edges
- 36cb521 csharp: chained reads on param receivers survive the noise rule
- 3802ac2 csharp: emit member-access read/write edges
- a178ee0 csharp: emit property nodes for record positional parameters
- 57fe03c csharp: extract record members
- e35c8ec csharp: extract this./base.-qualified member calls
- cc0ac1d csharp: extract this?./base?. conditional-access calls
- 39e4760 csharp: type awaited receivers by unwrapping Task
- 9e54a08 feat(godot): link scenes to the scripts and sub-scenes they mount
- 63cec41 fix(indexer): batch watcher storms by default and bound the debounce cohort
- f9e2b46 fix(indexer): bound the trigram cache by bytes and report it in status
- 1dc4105 fix(indexer): filter watcher events at the backend, gate the remaining whole-corpus analyze kinds
- 2610fe6 fix(mcp): bracket resource and prompt handlers like every tool call
- 49c9658 fix(mcp): let a directed read release a stuck localization contract
- 5e352f7 fix(parser): index Dockerfile. build files
- 840634d fix(query): report the call sites that named a symbol but never bound
- 71f8559 fix(search): exclude an oversized document instead of always scanning it
- d79fe8c fix(search): keep binary content out of the trigram index
- e5bcef5 fix(search): stream instead of building an index per repo, and patch edits in place
- c595cf9 hooks: read the tracked-repo registry from config, not a daemon round trip
- c534750 perf(embedding): halve the rerank model, give it an idle reaper and a config gate
- e4662f4 perf(mcp): read structural whole-graph handlers through the light node projection
- c98962d update dependencies
-
v0.63.005 Aug 2026Release notes
Open source →Changelog
- 8377da5 Bump version to v0.63.0
- b802d63 Caveat a usage result whose every row is a name-only match
- ab96e21 Evict indexed files a full-tree reconcile no longer finds on disk
- c393dcc Merge commit from fork
- 63dc49f Merge origin/main
- d8684d2 Merge pull request #432 from pbednarcik/feat/csharp-extension-methods
- 80b0dd0 Merge pull request #448 from dsh971/docs/terraform-contracts-table
- 581682c Merge pull request #451 from zzet/fix/analyze-impact-honours-target
- 52cfa5b Merge pull request #452 from zzet/fix/bare-npm-specifier-directory-collision
- b5a63e2 Merge pull request #453 from zzet/fix/scope-analyze-alias-kinds-to-workspace
- 84d2dee Merge pull request #454 from zzet/fix/claudecli-headless-spawn-reliability
- b75a44b Merge pull request #455 from zzet/fix/persist-contract-tier-completion-marker
- 56c3bfc Merge pull request #456 from zzet/fix/zero-edge-confidence-aware-classification
- 1804a7b Merge pull request #457 from zzet/fix/flag-missing-tracked-repo-paths
- 59bec28 Merge pull request #458 from zzet/fix/detect-and-purge-orphaned-file-nodes
- ad497ea Merge pull request #459 from zzet/fix/hook-predicate-scope-gates
- 50d6850 Merge pull request #460 from zzet/fix/price-zhipu-glm-models-in-savings-table
- a90debc Merge remote-tracking branch 'origin/main' into fix/detect-and-purge-orphaned-file-nodes
- 017718b Rebuild a clamped community's label and drop its hub
- 195939d Record a contract-tier completion marker and report an unbuilt tier
- d79d6af Refuse symlinks that escape the repository when indexing and searching
- e391f40 Refuse symlinks that escape the repository when serving artifacts
- 0658d13 Report indexed files that no longer exist on disk in index_health
- 27ce1e1 Scope the analyze communities and processes kinds to the caller's workspace
- 3425091 Scope the analyze inspections kind to the caller's workspace
- 1caae14 Scope the analyze recent_changes kind to the caller's workspace
- ea118f9 Stop the GCX caveat message from destroying its own payload
- d4a0b81 Tidy extraction_gap.go alongside the classification change
- b7336a9 Verify symlink confinement on Windows in CI
- 1b4a438 Weigh usage-edge provenance before calling a symbol used
- db7e46d csharp: batched deletions and the deferred fallback re-price global-using dependents
- 8e7210d csharp: bump extractor version — usings-scope and builtin-receiver stamps need re-extraction
- bec99e2 csharp: cross-repo name-only fallback must not overturn member-gate refusals
- e336ca9 csharp: ctor callers carry the scope stamp; var shape reads the outermost creation; owner-lookup ties deterministic
- 8adb960 csharp: denotation-anchored extension eligibility — bare-name shadowing, hierarchy-walk anchors, waiver scope, restubbed-call routing
- 217b89a csharp: drop the unused string-shape conflict wrapper
- 2572d15 csharp: global using and using-static visibility for extension binding
- 11778c6 csharp: harden extension binding — eligibility veto, caller-scope narrowing, csproj-scoped globals, Windows paths
- cf0bc9f csharp: member-claims memo takes csharpNSMu; visibility stamps join the JSON string-slice keys
- 01449de csharp: nullable annotation is not shape structure; member-claims memo; verdict gate covers restubbed calls, keyed to csharp exactly
- 0a41e12 csharp: persist the global-using index — one seed scan, reconcile per scoped resolve, eviction re-prices dependents
- 57e006f csharp: precise extension-receiver eligibility — inheritance reach, generic catch-alls, BCL aliases, method-scoped builtin stamps
- 0f854ac csharp: refuse extension bind when the receiver hierarchy declares the member
- ffb2565 csharp: review smalls — non-Merkle extractor-bump restage, compilation-scoped global using static, sorted owner lookup
- 562fd0e csharp: scope-by-scope using visibility — a using binds at its declaring namespace level
- 7cba867 csharp: type shape joins extension applicability — arrays, generic args, constraints
- 96b66b3 csharp: visibility joins the incremental reuse contract — using edits drop the snapshot, global-using edits re-resolve their unit
- 41ecd64 docs(contracts): document Terraform as an env-var contract provider source
- c1707a9 fix(agent): accept an array-wrapped tool call from smaller models
- dc10709 fix(analyze): scope kind=impact to its target instead of the repo
- 259e2fe fix(claudecli): strip the interactive Claude Code config from the spawn
- 738ae4e fix(daemon): flag tracked repos whose directory was deleted
- 4656f00 fix(llm): surface a CLI provider's stdout when the spawn fails silently
- a64eda6 fix(resolver): gate the reachability cascade the same way as imports
- c821417 fix(resolver): refuse in-repo binding for declared external npm deps
- 01e476e fix(resolver): stop bare JS/TS specifiers binding same-named local dirs
- fe0a815 fix(savings): price Zhipu GLM models instead of reporting $0 avoided
- a58af0c hooks: narrow the access policy to the surface its message describes
- d1a978d remove stray editor temp files
- 71c968f resolver: narrow C# extension-method binding by namespace visibility
-
v0.62.004 Aug 2026Release notes
Open source →526 commits since v0.61.0, two weeks of work. Most of it went into one thing: making the daemon start faster and stop eating your RAM. The rest is language coverage, a stack of search-recall fixes, and packaging work for Linux and Windows.
Startup is faster and a lot lighter
PR #443 is 173 commits aimed squarely at cold indexing. Numbers are from the same 29-repo corpus, fresh SQLite store, 3 GiB admission budget:
v0.61 v0.62 Cold ready 17m35s 13m21s Graph queryable 8m01s 6m19s Footprint once ready 1.8 GiB 1.0 GiB Peak footprint 5.3 GiB 3.7 GiB Total allocation 92.3 GiB 70.6 GiB Warm restart is unchanged at roughly 26 seconds.
Heads up: repo prefixes are now mandatory
Node IDs always carry a repo prefix now.
RepoMetadata.Unprefixedis gone, along with every single-repo fallback that depended on it, so a lone tracked repo is just the first entry in the workspace rather than a special case. Stored notes and memories get their anchors carried onto the prefixed IDs on load, so you shouldn't lose anything, but if you've built anything against bare node IDs it will need updating.Language coverage
PHP got the largest rewrite. Symbols and references carry namespace identity,
composer.jsonis indexed so PHP repos actually have a dependency graph, PHPUnit and Pest tests are detected,.phtmltemplates are indexed, and call receivers are typed so member calls bind to the right method instead of guessing at a same-directory match. Untyped properties get their type from what the class assigns them, andself::/static::resolve through the enclosing class.Rust was the other big one. The old query set was quietly missing a lot of items and call sites; those are captured now. Entry-point detection means binary crates no longer read as entirely dead code. Trait impls are recorded as edges, tuple structs and enum payloads emit fields, and consts and statics get an owner and a kind.
For C#, this release adds DI binding edges, partial-class merging, ASP.NET entry points, and namespace-aware type-reference resolution where the enclosing namespace outranks a
using. Hangfire's deferred-lambda registrations now emit receiver-typed spawn edges. Null-conditional invocations emit call edges, and type references no longer get dropped in caseless scripts.Java picks up method references:
Type::new, qualified forms, and references inside field and static initializers. An overloaded reference binds to the whole overload set rather than picking one arbitrarily.Python gets module-level variable nodes, class inheritance edges, aliased imports, and receiver typing from
self,clsand annotated parameters.Smaller items: Terraform declarations emit config-key nodes, and Lambda env vars now act as cross-repo contract providers. A multi-statement SQL migration has every
CREATE TABLEextracted, not just the first. NodeNext emitted-JavaScript import specifiers resolve back to their TypeScript source, including through re-export barrels.Search recall
PR #416 fixed four failures that stacked on each other: post-filters could empty a page with no refetch, cross-repo FTS floods could starve a scoped search, exact-name container hits could eclipse the whole FTS tier, and persisted FTS readiness was lost on warm restart. If scoped searches have been returning less than you expected, this is likely why.
The localization pipeline behind
explorealso got a pass, mostly around keeping evidence attached to the answer and being honest about when a call is actually terminal instead of asking for another round trip.Reliability
A reindex writer-gate timeout used to take the daemon down with it; now it's tolerated. Parse trees are released on every incremental path, which closes the CGo leak that was retaining memory across reindexes. Interrupted durable resolver passes recover instead of losing their tail state. Idle trigram caches evict on deadline. Files that are present but excluded now get evicted on reindex instead of lingering in the graph.
Every MCP tool, resource and prompt carries a request deadline, and the daemon control plane is bounded so a busy daemon can't hang the CLI behind the indexer. Streamable HTTP recovers expired sessions rather than failing the request.
Packaging and tooling
Linux release binaries are statically linked, so they run on any distro. Custom tree-sitter grammars decline cleanly in a static build instead of crashing, and CI catches a static-link regression on the PR rather than at tag time.
Windows fixes throughout: path separators in
search_text, graph relative paths, file-delta keying and bundle package keys, plus sidecar handle leaks that were breaking test cleanup.gortex doctoris a top-level verb now and reports on real runtime evidence. It covers every agent instead of just Codex, tells "did not run" apart from "cannot tell", and--redactworks.Thanks
External contributors this release: Tien Dung Dao (@tiendungdev), Peter Bednarčík (@pbednarcik), Peter Chanthamynavong (@peterkc), @dsh971, @yimingll, Vitalii Pedchenko (@vitaliyslion), Pitchfork-and-Torch (@Pitchfork-and-Torch), and Christophe (@yimingll).
Changelog- af0403c Always mint a repo prefix; a lone repo is just the first tracked repo
- cd2b8cb Apply a refreshed workspace config to live indexers on daemon reload
- 2d75e34 Apply review polish to DI extraction and partial merge
- e5e3dd5 Assert repo-prefix parity end to end, and correct the docs
- 9e06e19 Attest review coverage from indexed test symbols, not path fragments
- b063ce3 Attribute Python module-level and class-body calls to the file node
- 79e87a8 Bind PHP imports to the class they name and keep inherited calls off guesses
- 75179ae Bind Python imports written with an alias
- 99d745c Bump version to v0.62.0
- a1d7e02 Capture the Rust items and call sites the query set never matched
- 7a7b13c Carry stored note and memory anchors onto prefixed symbol ids
- 372167a Clamp find_clones to the session workspace
- 933c5f6 Compile every DI binding emitter and consumer against one spelling
- 16c913d Correct the comments that still describe a daemon single-repo mode
- 618dd8a Delete RepoMetadata.Unprefixed and the lone-repo fallbacks it gated
- ca49514 Detect PHPUnit and Pest tests
- 259e6eb Detect Rust entry points so binary crates are not all dead code
- 09227a2 Document and pin the named-node narrowing in HasLanguage
- 3c13349 Document the SQL coverage boundary
- 93642da Document what the Rust extractor now covers
- b624092 Drop the PHP call-walk helpers left unused by the rewrite
- 4f7159d Emit PHP property and class-constant usage edges
- 428d639 Emit Python module-level variable nodes
- b9764a9 Emit call edges for C# null-conditional invocations
- f7af611 Emit fields for tuple structs and enum-variant payloads
- 3860106 Emit inheritance edges for Python classes
- d8b8489 Emit receiver-typed spawn edges for deferred-lambda registrations
- d7663a9 Expand PHP grouped use declarations and record import metadata
- 963d0e7 Extract PHP file-scope statements and anonymous classes
- bf85d47 Extract every CREATE TABLE in a multi-statement SQL file
- 0f21d50 Fence the standalone Indexer's empty repo prefix
- df7d899 Fix search_text returning zero results below the repo root on Windows
- 4eb8ebb Flag orphan_tables and unreferenced_tables when nothing was compared
- af68590 Forward the caller's flags to the detached daemon child
- 36dc6a0 Give PHP complexity metrics and index .phtml templates
- 46da518 Give PHP symbols namespace identity and bind references through it
- 912f8e0 Give Rust consts and statics an owner, a kind, and metadata
- 55bdd78 Implement backend HasLanguage/NodesByKindLang, gate the partial merge
- 0b69295 Index composer.json so PHP repos have a dependency graph
- 9e11627 Make covering-test attribution agree with the graph's test edges
- 9071ffa Make every repo narrow agree on prefix-less nodes
- 2b7cdde Merge pull request #331 from zzet/fix/localization-terminal-evidence-replay-minimal-indexed
- 514c6af Merge pull request #347 from Pitchfork-and-Torch/fix/evict-excluded-files-on-reindex
- 95f19d1 Merge pull request #348 from zzet/fix/codex-global-instructions-file
- 5a4966e Merge pull request #351 from zzet/feat/gortex-doctor-runtime
- 4d39a50 Merge pull request #352 from zzet/feat/hook-log-agent-dimension
- 2500c6a Merge pull request #353 from zzet/fix/doctor-mixed-attribution-and-redact
- 1288cfc Merge pull request #354 from zzet/fix/hook-guards-bash-writes-to-indexed-source
- 0bd51d7 Merge pull request #355 from zzet/fix/static-link-linux-release-binaries
- 38b915b Merge pull request #356 from zzet/fix/stop-hook-session-attribution
- 3d32d03 Merge pull request #357 from zzet/fix/read-operation-singular-alias
- 9272255 Merge pull request #358 from zzet/fix/lsp-budget-test-wallclock-flake
- 79a1e58 Merge pull request #359 from zzet/fix/daemon-status-repo-file-count
- 903952f Merge pull request #360 from zzet/fix/savings-price-current-model-generation
- 2362c85 Merge pull request #362 from zzet/dependabot/github_actions/actions-minor-patch-277cc3a3c6
- 2ab760b Merge pull request #363 from zzet/dependabot/go_modules/go-minor-patch-a0e30b39f3
- 551a25b Merge pull request #364 from zzet/fix/doctor-report-every-agent
- 36f9f70 Merge pull request #365 from yimingll/fix/search-text-windows-path-separator
- 095ffba Merge pull request #367 from yimingll/fix/csharp-null-conditional-call-edge
- cb173ba Merge pull request #369 from yimingll/fix/graph-rel-path-separator
- 3bd70cf Merge pull request #372 from yimingll/fix/csharp-caseless-type-refs
- 59d5caf Merge pull request #374 from pbednarcik/feat/csharp-di-partial-entrypoints
- ae37ff7 Merge pull request #377 from zzet/fix/daemon-detach-forwards-flags
- 7ef243b Merge pull request #378 from zzet/fix/tighten-di-prefilter-share-meta-keys
- 3501c02 Merge pull request #379 from zzet/fix/nodenext-emitted-js-import-specifiers
- ab6e0d2 Merge pull request #380 from zzet/fix/sql-multi-statement-table-extraction
- 92386d5 Merge pull request #381 from zzet/fix/daemon-control-rpc-latency
- 34d1ab2 Merge pull request #382 from zzet/fix/lsp-workspace-from-tracked-repo-root
- f44a049 Merge pull request #383 from zzet/fix/workspace-config-reload-and-per-repo-guards
- 903194e Merge pull request #384 from zzet/feat/rust-parser-coverage
- 36b1aab Merge pull request #385 from zzet/fix/mcp-daemon-request-liveness
- cbeddc9 Merge pull request #386 from zzet/feat/php-parser-coverage
- e979ea1 Merge pull request #387 from zzet/feat/php-namespace-identity
- 9e11c53 Merge pull request #388 from zzet/fix/review-pack-coverage-evidence
- da12c84 Merge pull request #389 from zzet/feat/php-property-assignment-typing
- f1a74cb Merge pull request #390 from zzet/fix/batch-receipt-publish-owns-storage
- b7595cd Merge pull request #391 from zzet/feat/python-parser-coverage
- 0e9b3a7 Merge pull request #392 from zzet/fix/gomlx-long-input-truncation
- 010c89a Merge pull request #394 from zzet/fix/ollama-tokenize-eof-retry
- 1d1a821 Merge pull request #395 from zzet/fix/analyze-workspace-scoping
- c8f33e9 Merge pull request #396 from zzet/refactor/always-prefix-repo-node-ids
- abb4108 Merge pull request #398 from zzet/fix/pin-divergent-default-fallback-slo
- e36a06d Merge pull request #399 from pbednarcik/feat/csharp-hangfire-jobs
- 9088e46 Merge pull request #400 from zzet/fix/qual-name-repo-scope
- 400404e Merge pull request #401 from pbednarcik/feat/csharp-namespace-aware-refs
- 9611002 Merge pull request #402 from zzet/codex/localization-quality-pipeline
- 7a7fd3c Merge pull request #403 from zzet/fix/trigram-idle-eviction
- 74d2296 Merge pull request #404 from peterkc/fix/streamable-session-recovery
- e37a46b Merge pull request #405 from zzet/refactor/modern-full-reconciliation
- 2a42f0c Merge pull request #406 from zzet/perf/framework-census-identities
- 8c3b9cc Merge pull request #407 from zzet/perf/framework-edge-identity-keys
- 9f2d484 Merge pull request #408 from zzet/refactor/repository-mutation-coordinator
- 4472261 Merge pull request #409 from tiendungdev/fix/passive-checkpoint-skipped-not-incomplete
- f69db52 Merge pull request #410 from tiendungdev/fix/route-registration-vs-handler-site
- 23712e2 Merge pull request #411 from tiendungdev/fix/bundle-package-key-separator
- 6d97beb Merge pull request #413 from pbednarcik/fix/workspace-config-defaults
- 07f9e71 Merge pull request #414 from zzet/perf/sqlite-substring-fallback
- b49b8a6 Merge pull request #415 from tiendungdev/fix/test-sidecar-handles-leak-on-windows
- d62ceee Merge pull request #416 from pbednarcik/fix/search-postfilter-escalation
- e1bd636 Merge pull request #417 from zzet/perf/sqlite-rawbytes-metadata-scans
- 7922b69 Merge pull request #420 from zzet/perf/resolver-node-projections
- 65a1c45 Merge pull request #421 from zzet/perf/bounded-attribution-reindex-batches
- dab5821 Merge pull request #422 from zzet/perf/poller-mtime-ownership
- d9c31cc Merge pull request #423 from zzet/perf/release-consumed-warmup-snapshots
- 964765a Merge pull request #424 from zzet/perf/warm-reconcile-authoritative-census
- b4a32e9 Merge pull request #425 from zzet/perf/shared-parse-memory-admission
- 309762a Merge pull request #426 from zzet/perf/reuse-clone-corpus-baseline
- 9649ba1 Merge pull request #427 from zzet/fix/indexer-coordinated-cross-repo-resolve
- 948cb75 Merge pull request #428 from zzet/perf/resolver-shared-edge-census-v2
- 8cafea7 Merge pull request #429 from zzet/perf/poller-receipt-rotations
- eba90b2 Merge pull request #438 from tiendungdev/fix/windows-path-separator-node-split
- 2bb0b43 Merge pull request #440 from zzet/dependabot/github_actions/actions-minor-patch-478b1c0e64
- 8741e1d Merge pull request #442 from dsh971/feat/terraform-contract-provider
- 5b2acd9 Merge pull request #443 from zzet/perf/balanced-cold-index-pipeline
- 45f0483 Merge pull request #444 from dsh971/feat/terraform-contract-provider-v2
- 5401482 Merge pull request #445 from zzet/fix/review-rulepack-changed-file-join
- 051eba2 Merge pull request #446 from zzet/fix/gitignore-layering-below-git-root
- fc6d62d Merge pull request #447 from zzet/fix/java-method-reference-edges
- c27381d Merge remote-tracking branch 'origin/main' into fix/localization-answer-fidelity-only
- 39e6231 Merge remote-tracking branch 'origin/main' into perf/framework-edge-identity-keys
- 418cfbe Mint the PHP declaration forms the member walk skipped
- 6ae0ff5 Narrow the .NET DI registration prefilter to lifetime literals
- 08c90a5 Normalise graphRelPath to the graph's node-ID path spelling
- 8108bfd Pin the divergent-default fallback SLO in the tests that assert its result
- 96bdf6e Pin the two surviving meanings of an empty repo prefix
- 630e5b5 Re-read every per-repo .gortex.yaml on config reload
- cb6b21e Recognise migration paths with native Windows separators
- a7a5b72 Record how Rust types acquire their traits
- ff8f12b Relocate controller-hierarchy pass to entrypoints, invert the walk
- b1f1c71 Report Rust trait members with the visibility they actually have
- 9280bde Report repo-prefix ownership instead of failing silently
- f00d803 Resolve NodeNext emitted-JavaScript import specifiers to their TS source
- fb267fd Resolve emitted-JavaScript specifiers in the re-export barrel walk
- d2845fe Resolve guard rules per repo instead of from the daemon's own config
Note truncated.
-
v0.61.5-0.20260731214207-8cafea735dfc31 Jul 2026 pre-releaseNothing published for this version
-
v0.61.5-0.20260730205030-74d22969fdfe30 Jul 2026 pre-releaseNothing published for this version
-
v0.61.5-0.20260725220826-95f19d115b6325 Jul 2026 pre-releaseNothing published for this version
-
v0.61.425 Jul 2026Nothing published for this version
-
v0.61.325 Jul 2026Nothing published for this version
-
v0.61.223 Jul 2026Nothing published for this version
-
v0.61.2-0.20260722060341-c9bd091dc6ec22 Jul 2026 pre-releaseNothing published for this version
-
v0.61.121 Jul 2026Nothing published for this version
-
v0.61.1-0.20260720210148-5ab7dc7495f620 Jul 2026 pre-releaseNothing published for this version
-
v0.61.020 Jul 2026Nothing published for this version
-
v0.60.009 Jul 2026Nothing published for this version
-
v0.59.2-0.20260705190140-c5a72ad2280605 Jul 2026 pre-releaseNothing published for this version
-
v0.59.105 Jul 2026Nothing published for this version
-
v0.59.1-0.20260704173541-dc2f5e1dcdfb04 Jul 2026 pre-releaseNothing published for this version
-
v0.59.004 Jul 2026Nothing published for this version
-
v0.58.302 Jul 2026Nothing published for this version
-
v0.58.201 Jul 2026Nothing published for this version
-
v0.58.101 Jul 2026Nothing published for this version
-
v0.58.030 Jun 2026Nothing published for this version
-
v0.57.229 Jun 2026Nothing published for this version
-
v0.57.129 Jun 2026Nothing published for this version
-
v0.57.029 Jun 2026Nothing published for this version
-
v0.56.1-0.20260628095151-a53404bb705d28 Jun 2026 pre-releaseNothing published for this version
-
v0.56.028 Jun 2026Nothing published for this version
-
v0.55.027 Jun 2026Nothing published for this version
-
v0.54.127 Jun 2026Nothing published for this version
-
v0.54.027 Jun 2026Nothing published for this version
-
v0.53.127 Jun 2026Nothing published for this version
-
v0.53.027 Jun 2026Nothing published for this version
-
v0.52.226 Jun 2026Nothing published for this version
-
v0.52.125 Jun 2026Nothing published for this version
-
v0.52.024 Jun 2026Nothing published for this version
-
v0.51.324 Jun 2026Nothing published for this version
-
v0.51.223 Jun 2026Nothing published for this version
-
v0.51.122 Jun 2026Nothing published for this version
-
v0.51.022 Jun 2026Nothing published for this version
-
v0.50.1-0.20260620161105-138811c8c8bb20 Jun 2026 pre-releaseNothing published for this version
-
v0.50.020 Jun 2026Nothing published for this version
-
v0.49.1-0.20260619232709-a35be0c736e019 Jun 2026 pre-releaseNothing published for this version
-
v0.49.019 Jun 2026Nothing published for this version
-
v0.48.1-0.20260618205547-a834727d398e18 Jun 2026 pre-releaseNothing published for this version
-
v0.48.018 Jun 2026Nothing published for this version
-
v0.47.016 Jun 2026Nothing published for this version
-
v0.46.1-0.20260616084826-7eafbe30019716 Jun 2026 pre-releaseNothing published for this version
-
v0.46.016 Jun 2026Nothing published for this version
-
v0.45.015 Jun 2026Nothing published for this version
-
v0.44.2-0.20260613073020-d05f85eed7a613 Jun 2026 pre-releaseNothing published for this version