Releases: zzet/gortex
Releases · zzet/gortex
v0.49.0
Changelog
- fc806ae Add --claude-config-dir override and uninstall --global for Claude Code
- 53d8ada Add ASCII-glyph fallback for Windows OEM codepages
- 8af1d3a Add C/C++/ObjC include-resolution rules, misparse skip-but-visit, and ObjC property emission
- 62df800 Add JVM const classification, package qualification, and Scala value-ref and extension members
- 4af1e3d Add NestJS GraphQL, message/event, WebSocket, @ALL, and cross-module RouterModule prefixing
- 515ca6d Add Ruby mixin edges, parenless bare calls, and method visibility
- ac32ba0 Add TS/JS interface-member type refs, new-expression instantiation edges, and template-expression call mining
- bd73f9f Add Trendshift badge to README
- 3c2e435 Add Vue/Nuxt/Svelte/Astro framework-identifier suppression, template synth, and SvelteKit load pairing
- 2b9a4cb Add a Gin middleware-chain dispatcher-to-handler synthesizer
- 9bd8f08 Add a function-as-value capture table and a flush-gate skeleton for callback registration
- 32a242f Add a per-file node-ID disambiguator that appends a line suffix only on in-file collision
- 94d57f4 Add a symlink path-traversal guard and key-only config redaction across read tools
- 2fa7e3a Add a versioned migration runner so the sidecar store upgrades old databases in place
- 018b473 Add adaptive answer-aware explore sizing driven by the flow spine
- 1bdf475 Add an always-on low-confidence retrieval note to the default smart_context pack
- 2e2820b Add an offset-preserving preParse hook to the extractor interface and a C-family conditional-compilation blanker
- 5868e43 Add daemon resilience: protocol-mismatch fallback, cold-start static handshake, dead-peer sweep, idle timeout, and socket-path fallback
- c48026f Add file-based routing for Next.js, Nuxt, SvelteKit, Astro, and React Router
- 6870633 Add gortex upgrade self-update with install-method detection and latest-version check
- 0102268 Add installer parity flags and doc-comment wrapper-climb across more wrapper kinds
- 6fef541 Add polymorphic dispatch expansion to call-chain and trace traversal
- 3dfd2de Add positioned role-tagged template component usages with template RefContext
- 1457d65 Add project-name path de-weighting, always-on typo rescue, and a name: search clause
- 06ce7f0 Add shell-accessible explore, node, affected, and files CLI verbs with an index error breakdown
- f724eee Add sync/watch operator UX for inotify watch-exhaustion and FD-exhaustion degraded notices
- a39735c Bind framework route handlers to their controller-method symbols across the backend stack
- aa4aed7 Bound the PPR walk cache by memory and cap each walk to top-K nodes
- 264a693 Build a Spring application.yml/.properties config-key graph
- 9b4e591 Capture function-as-value callback registration across the per-language value positions
- 03a8e72 Complete C# enum members, const classification, async/static/value-type flags, and namespace scoping
- dbdd338 Complete Liquid, MyBatis, and DFM template extraction
- 3ad3d38 Emit same-file const/var value-reference edges across the static and dynamic language set
- 290f736 Extend the PHP extractor with traits, enums, class constants, properties, return types, and callables
- 6fefa8f Fix Dart unnamed-constructor mis-emission and emit instantiation edges
- a2d3ab2 Gate the graph-store rebuild-wipe behind an explicit lock-holder opt-in
- 20d523e Let the MCP handshake survive an untracked cwd with an inactive instructions variant and track-only tools/list
- 6e6637b Make MCP initialize instructions state-aware per connection
- 7bec36e Make init doctor verify the binary resolves on PATH, the daemon handshakes, and the MCP stanza is current
- 3f76815 Make the Razor brace matcher string- and comment-aware to stop delegated C# truncation
- 4898246 Make tsconfig path-alias parsing JSONC-tolerant with multi-target disk-probe
- a834727 Merge pull request #115 from zzet/feat/graph-store-schema-versioning
- 3751312 Merge pull request #117 from MikeTomlin19/codex/fix-claude-config-dir
- 973cb8d Merge pull request #122 from zzet/fix/sidecar-concurrent-open-locking
- 5e9b7da Merge pull request #123 from zzet/feat/claude-config-dir-and-global-uninstall
- c5d6d1e Merge pull request #124 from zzet/fix/repos-index-freshness
- 0bbdd8e Merge pull request #125 from zzet/fix/scoped-gitwatcher-reconcile-resolve
- b348bef Model R class systems and generic/method dispatch
- 946a5da Read gortex repos freshness from the index-state store
- 2653024 Recover C# symbols silently dropped inside conditional-compilation branches
- 839c9d9 Repo-scope the intra-process dispatch synthesizers to stop cross-repo false edges
- 3a6867d Resolve JSX/template renders_child edges via the enclosing file's import bindings first
- 17b0055 Resolve Lua and Luau Roblox instance-path requires with a shared resolver
- 0e0eb63 Resolve a Java static-final-string const-ref Temporal dispatch to the cross-language workflow
- 520f752 Resolve git-watcher ref changes scoped to the changed files
- b061fed Return success-shaped guidance for recoverable MCP conditions instead of session-abandoning errors
- 11da99d Revise README with updated features and descriptions
- 64f2498 Rewrite the Pascal extractor on a tree-sitter grammar with call edges and a form synthesizer
- 7655933 Route the freshness rider through the per-repo indexer in multi-repo mode and flag deleted-on-disk list hits
- 4310cd0 Run LSP call/type hierarchy while the document is open, gated on capability
- 8962986 Serialize concurrent sidecar opens so they don't fail with SQLITE_BUSY
- ebf72fc Skip LSP enrichment for languages a repo has no nodes for; fix prefixed paths
- 7ddc6c4 Skip the per-edge meta decode in the dataflow call-target lookup
- 6e0f17c Surface query-time dynamic-dispatch boundaries with site, form, key, and candidate shortlist
- 910bcfe Verify and fill the dynamic-language UNKNOWN coverage cluster
- ba8c3cb Version the graph SQLite store so an incompatible cache is rebuilt, not crashed on
- 8de8fd1 Wire a per-language extractor-version staleness signal into freshness and status, and split snapshot reuse on extraction version
- d5d90ca Wire chained static-factory receiver inference for Dart, C++, and Pascal
- bf2d664 Wire opt-in telemetry record sites for index, daemon session, and install events plus client name folding
- 00c1fdc fix: honor CLAUDE_CONFIG_DIR for Claude install
v0.48.0
Changelog
- 1c29216 Bump version to v0.48.0
- afbed60 Merge config-leaf secret redaction
- 9ae0d58 Merge index-safety guards for index and track paths
- 5070e49 Merge per-language parity coverage eval and fence
- ed483c7 Merge pull request #107 from zzet/feat/json-meta-storage
- 8cab237 Merge pull request #110 from avfirsov/pr/mcp-per-repo-cap
- f1ab54a Merge pull request #112 from ztkent/feature/savings-actual-model-costs
- ab54b39 add Razor extractor delegating @code blocks and directive refs
- 2cdcd77 add Svelte and Astro component extractors with frontmatter carve
- fac8b7e add Vue single-file-component extractor carving script blocks
- bcbe242 add an offset-preserving pre-parse transform slot
- b4e6e71 add consent resolution with 4-rung precedence and DO_NOT_TRACK
- a597e1b add regex DFM form-definition extractor
- febafff anonymous install id and daily aggregate send to ingest endpoint
- 9329d5b attribute Swift extension members to their extended type
- 38b3087 callpath: add multi-root anchored shortest-path entry
- f396f7a coarse daily-rollup aggregator with hard allow-list and value bucketing
- ebdf792 config: add smart_context in-pack enrichment block and tool params, default off
- 044ccac contracts: detect DRF router.register viewset per-action routes
- e48dd94 contracts: detect django re_path, url, include and as_view route shapes
- 48bf59a contracts: detect koa, fastify and hapi route providers
- e7f11c6 contracts: detect nestjs graphql code-first, microservice and websocket handlers
- a5203de contracts: expand flask route methods and join blueprint url_prefix
- be80fb2 contracts: join router prefixes for gin, spring, rails, laravel and axum
- 830d6cb contracts: preserve original route path and stamp per-reference route kind
- 4641158 document gortex eval parity and the parity-fence contract
- f94d58b document telemetry/privacy and the new extraction surface; add re_exports to the schema resource
- c837ca7 document the gortex install telemetry choice and live consent
- d736159 emit ObjC message-send call edges and property/typedef nodes
- 328373f emit Scala val/var fields, return types and type-annotation refs
- 53d4069 emit per-binding import and alias-aware re-export edges with a volume guard
- 0a1c726 emit real Swift function signatures, return types, and modifier flags
- 7036fea eval: check Fprint error returns in the parity command
- dc66fde extract Scala 3 enum definitions and their cases
- c6926a0 extract shared offset-preserving inline-script delegation helper
- 7e9b44c extract: resolve chained-receiver and factory-chain call return types across AST languages
- 7927330 fail-silent recorder gated on consent, wired into MCP tool dispatch
- 68c6dec feat(config): add mcp.redact_config_secrets default toggle
- cc9ccad feat(eval): add gortex eval parity subcommand asserting per-language coverage baselines
- e2fa9a4 feat(eval): clone and cache benchmark repos for parity runs
- b164ad7 feat(eval): compute resolved-cross-file-dependent coverage per language
- 134078b feat(get_symbol_source): redact config-leaf symbol values by default
- 248ac5d feat(read_file): redact config-leaf secrets by default with allow_secrets override
- 90cfeb1 feat(redact): shared config-leaf secret redaction helper
- 58ea9ff feat(smart_context): redact config-leaf source in flat and graded packs
- b0e3dac fix(mcp): cap per_repo in graph_stats — monorepo context overflow made MCP unusable
- 2f837c8 freeze the at-or-beyond-parity count as a CI-enforced golden
- 47db986 gortex telemetry on|off|status command and installer opt-in-once prompt
- d12bc41 index anonymous classes as synthetic types with an extends edge
- ba61aa1 indexer: fetch only the edge kinds dataflow and reconcile need
- aff557b java: index annotation types as interfaces
- 660eee9 javascript: emit arrow-valued class fields as callable methods
- 287b181 lock MyBatis statement-node extraction with a golden test
- 17530f5 mark Kotlin suspend functions async and expect/actual, recover fun interface
- 3281ea2 mcp: fix stale_code inspection reading last_authored as a string
- 11ecefc mcp: humanize edge provenance with a via label on traversal output
- 18af3bc mcp: read contract route fields from nested contract_meta
- 701ada1 mcp: resolve a bare symbol name to its path-qualified node ids
- bc01812 mcp: show inline file-dependents header on read_file and get_file_summary
- 2cfc42d mine template-usage references in Vue/Svelte/Astro markup
- ea5592b per-feature golden tests for ported extraction capabilities
- 48025ec record CLI command usage via root PersistentPostRun
- baf2120 record ObjC class-vs-instance methods and skip return-type/nullability noise
- bf256d4 refresh parity baseline with markup-language coverage
- 9dcf75a refuse to index home or filesystem root without --force
- 89b85b8 refuse to track home or filesystem root without force on the daemon and MCP paths
- 5f2140c remove unnecessary doc
- dbc2309 resolve Kotlin extension-function receivers
- 3f214cd resolver: bridge objc selectors to swift base-name candidates with cocoa-preposition rules
- 720d408 resolver: pair classic react native ios and android native implementations
- 8fb639a resolver: pair kotlin multiplatform expect declarations to actual implementations
- c3f58f5 resolver: suppress generic cocoa selectors in the swift-objc bridge
- e57a7db resolver: synthesize field-backed observer-channel call edges
- ef36cbf resolver: synthesize flutter setstate to build hop
- f6947c7 resolver: synthesize react class-component setstate to render hop
- 9dc5e0a resolver: synthesize speculative closure-collection dispatch edges
- 317bdf3 rn: extract native event-emit sites and pair them with js addListener handlers
- 625233c savings: capitalize + colon-terminate TTY section headings
- a917f79 savings: show only ledger-resident models with actual usage costs
- 8c0a834 scale the parse budget by file size and retry once on a clean worker
- 844ecf5 seed per-language parity coverage baseline
- c3fcbef smart_context: attach flow-spine and dynamic-boundary section behind include_flows
- 15a8f97 smart_context: attach in-pack call-paths section behind include_call_paths
- 04b098d smart_context: attach retrieval-confidence verdict behind include_confidence
- cd56a23 smart_context: recover inter-symbol edges and surface hierarchy siblings
- 9f03c2c smart_context: scale in-pack enrichment budget by repo size
- 802a7f7 store/sqlite: check Close error returns in promoted-column paths
- b6e8e92 store/sqlite: encode node and edge meta as JSON instead of gob
- 5395b9e store/sqlite: promote signature/visibility/doc/external to columns
- 6a34079 store/sqlite: refresh meta-encoding comments from gob to JSON
- 0095ef3 swift: extract @objc properties and bridge getter/setter selectors to objc accessors
- 5fb4081 test(redact): golden read-sink redaction matrix across all three tools
- 58ec279 tstypes: synthesize rust...
v0.47.0
Changelog
- 775d8bb Bump version to v0.47.0
- 7eafbe3 Clarify zero external dependencies in README
- 3073e0d Merge pull request #103 from zzet/fix/lsp-enrich-open-each-file-once
- e89514c Merge pull request #104 from zzet/feat/mcp-tool-presets-and-find-files
- 67f83de Merge pull request #106 from zzet/fix/service-xdg-env-propagation
- cc20a51 daemon: carry XDG_* overrides into the installed service unit
- fec994e lsp: open each enriched file exactly once per pass
- e6da8b9 mcp: accept an explicit tool list and expose a ToolSurface predicate
- 9e451f2 mcp: add find_files tool for search by file name
- 4c37872 mcp: configurable tool-surface presets for a minimal harness
- e8c137a mcp: group tools into functional categories in tool_profile
- 98976a7 mcp: per-connection tool scoping via the stdio proxy
v0.46.0
Changelog
- 0007df9 Bump version to v0.46.0
- 84e38a5 Merge pull request #102 from zzet/feat/savings-broader-model-pricing
- e6dea62 savings: attribute token savings to the real model and client
- b4e5059 savings: cover OpenAI, Gemini and DeepSeek pricing; refresh model table
- 6c2ae11 savings: update gain/bench USD-card tests for the refreshed pricing table
- f444d90 savings: update model pricing to current rates; default headline to Opus 4.8
v0.45.0
Changelog
- 514993a Bump version to v0.45.0
- 578838a Merge main into pr/temporal-env-helper
- 6260fb4 Merge main into pr/temporal-java-crosslang
- 25fe474 Merge main into pr/temporal-vartrace
- 683beb0 Merge main into pr/temporal-verify
- 25ddedb Merge pull request #100 from avfirsov/pr/lsp-enrichment-hardening
- 0ca697f Merge pull request #101 from zzet/harden/untrusted-repo-indexing-safety
- d05f85e Merge pull request #83 from zzet/feat/improvements
- 04e2c4b Merge pull request #85 from avfirsov/feat/temporal-wrapper-dispatch
- f731ba7 Merge pull request #86 from avfirsov/feat/temporal-executor-dispatch
- 5353164 Merge pull request #87 from avfirsov/feat/temporal-funcconst-dispatch
- ba83b8e Merge pull request #88 from avfirsov/pr/temporal-orphan-detection
- 5811fa7 Merge pull request #89 from avfirsov/pr/temporal-unregistered-activities
- 6cc12ec Merge pull request #90 from avfirsov/pr/temporal-env-helper
- cd6ad17 Merge pull request #91 from zzet/feat/index-freshness-provenance
- 51d976b Merge pull request #92 from avfirsov/pr/lsp-windows-file-uri
- c5dd389 Merge pull request #93 from zzet/feat/change-contract-pipeline
- 2c3530e Merge pull request #95 from zzet/dependabot/go_modules/go-minor-patch-d351fac4aa
- 260f9d5 Merge pull request #96 from avfirsov/pr/temporal-verify
- c8c1cac Merge pull request #97 from avfirsov/pr/temporal-java-crosslang
- 758226b Merge pull request #98 from avfirsov/pr/temporal-vartrace
- 1cff257 Merge pull request #99 from avfirsov/pr/lsp-jdtls-enrichment
- c516ec2 [OM-4373] [OM-4725] исправление бага #5: HoverResult.Contents не парсил массив от jdtls
- e9e5205 deps(deps): bump the go-minor-patch group with 2 updates
- f6a2b98 feat(analysis): RuleFamily interface with per-rule severity and except globs
- db648c7 feat(analysis): config-driven event-boundary rule family
- 3dee478 feat(cfg): per-function control-flow graphs + reaching-definitions fixpoint
- 5f9d69e feat(config): force-include paths excluded by .gitignore via index include
- 67336d5 feat(config): harden .gitignore parsing against non-UTF-8 and oversized lines
- 87329ec feat(contracts): persisted cross-service contract-bridge subgraph
- c5e3bbd feat(daemon): surface DB and WAL on-disk sizes in daemon_health
- 8bb2a93 feat(graph): classify return-value consumption on call edges
- cfa014f feat(indexer): WSL2 / slow-mount watch degradation
- d14ebaf feat(indexer): affected-by re-resolution on incremental sync
- 53afb82 feat(indexer): extractor-version salt in the merkle leaf
- bc31f30 feat(indexer): notify-file reconcile trigger + post-checkout git hook
- 520a699 feat(indexer): record every skipped/failed file with a uniform skip_reason
- 877fa2d feat(indexer): record per-repo freshness provenance at index time
- c39e1b1 feat(indexer): skip capability and dispatch synthesis on doc-only reconciles
- 5b26efd feat(lsp): gate jdtls Maven/Gradle build behind an explicit trust opt-in
- 6133584 feat(lsp): harden enrichment — bounded concurrency, per-doc lifecycle, reconnect
- f53809c feat(mcp): add analyze kind=temporal_verify handler
- 9b57e97 feat(mcp): add change_contract verdict pipeline
- ab05d21 feat(mcp): add symbols_for_ranges lowering tool
- fbae604 feat(mcp): co-change omissions and an API-drift lens for change_contract
- 6acb73b feat(mcp): guarded edit_file replace with an expected-occurrences assert
- 26bfc13 feat(mcp): hand back a refactor strategy in the change_contract envelope
- 3115e5f feat(mcp): inline freshness rider on file-read tools
- bd59b14 feat(mcp): opt-in zero-config background auto-index of an untracked cwd
- 59ba381 feat(mcp): propagate-delete that patches surviving call sites
- 8f34b37 feat(mcp): refuse edits that introduce new parse errors before the write
- 7c5eeeb feat(mcp): risk gate with an ack-TTL ledger backed by development memories
- 81fbb68 feat(mcp): roll up skipped files by reason in index_health
- afd5017 feat(mcp): seed architecture boundaries from detected communities
- 12c4df6 feat(mcp): summarise and page the blast-radius output
- ac9cbaf feat(mcp): warn on a borrowed git worktree in the freshness rider
- 5460859 feat(progress): typed index sub-phases + throughput and ETA
- 68edf88 feat(semantic): in-process tree-sitter type resolvers for six languages
- 9946760 feat(temporal): #21 — Java name= parsing + Java->Go cross-language bridge
- ea44871 feat(temporal): #22 — orphan detection + analyze temporal_orphans MCP tool
- ce0bf93 feat(temporal): Java invoker @value("${key:Default}") field dispatch
- 6f7245c feat(temporal): Java invoker dispatch detection (cross-language)
- 9146335 feat(temporal): LLM cleaning pass — analyze kind=temporal_verify
- fef01ac feat(temporal): P2 — resolve unregistered activities by func-name convention
- 167c2cb feat(temporal): config-driven git-ignored env-helper allow-list
- 2834527 feat(temporal): env-helper recall + source-tiered env-default, plus dispatch fixes
- d020399 feat(temporal): exclude test-file dispatchers from broken_dispatch
- 68dc675 feat(temporal): resolve Java const-ref dispatch via Java string constants
- 38c8f1a feat(temporal): resolve dispatch via variable tracing, const-to-const, exact-name signature match
- cb6de90 feat(temporal): resolve env-helper constant-reference defaults (Go)
- 5c524a2 feat(temporal): resolve executor struct-field dispatch
- 9884c0c feat(temporal): resolve func-returning-constant dispatch names
- d15fa72 feat(temporal): resolve wrapper-forwarded activity/workflow dispatch
- 18419ca fix(analyzer): clamp temporal-verify source reads to the indexed repo root
- 8bf293c fix(indexer): emit parse-failed skip nodes only on the full-index path
- 7a38b73 fix(lsp): Java LSP enrichment — три корневых бага
- 9ef5484 fix(lsp): Windows-correct file:// URI conversion (jdtls did nothing on Windows)
- 7c1ff54 fix(lsp): clear golangci-lint findings in enrichment hardening
- 130899f fix(lsp): re-open docs on the fresh server after mid-flight reconnect
- 716825e fix(temporal): index-match var-trace RHS to the matched LHS target
- f65c2b0 fix(temporal): suppress cross-repo test stubs in convention fallback
- 543cedf test(lsp): fix provider_test for HoverContents type
v0.44.1
Changelog
- 3fad906 Bump version to v0.44.0
- 2d15535 Bump version to v0.44.1
- 0e00c0a Merge branch 'pr78-review' into feat/temporal-cluster
- c7e0597 Merge branch 'pr79-review' into feat/temporal-cluster
- 586af38 Merge branch 'pr81-review' into feat/temporal-cluster
- 6ce81d4 Merge pull request #82 from zzet/feat/temporal-cluster
- 25d13f7 docs(temporal): document the via=temporal.* edge taxonomy
- 4e28372 feat(temporal): Java consumer-side signal-send / query-call edges
- 87c4baf feat(temporal): also detect SetQueryHandlerWithOptions / GetSignalChannelWithOptions
- c32c9c7 feat(temporal): compute Java canonical Temporal names (G2)
- 7e451a1 feat(temporal): cross-language Java->Go workflow join (G1)
- 9198ded feat(temporal): detect Go in-workflow query/signal/update handler declarations
- 59086ea feat(temporal): detect and resolve the service-side workflow-start family
- 83ef21e feat(temporal): detect dispatch wrappers, suppress parameter-named stubs
- 82e3140 feat(temporal): detect outbound signal-send / query-call against running workflows
- 3a73c1d feat(temporal): honor RegisterActivityWithOptions Name override
- fec4346 feat(temporal): promote RegisterActivities struct methods to activities
- f063d90 feat(temporal): recognise an aliased workflow-package import
- 2fc888f feat(temporal): resolve activity/workflow names from env-var-with-default vars
- 89e7aa4 feat(temporal): retain constant values + dereference const-named dispatch
- e88a864 fix(temporal): correct env-default name resolution data-flow
- 1434e2a fix(temporal): gate stub-call resolution by caller language
- da00bb9 perf(temporal): single-scan resolve, early-out, conditional role write-back
- 770d0ac test(temporal): add indexer e2e for outbound signal-send / query-call
v0.44.0
Changelog
- 3c4e63f Bump version to v0.44.0
- 0e00c0a Merge branch 'pr78-review' into feat/temporal-cluster
- c7e0597 Merge branch 'pr79-review' into feat/temporal-cluster
- 586af38 Merge branch 'pr81-review' into feat/temporal-cluster
- 25d13f7 docs(temporal): document the via=temporal.* edge taxonomy
- 4e28372 feat(temporal): Java consumer-side signal-send / query-call edges
- 87c4baf feat(temporal): also detect SetQueryHandlerWithOptions / GetSignalChannelWithOptions
- c32c9c7 feat(temporal): compute Java canonical Temporal names (G2)
- 7e451a1 feat(temporal): cross-language Java->Go workflow join (G1)
- 9198ded feat(temporal): detect Go in-workflow query/signal/update handler declarations
- 59086ea feat(temporal): detect and resolve the service-side workflow-start family
- 83ef21e feat(temporal): detect dispatch wrappers, suppress parameter-named stubs
- 82e3140 feat(temporal): detect outbound signal-send / query-call against running workflows
- 3a73c1d feat(temporal): honor RegisterActivityWithOptions Name override
- fec4346 feat(temporal): promote RegisterActivities struct methods to activities
- f063d90 feat(temporal): recognise an aliased workflow-package import
- 2fc888f feat(temporal): resolve activity/workflow names from env-var-with-default vars
- 89e7aa4 feat(temporal): retain constant values + dereference const-named dispatch
- e88a864 fix(temporal): correct env-default name resolution data-flow
- 1434e2a fix(temporal): gate stub-call resolution by caller language
- da00bb9 perf(temporal): single-scan resolve, early-out, conditional role write-back
- 770d0ac test(temporal): add indexer e2e for outbound signal-send / query-call
v0.43.0
Changelog
- 60771bb Bump version to v0.43.0
- 1e10c87 Merge pull request #66 from zzet/feat/pr-review-end-to-end
- 636b630 Merge pull request #73 from zzet/fix/daemon-churn-hotpath
- 85db7cb Merge pull request #74 from zzet/fix/pr-impact-multirepo-paths
- a77bc64 Merge pull request #76 from zzet/fix/issue-67-savings
- 7677cba agent: three-zone rolling-summary compaction
- 8a30c55 analysis: ScorePRRisk composite + pr_risk MCP tool
- f75532c analysis: export ParseDiffHunks + LineGrounder snippet grounding
- 0891ac8 analysis: pin git-diff header prefixes against mnemonicPrefix/noprefix
- cf626bd analysis: privacy-safe BuildReviewReceipt projection
- 4c04ab3 analysis: repo-prefix-aware diff→symbol join
- 8c5e6f5 astquery: review category + graph-grounded post-pass (Go+Python)
- 0eb9bce bump deps
- 06ebe8e cmd: gortex prs --triage / --conflicts dashboard sections
- 6976415 cmd: gortex prs bundle + GitHub Action template
- b246068 cmd: gortex prs dashboard + deep-dive CLI
- 9432314 daemon: start the overlay idle-TTL janitor
- 28783fd docs+agents: surface PR review in CLAUDE.md, agent instructions, and reference docs
- 9233619 fix ci timeout
- 1dfd69b gitcmd: route remaining diff/citation git shell-outs through the sem-gated chokepoint
- 1b02b4a indexer, mcp: provenance-guard the lone-repo fallback; survive repo-count transitions
- 7a21db0 indexer, mcp: resolve unprefixed paths against the lone tracked repo
- 52645d0 indexer: scope watcher patch edge telemetry to the touched file
- 58c312b indexer: single-flight git-watcher reconciles
- 757084e internal/forge: go-github PR client (list/view/diff/files/review) + worktree resolution
- e6333a3 internal/gitcmd: sem-gated git chokepoint + migrate daemon callsites
- 4e8d0df internal/review: single Finding type + verdict envelope + adapters
- cca2264 linter
- 18f485a llm: token usage through provider boundary + review CostBreakdown
- 15a17fe mcp+cmd: gortex review verb + line-anchored MCP tool
- 994ba78 mcp: AI-ranked triage_prs (use_llm re-rank)
- bd42791 mcp: conflicts_prs merge-order community-overlap
- 141cd68 mcp: critique_review 2nd-pass self-critique
- 7cbed84 mcp: list_prs / get_pr_impact / triage_prs data surface
- 97f9fd9 mcp: pr_review_context 5-section aggregator
- fa61b85 mcp: record token savings on the read-family tools
- f391e8f mcp: resolve diff-handler repo scope from selector, lone repo, or session cwd
- 3bfed01 mcp: review_pack 10-gate packaged envelope
- c41d5e7 mcp: sibling_diff_context tool + registerReviewTools
- 463c2d0 mcp: suggest_reviewers (codeowners + ownership + co-change)
- 464e720 mcp: suggested_review_questions + shared collectSurprisingEdges
- a514d3a mcp: truthful savings accounting on conditional fetches; cached calibration
- 4e88743 mcp: wire prCache read into triage/conflicts file resolution
- fb8b1f2 persistence+review: durable FP suppression store
- a9a48a9 persistence: check and set the savings import mark inside the import tx
- ed477c8 readme: add end-to-end PR review to highlights
- 7406d44 resolver: build per-pass indexes once for the per-save resolve pair
- dff2a4f review: BuildReviewPack diff-hunk tiering
- 59b44da review: ChangeView + LocateSnippet four-tier resolver + LLM fallback
- 1f5c182 review: adaptive ClassifyDepth + planner catalogue
- 94bef83 review: audience renderer + agent-review skill
- 33c7c63 review: clear golangci-lint findings (dead append, De Morgan, ineffassign, Fprintf)
- 4fecad7 review: confidence/severity Gate over the L0 Finding
- 45e3d4a review: coverage blindness is "unknown", not "untested"
- ea327a8 review: file-risk rows carry their evidence; coverage tempers the verdict
- bdd6d7d review: forge comment-posting + secret redaction + post_review tool
- c70dd4e review: hybrid PLAN/MAIN/RELOCATE/COMPRESS flow + verdict
- 166a7d9 review: layered path-glob rule resolver + config.ReviewConfig (all fields)
- 39be03a review: one file-risk row per file, and a headline that explains BLOCK
- e51136d review: thread repo review config + rule resolver + usage into the live review path
- 762a42d savings: harden the ledger against the review's failure modes
- dab9304 savings: honest dashboard text for the ledger era
- f05aa9a savings: move the ledger into the sidecar database
- f38a6c7 savings: one machine-global ledger for every entry point; non-destructive reads
- 6137aba server+llm: conversation JSONL sink + WebUI + route-scoped guard
- 51b4cfc serverstack: the savings ledger always defaults machine-global
- 2f61858 store_sqlite: index edges(kind) for the by-kind streamers
- d5e9786 tokens: age-sweep the disk token-count cache
v0.42.0
Changelog
- 9aa02fb Bump version to v0.42.0
- c6ad37e Merge pull request #61 from zzet/dependabot/github_actions/actions-minor-patch-882fedbe01
- c82f2b4 Merge pull request #62 from zzet/dependabot/github_actions/codecov/codecov-action-7.0.0
- 7256918 Merge pull request #63 from zzet/dependabot/go_modules/go-minor-patch-c2b4730916
- f4fe59e Merge pull request #64 from zzet/feat/improve_parsing
- c0f3edc Merge pull request #71 from zzet/fix/daemon-stop-respawn-68
- f5cc2df Merge pull request #72 from zzet/fix/edit-file-crlf-69
- 6620d8a callpath: add trace_path shortest call-path tool + gortex trace CLI
- 5a91889 ci(deps): bump codecov/codecov-action from 6.0.1 to 7.0.0
- 718a1d1 ci(deps): bump the actions-minor-patch group with 2 updates
- 5d1dc59 contracts: config-driven event-bus / SSE boundary table
- 0dad2d9 contracts: synthesize flask-restful add_resource + add_url_rule routes
- bed60aa daemon: drive
daemon stop/restartthrough the OS service supervisor - 41d68eb daemon: harden stop-intent against install leak and autostart races
- ee9f926 daemon: make
daemon stopsticky against autostart respawn - 2befaf1 deps(deps): bump the go-minor-patch group across 1 directory with 5 updates
- 05b03ef graph: epistemic lower-bound on impact + call-graph traversals
- 620e10f graph: persisted reference-facts sidecar (CG-18)
- 6755f14 indexer: scope global inference passes to the changed-affected set
- d18758e indexer: transitive indirect field-mutation edges + analyze kind
- 04a363d linter
- f766d05 mcp: add EOL-tolerant fragment matching for the string-replacement edit tools
- a0b4d6b mcp: api_impact — fused pre-change route-handler impact report
- d41f80d mcp: bring batch_edit's edit_symbol op to parity with edit_symbol
- 241e324 mcp: make batch_edit ops line-ending tolerant
- f2662da mcp: make edit_file matching line-ending tolerant
- c82f7d6 mcp: make edit_symbol matching line-ending tolerant
- 03d3f27 mcp: property-test the EOL-tolerant matcher
- 7f165a3 resolver: in-engine C++ overload resolution (no compiler)
- 017e674 resolver: opt-in speculative dynamic-dispatch synthesizer
- f9709c4 resolver: store-factory call resolution (Zustand/Redux/Pinia/MobX)
v0.41.0
Changelog
- 29a0849 Bump version to v0.41.0
- 7b08933 Merge pull request #58 from zzet/fix/typeassertion-edge-and-combo-bugs
- 964e3b3 Merge pull request #60 from zzet/feat/daemon-centric-architecture
- 80756b3 Update readme and docs
- 1165cc8 add pic
- 206ccaa add pic
- 24c6261 agents: converge every MCP config emit site on canonical ["mcp"]
- 4bc21d3 agents: regenerate render goldens for canonical ["mcp"] args
- d6cd27f analysis: exclude federation proxy nodes from centrality
- 4a56330 audit: add audit_health daemon tool; route gortex audit through it
- 7a91c38 cli: add canonical 'gortex proxy' roster command group
- 1864048 cli: daemon-first gortex mcp + offline-safe gortex track
- dd4240f cli: group gortex --help by intent; retarget docs off the removed server command
- 74e0d24 cli: hot-apply roster add/remove to the running daemon
- f4b5758 cli: name the hardcoded colour literals
- ea8e1d2 cli: serve query symbol/stats from the warm daemon over ModeMCP
- 5c909f5 cmd: drop the transitional helper wrappers left dead by the collapse
- d29a99c comments: drop internal planning-doc references from federation code
- e84270c config: add federation.edges flag (default off)
- 8ea866b daemon: add cancellable ProxyToolCtx and thread ctx through the remote hop
- 7a541c3 daemon: add per-remote enabled/read-only/namespace fields to roster
- ad273a6 daemon: add per-session remote-override substrate
- 4f8148b daemon: carry session_id + cwd on federation fan-out audit lines
- 9ebf00e daemon: collapse the three peek-and-proxy shims into ProxyDecision
- 28f101f daemon: consolidate write-tool lists into canonical MutatingTools
- 755c3c1 daemon: correct the --backend-path flag help
- 5947ff1 daemon: delegate construction to serverstack.NewSharedServer
- 06d5cb5 daemon: evict cached proxies on a remote graph change
- 3f81563 daemon: fix loopback bind detection + test the non-localhost token gate
- e3a2454 daemon: implement the remote-declaration prober
- fa28c3f daemon: lazy proxy-node hydrator over /v1/subgraph
- b6c136a daemon: live roster reload + per-call enabled-set and write gates
- d7f5459 daemon: log + audit federation fan-out calls and failures
- 08ab203 daemon: make local identity a reserved sentinel, not the default server
- 987f098 daemon: mount the /v1 REST surface (+ CORS) on the HTTP listener
- c35d159 daemon: opt-in name-keyed federation fallback (off by default)
- 3700cb7 daemon: read-only cross-daemon federation Federator
- af45513 daemon: satisfy Controller in the hooks test fake; drop dead shouldTryProxy
- 2398c84 daemon: single-flighted auto-start primitive (GORTEX_AUTOSTART)
- 513ff79 daemon: stream graph-change events on /v1/events
- d3dfa09 daemon: wire .gortex.yaml federation: block + multi-remote concurrency test
- 60878f4 daemon: wire proxy-edge mint + hydrator live behind the flag
- 2251e6c export: add export_graph daemon tool; route gortex export through it
- 2a9bf58 fix typo
- e536384 fix(mcp/combo): prune stale shells, add keyword MRU, linearize coverage boost
- 6e49790 fix(parser/go): emit reference edges for type-assertion target types
- e39d921 graph: add federation proxy-node substrate (fields + id helpers)
- ef376a6 graph: bump Node wire-contract fingerprint for the additive proxy fields
- e18c116 graph: exclude federation proxy nodes from stats/search/communities
- 8673d92 indexer: fix fswatcher teardown send-on-closed-channel race
- 0c5e3e0 mcp: accept repo-relative symbol ids (auto-prefix from the session cwd)
- c39fbaa mcp: delegate the embedded server to serverstack.NewSharedServer
- 454b1fb mcp: drop the .gortex/workspace.toml marker handshake
- 692a90a mcp: make the legacy --no-daemon flag an inert no-op
- 985ed77 mcp: read-path hook hydrates proxy targets before traversal
- c001d25 mcp: remove the dead workspace marker/bind machinery
- d539b8d mcp: session proxy_enable/disable/status tools over a daemon-backed sink
- 2dac8d4 mcp: surface last_synced freshness when a read crosses a proxy node
- 67c7425 query/context: require the daemon, drop the in-process fallback
- 736dfa0 query: read start_line in the symbol printer; clearer not-found caveat
- 53836db query: restore dot/mermaid diagram export via the daemon
- 4ae3c2e remove double gortex
- d86559f resolver: gated remote-stitch proxy-edge mint path
- 78ec35c server: add GET /v1/subgraph full-node ring endpoint
- 976d301 server: advertise federation capabilities on /v1/health; daemon FetchHealth
- 74db9c5 server: delete 'gortex server'; folded into 'gortex daemon --http'
- 36ffc09 server: resolve the HTTP auth token per request (rotatable)
- 6e55c6f serverstack: cross-process store lock for writable lifecycles
- f7845a4 serverstack: implement NewSharedServer, the single construction path
- ccb3e37 serverstack: introduce the package; relocate backend dispatch
- 65d0a7c serverstack: parameterize semantic mode, active project, savings, single-repo LSP
- 4a1e223 serverstack: parameterize side-store keying per entry point
- d2e7462 serverstack: relocate embedder resolution
- b2c8b44 serverstack: relocate the LSP/semantic helper utilities
- b45c0fb status, wakeup: require the daemon, drop local indexing
- ff42ee1 store_sqlite: drop federation proxy nodes at the write boundary
- f130686 upd pic
- f7186ff update image
- e521bb0 wiki: make the generation timestamp injectable to fix idempotency flake
- 47738b4 wiki: require the daemon; add LLM enhance to generate_wiki