Skip to content

Releases: agentic-research/mache

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 27 Jun 02:42
Immutable release. Only release title and notes can be modified.
3746dbc

What's Changed

  • chore(release): drop vestigial ley-line FFI link — no octo-sts, no sudo, no fuse_t dep by @jamestexas in #428
  • docs(plugin): add authoring-schemas + authoring-smell-rules skills by @jamestexas in #430
  • feat(ingest): self-contained ASTWalker↔SitterWalker parity gate + 1:1 CI gate by @jamestexas in #429
  • refactor(ingest): widen Walker via FileMeta — ASTWalker lang/pkg, drop a type-switch (S3) by @jamestexas in #431
  • refactor(ingest): walker-agnostic doc-comment scope (DocScope) — ASTWalker location + doc-extended source (S3 slice 2) by @jamestexas in #432
  • refactor(ingest): walker-agnostic per-scope calls (CallExtractor) — last SitterWalker type-switch (S3 slice 3) by @jamestexas in #433
  • feat(smells): real find_smells locations + L1 digest (make the tool usable) by @jamestexas in #434
  • docs: smell-debt baseline 2026-06-24 (Go-accurate; cross-repo blocked on Rust parsing) by @jamestexas in #435
  • chore(deps): pin leyline-schema to v0.5.0 by @jamestexas in #436
  • feat(version): git-derive the binary version + enforce tag==base at release by @jamestexas in #437
  • feat(mcp): kind discriminator across symbol-aware tools + registry invariants (mache-7d321e) by @jamestexas in #438
  • test(mcp): kind-discriminator integration test on ambiguous fixture (mache-7d321e layer 3) by @jamestexas in #441
  • docs(spec): measurement contracts for mache's four blog claims by @jamestexas in #440
  • feat(smell): deterministic duplicate_code rule via AST structural hashing by @jamestexas in #442
  • feat(ingest): ASTWalker.ExtractFileLevelRefs — pure-Go file-level ref parity (S4 prep) by @jamestexas in #443
  • chore(deps): pin leyline-schema + daemon binary to v0.5.1 by @jamestexas in #444
  • docs(adr-0012): record step-4 engine mechanism (S3/S4) + SetASTWalker activation plan by @jamestexas in #446
  • feat(ingest): gate Phase-1 CGO parse on backend — ASTWalker serves file-level extracts (S4) by @jamestexas in #445
  • test+fix(ingest): multi-file query-parity gate + root-relative source_id keying (mache-1166aa, mache-30edfa) by @jamestexas in #447
  • fix(serve): project-aware kind filter (_ast.node_kind) + MCP readOnlyHint annotations by @jamestexas in #448
  • fix(serve): honest MCP annotation hints — read tools no longer leak destructive/open-world defaults by @jamestexas in #449
  • fix(leyline): reap daemon process group — stop orphaning the daemon's mache child by @jamestexas in #450
  • feat(leyline): surface which leyline binary mache resolved (log + get_sheaf_status) by @jamestexas in #451
  • fix(lsp): speak the daemon's named enrich UDS op + spawn with --source by @jamestexas in #452
  • feat(lsp): surface ley-line enrich skip reasons + bump leyline v0.5.1 → v0.5.3 by @jamestexas in #453
  • chore(leyline): bump auto-download pin v0.5.3 → v0.5.4 by @jamestexas in #454
  • fix(lsp): parse daemon object-row query results + bump leyline v0.5.5 — get_type_info returns real hover end-to-end by @jamestexas in #455
  • chore(leyline): pin v0.5.7 — Go LSP enrichment works + README/prior-art by @jamestexas in #456
  • docs(adr): ADR-0018 Appendix C — assay convergence decision by @jamestexas in #463
  • feat(mcp)!: HTTP canonical transport — init registers HTTP + keepalive daemon, demote stdio (v0.10.0) by @jamestexas in #464
  • fix(ci): release.yml startup failure — literal ${{ }} in a run-block comment by @jamestexas in #465

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 22 Jun 19:47
Immutable release. Only release title and notes can be modified.
6ef966f

What's Changed

  • docs: post-v0.8.0 hygiene — drop LLO, fix positioning, sweep factual drift by @jamestexas in #367
  • docs: post-leyline-pairing refresh + frontmatter lint by @jamestexas in #368
  • docs: ADR-0016 cross-language reference resolver + stack-graphs in landscape by @jamestexas in #369
  • feat: in-repo apko/melange image + leyline-schema v0.2.1 consumer by @jamestexas in #370
  • feat: kill ExtractActiveDB on --control, consume LLO 0.2.2 find_callees by @jamestexas in #371
  • feat(udsGraph): typed daemon-response decode + leyline-schema v0.3.0 by @jamestexas in #372
  • test(leyline): wire-decode microbench + benchmarking foundation by @jamestexas in #373
  • chore(deps): bump github.com/mark3labs/mcp-go from 0.52.0 to 0.54.0 by @dependabot[bot] in #377
  • chore(deps): bump golang.org/x/sys from 0.43.0 to 0.44.0 by @dependabot[bot] in #375
  • chore(deps): bump modernc.org/sqlite from 1.50.0 to 1.50.1 by @dependabot[bot] in #376
  • fix(build): schema-bug fixes + ship presets for all 28 grammars by @jamestexas in #374
  • chore(deps): bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in #378
  • docs(audit): sheaf-incremental verdict [mache-49bf9a] by @jamestexas in #379
  • chore(deps): bump leyline-schema v0.3.0 → v0.4.1 [mache-8e2e92] by @jamestexas in #380
  • feat(sheaf): opt SheafClient into δ⁰-driven invalidation [mache-8e59a5] by @jamestexas in #381
  • test(sheaf): cross-runtime e2e against live ley-line daemon [mache-8e7794] by @jamestexas in #382
  • feat(serve): wire watcher → sheaf cascade + get_sheaf_status [mache-c11848 + mache-4a0c05] by @jamestexas in #383
  • trunk: evolve campaign — silent failures, observability, coverage by @jamestexas in #385
  • campaign: god-file decomposition + coverage-gate + sheaf subscriber by @jamestexas in #400
  • [mache-655e98] fix(graph): DefsMap SQL fallback + e2e matrix + rough-edges parity gate by @jamestexas in #401
  • [mache-e1b6c8] design(adr): ADR-0018 doc-drift detection as executable specs by @jamestexas in #402
  • [mache-ec1a06] feat(smell_rules): Severity+Tags schema + CLI gate flags + 3 drift_doc_* placeholder rules (ADR-0018 PR 1-3 bundle) by @jamestexas in #403
  • [mache-68980e] fix(smell_rules): split dead_code OR-join into UNION arms (57s → 124ms) by @jamestexas in #404
  • [mache-eb9b30] design(adr): ADR-0019 real-corpus fixture registry (2-tier, fixed-anchor baselines) by @jamestexas in #405
  • [mache-eb9b30] feat(testfixtures): registry + mache-self sentinel + migrate 2 tests (ADR-0019 PR 1) by @jamestexas in #406
  • [mache-eb9b30] feat(testfixtures): curation + rosary + RealCorpora + baselines (ADR-0019 PR 2 + PR 3 bundled) by @jamestexas in #407
  • feat(cache): portable mache db — push/pull/verify/inspect, all 5 phases (mache-aeb262) by @jamestexas in #412
  • security(smell-rules): validate ScopeColumn at load time by @jamestexas in #408
  • infra: migrate elixir parser.c out of LFS to unblock CI by @jamestexas in #419
  • chore(deps): bump golang.org/x/sys from 0.44.0 to 0.46.0 by @dependabot[bot] in #416
  • chore(deps): bump modernc.org/sqlite from 1.50.1 to 1.52.0 by @dependabot[bot] in #417
  • chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #415
  • chore(deps): bump github.com/mark3labs/mcp-go from 0.54.0 to 0.55.0 by @dependabot[bot] in #413
  • docs: ADR-0021 — semantic file-suggester for Claude Code fileSuggestion by @jamestexas in #420
  • chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0 by @dependabot[bot] in #418
  • test: skip dead_code perf gate under -race by @jamestexas in #421
  • chore(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 by @dependabot[bot] in #409
  • ci: LFS tripwire — fail PRs that re-introduce filter=lfs by @jamestexas in #423
  • chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #425
  • docs(adr-0019): D.6 amendment — -race carve-out for perf gates by @jamestexas in #422
  • [mache-802d2b] feat(server-json): mcpregistry + cloister groups + drift gate by @jamestexas in #424
  • chore(leyline): bump daemon pin v0.4.1 → v0.4.5 by @jamestexas in #426
  • refactor(version): single-source mache version (internal/buildinfo) + CI↔Taskfile parity by @jamestexas in #427

Full Changelog: v0.8.0...v0.9.0

v0.8.0 — constellation wave (paired with ley-line-open v0.2.0)

Choose a tag to compare

@jamestexas jamestexas released this 09 May 21:45
Immutable release. Only release title and notes can be modified.
5bbdaed

v0.8.0 — 2026-05-09

The "constellation wave" release. T2.4 wire-format alignment with
ley-line-open v0.2.0, the full ADR-0013 fidelity-poset canonical-view
landing, ADR-0014 architectural framing, and a substantial e2e harness +
perf hygiene pass.

⚠ Breaking changes

  • Substrate identity is current_root, not generation. Both
    .ctrl (control block) and .arena headers bump VERSION 1 → 2.
    Pre-v2 files are rejected with a clear error rather than silently
    misinterpreted. Pairs with ley-line-open v0.2.0 — these must
    ship together; mixing v0.7.x mache with v0.2.0 ley-line-open (or vice versa)
    fails loudly on first read. (#365, mache-1afff0)

    Public Go API changes:

    • Controller.GetGeneration() uint64GetCurrentRoot() [32]byte
    • Controller.SetArena(path, size, generation)
      SetArena(path, size) + new SetArenaWithRoot(path, size, root)
    • ArenaHeader adds DataSize uint64; readers can hash
      buf[..DataSize] against current_root without parsing
      payload-format internals.
  • Hot-swap polling predicate is now currentRoot != lastRoot, not
    monotonic-generation comparison. Mache writers now compute
    blake3.Sum256(payload) and publish via SetArenaWithRoot.

Added

  • ADR-0013 fidelity poset for refs/defs. Canonical views
    v_defs / v_refs with (mention ⊑ binding ⊑ reachability) ordering;
    consumer rules query producer-agnostically. Higher-fidelity producers
    (LSP, future SSA) project DOWN at write time.
    (#339, #340, #341, #346, #347, #348)
  • Capnp event-log readthrough. ${db}.bindings.capnp is now the
    cross-runtime contract for binding refs; find_smells consumes the
    capnp pass directly. SQL _lsp_refs consumers retired in favor of
    the canonical event log. (#353, #354, #356, #357, #358)
  • find_smells qualifier-aware fan_out_skew via T8.7
    BindingRecord.qualifier. (#358, mache-6c0d07)
  • e2e MCP-tool harness with per-tool latency + alloc profile,
    CPU + heap pprof capture per tool, and task profile-tools-pprof /
    task flamegraphs. (#360, #361, mache-6b6da6 phases 1–2)
  • MemoryStore.{Defs,Refs}Map snapshot memoization. Heap
    e2e profiling identified these two as dominant allocators in
    get_impact (52% heap delta), get_overview (32%), and others.
    Memoized snapshots invalidated on AddDef / AddRef /
    DeleteFileNodes. (#362, mache-6b6da6 phase 3)
  • ADR-0014 documenting mache's role in the wider ART constellation
    as a structural-observation consumer/projector of ley-line-open's capnp
    event-log canonical encoding (Σ-anchored). The .db projection is
    derivative; the event log is the contract. (#364)
  • Falsifiability harnesses. Skip-list ablation experiment +
    π_{1→0} projection round-trip. (#349, #350, #351, #352,
    mache-3509aa, mache-354464)

Changed

  • cmd build defaults to --backend=auto which now prefers
    ley-line when present on PATH (per ADR-0012 step 3b). The in-process
    CGO tree-sitter path is still available via --backend=tree-sitter
    but is on the deprecation runway. (#317, #318)
  • Drop suffix-then-LIKE fallback in serve_lsp now that
    _lsp_refs.referrer_node_id and _lsp_refs.ref_token are populated
    by ley-line-open. (#348, mache-346d2b)
  • find_smells dead_code skip-list precise retreat after
    Falsifiability A confirmed gopls-indexed methods aren't newly
    flagged. (#351)
  • New deps: github.com/zeebo/blake3 (pure Go, no CGO) for substrate
    root publishing on the writer side.

Documentation

  • ADR-0013 — refs/defs canonical schema (fidelity poset). (#339)
  • ADR-0014 — mache in the constellation. (#364)
  • ADR-0012 status update — steps 1–3 shipped, step 4 (CGO removal)
    gated on mache-33dc5f (ley-line-open release-bundling). (#316)
  • README + ARCHITECTURE capture T8 canonical views + capnp event
    log + e2e harness + cache memoization. (#359, #363)

Internal

  • Dead-code removal pass: ingest.GetLanguage, Inferrer.InferFromSQLiteJSON,
    ArenaFlusher.LastError, SocketClient.Enrich, DetectLanguageFromExt,
    formatRegistry, .query/ virtual dir. (#319, #320, #321, #322,
    #323, #324)
  • Test contract pins: ArenaHeader serialization, SchemaUsesTreeSitter
    dispatch, validate-package public API, LoadFileIndex cache,
    NewDefaultResolver chain shape, GetGitHints, BuildContext.
    (#330, #331, #332, #333, #334, #335, #336, #337)
  • CI scheduler-tolerance fixes for arena flusher coalesce + watcher
    subdirectory tests. (#325, #329)
  • Dependabot bumps: mark3labs/mcp-go 0.49→0.52, modernc.org/sqlite
    1.49.1→1.50, fsnotify 1.9→1.10.1, mvdan.cc/gofumpt 0.9.2→0.10,
    go-git/go-billy/v5 5.8→5.9. (#326, #327, #328, #342, #343, #344, #345)

Not in this release (queued for next)

  • CGO tree-sitter removal (mache-36d961, ADR-0012 step 4). Gated on
    mache-33dc5f (release-bundling the ley-line-open leyline binary so mache
    can hard-fail when leyline isn't available, instead of falling back
    to in-process CGO). The migration inventory is filed on
    mache-37ae8b and is shovel-ready: 16 production sources to delete,
    10 test files to delete-or-migrate, single //go:build leyline tag
    to invert, BLAKE3 dep already landed.
  • Schema-driven read modes for read_file (mode=signatures,
    mode=map, mode=diff) — bead mache-qzsk. The current_root
    primitive shipped here gives mode=diff a usable snapshot identity
    to anchor on.

Coordination

This release is paired with ley-line-open v0.2.0. Old mache
reading new arenas — or vice versa — fails with a clear version-mismatch
error rather than corrupting reads. Tag together; release-note the
break in both repos.

v0.6.6

Choose a tag to compare

@github-actions github-actions released this 27 Mar 20:55
Immutable release. Only release title and notes can be modified.
dc0dc08

What's Changed

  • feat: dig template function + BoltDB empty-root fix + skip-on-error by @jamestexas in #140

Full Changelog: v0.6.4...v0.6.6

v0.6.5

Choose a tag to compare

@github-actions github-actions released this 27 Mar 20:51
Immutable release. Only release title and notes can be modified.
dc0dc08

What's Changed

  • feat: dig template function + BoltDB empty-root fix + skip-on-error by @jamestexas in #140

Full Changelog: v0.6.4...v0.6.5

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 27 Mar 01:27
Immutable release. Only release title and notes can be modified.
ea5403d

What's Changed

  • refactor: unified language registry — one source of truth, zero drift by @jamestexas in #130
  • chore: plugin MCP config — stdio → HTTP by @jamestexas in #131
  • feat: add 10 grammars — 28 languages total by @jamestexas in #132
  • feat: pluggable materializer backends — --out --format by @jamestexas in #133
  • feat: string template functions for projection schemas by @jamestexas in #134
  • feat: _parent context for child selector matches by @jamestexas in #135
  • feat: dict/lookup/default funcs + --out .db fix + trivy-ghsa schema by @jamestexas in #136
  • fix: Copilot review fixes + post-mortem P1s by @jamestexas in #138
  • feat: public re-export packages for ingest and materialize by @jamestexas in #139

Full Changelog: v0.6.3...v0.6.4

v0.6.3

Choose a tag to compare

@jamestexas jamestexas released this 24 Mar 20:54
98a2f86

Bug fix

  • fix: watcher FD leak — unified skip list with engine + .gitignore support (#129)
    • Watcher's shouldIgnoreDir diverged from engine's ShouldSkipDir, didn't skip target/, dist/, build/
    • On macOS (kqueue), watching ley-line's 11K target/ subdirs cascaded to 129K leaked FDs
    • Watcher now uses canonical skip list + .gitignore rules via WithGitignore
    • Exported GitignoreMatcher interface for cross-package use
    • Fixed RegisterRefQuery("hcl")"terraform" to match langForExt rename
    • Added vendor to ShouldSkipDir
    • Regression tests: TestWatcher_TargetIgnored, TestWatcher_GitignoreSkipsDirs

Also included (since v0.6.2)

  • feat: exhaustive language schemas — all 18 tree-sitter grammars (#128)
  • chore: AddRoot O(1) dedup, bitmap canonicity, CI path filtering (#127)
  • fix: lifecycle cleanup — graceful HTTP shutdown + mount leyline teardown (#126)
  • fix: bound read_file allocations — 32MB per-file cap + batch total limit (#125)
  • chore: hygiene — CI gofumpt, doc counts, omitempty, dedup, dead code (#124)
  • feat: serve landing page (#123)

What's Changed

  • feat: serve landing page from /app/static/mache-landing.html by @jamestexas in #123
  • chore: hygiene thread — CI gofumpt, doc counts, omitempty, dedup, dead code by @jamestexas in #124
  • fix: bound read_file allocations — 32MB per-file cap + batch total limit by @jamestexas in #125
  • fix: lifecycle cleanup — graceful HTTP shutdown + mount leyline teardown by @jamestexas in #126
  • chore: AddRoot O(1) dedup, bitmap canonicity, CI path filtering by @jamestexas in #127
  • feat: exhaustive language schemas — all 18 tree-sitter grammars by @jamestexas in #128
  • fix: watcher FD leak — respect .gitignore + unified skip list by @jamestexas in #129

Full Changelog: v0.6.2...v0.6.3

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 17 Mar 02:37
93881d3

What's Changed

  • feat: expose tree-sitter validation as public API by @jamestexas in #71
  • feat: agent field report fixes + live graph (#72) by @jamestexas in #73
  • feat: MCP project config, multi-editor install, cache scaling by @jamestexas in #78
  • feat: add GraphCache — write-through MemoryStore with SQLite persistence by @jamestexas in #79
  • feat: consume leyline LSP tables for hover, diagnostics, and MCP tools by @jamestexas in #80
  • feat: schema-driven LSP materialization with file_sets and include by @jamestexas in #81
  • feat: add lsp_defs/refs to all schemas + Rust/Terraform presets by @jamestexas in #82
  • refactor: VHandler chain + Streamable HTTP transport by @jamestexas in #83
  • feat: default MCP transport to Streamable HTTP by @jamestexas in #84
  • feat(serve): --path flag, MCP sidecar lifecycle, loopback validation by @jamestexas in #85
  • feat: expose location virtual file for source-origin orientation by @jamestexas in #87
  • fix(serve): lazy ListRoots with timeout by @jamestexas in #86
  • feat(serve): UDS socket client + auto-enrichment for LSP tools by @jamestexas in #88
  • perf(graph): pre-compute degrees in Louvain community detection by @jamestexas in #89
  • fix(serve): query LSP data from daemon via UDS by @jamestexas in #91
  • build(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 by @dependabot[bot] in #90
  • fix: correctness debt — 4 surgical bug fixes by @jamestexas in #92
  • docs: rewrite README for humans by @jamestexas in #93
  • docs(readme): ACI framing — topology is the point by @jamestexas in #94
  • feat: overnight agent fixes — 27 commits across engine, lattice, writeback, vfs by @jamestexas in #95
  • feat(ci): release builds fat binary from ley-line artifacts by @jamestexas in #96
  • feat: BDR beads schema + generic markdown schema by @jamestexas in #97
  • feat: BDR hierarchy schema for decade/thread/bead projection by @jamestexas in #98
  • feat: add Elixir tree-sitter support by @jamestexas in #99
  • fix: pre-release review — 7 surgical fixes by @jamestexas in #100

Full Changelog: v0.5.6...v0.6.0

v0.5.6

Choose a tag to compare

@github-actions github-actions released this 11 Mar 04:19
f63549b

Changelog

  • 7ddb7c9 feat: MCP server, Louvain community detection, schema refs (#69)
  • 816afc3 fix: skip large and binary files during ingestion to prevent OOM (#68)

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 05 Mar 23:39
7be09bd

Changelog

  • 254958c feat: add --snapshot and --nfs-opts flags (#66)
  • 7be09bd fix: dynamic root ModTime for NFS cache invalidation (#67)