• v0.18.5 adc32d8c18

    v0.18.5
    All checks were successful
    drift / govulncheck (push) Has been skipped
    drift / surface-diff (push) Successful in -2s
    ci / gate (push) Successful in 22m39s
    drift / govulncheck (pull_request) Has been skipped
    drift / surface-diff (pull_request) Successful in 1m8s
    drift / forgejo-smoke (pull_request) Has been skipped
    ci / mcp-conformance (pull_request) Successful in 1m53s
    ci / mcp-conformance (push) Successful in 7s
    drift / forgejo-smoke (push) Has been skipped
    ci / gate (pull_request) Successful in 24m1s
    Stable

    hexajon released this 2026-09-09 21:45:10 +00:00 | 5 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 3962268 feat(finish): schedule auto-merge-on-green when a merge is gated on required CI checks (#438)

    Bug Fixes

    • 301ef4e fix(commit): count files for a root commit with diff-tree --root (#454)
    • f09a263 fix(finish): surface real merge errors verbatim, classify non-retryable, re-check landed state after a 5xx (#456)
    • c7b23f7 fix(prune): classify a does-not-exist 500 on remote branch-delete as already-gone, not an error (#449)
    • 680d199 fix(status): report the repo's own origin host in status --json, not the auth target (#429)

    Documentation

    • adc32d8 docs(adr): record isolation and signing posture decisions (amend 0013, 0019, 0027)
    • 9357db9 docs: group the madtea init CLI command under Setup, matching the madt_init MCP tool (#399)
    Downloads
  • v0.18.4 abcea1257d

    v0.18.4
    All checks were successful
    drift / govulncheck (pull_request) Has been skipped
    drift / surface-diff (pull_request) Successful in 54s
    drift / forgejo-smoke (pull_request) Has been skipped
    ci / mcp-conformance (pull_request) Successful in 2m9s
    ci / mcp-conformance (push) Successful in 2s
    drift / govulncheck (push) Has been skipped
    drift / surface-diff (push) Successful in -6s
    drift / forgejo-smoke (push) Has been skipped
    ci / gate (push) Successful in 12m42s
    ci / gate (pull_request) Successful in 17m51s
    Stable

    hexajon released this 2026-08-27 02:51:26 +00:00 | 13 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 0e6f827 feat(git): resolve commit author/committer from the target repo's local config and add a pre-push identity guard (#425 item 1)
    • 5736e90 feat(help): add init help topic and route madt_init to cli-setup
    • 0fc7f6c feat(mcp): adopt the 2026-07-28 protocol (go-sdk v1.6.1 -> v1.7.0)
    • f3d81ee feat(prune): dry run previews the full set, incl. remote-only orphans
    • 90c68c2 feat(release): narrow plugin vendor to hooks+skills, idempotent, marketplace-owned manifest
    • 9881998 feat(repo): add branch-protection set (create-or-update upsert)
    • 077e467 feat(repos): add fast-forward-only and rebase-explicit merge flags; fix allow_rebase_update description; cross-reference branch protection (#431, #432)
    • 4e6fb7b feat: home distribution and the self-updater to cheshirecube

    Bug Fixes

    • 7224170 fix(config): resolve the forge from the working context, not a stale global default
    • 87f9c08 fix(conformance): mark the ambiguous-forge probe's expected server ERROR log
    • abcea12 fix(install): use Forgejo's releases/download/latest URL, not GitHub's latest/download (404s on the forge)
    • d5f4d80 fix(pull): allow the first fast-forward into an unborn branch
    • b3b11bf fix(release): pin the plugin-vendor commit to the public author identity
    • b8a0382 fix(repos): rename --allow-ff-only to --allow-rebase-update, matching the live forge field allow_rebase_update it sets

    Refactors

    • ef0e688 refactor: migrate module path to madtea.lol and repoint distribution to the GitHub edge

    Documentation

    • 7b32350 docs: document the release PAT storage and rotation via systemd-creds (#380)
    • 7b1f4a1 docs: record public-home + GitHub-edge decision (ADR 0032, #380)
    • 53f9486 docs: remove pre-launch hedging now the forge and madtea.lol are live
    • b95d434 docs: scope the release PAT credential name to madtea-release-pat (#380)
    • 4b410d0 docs: store the release PAT via read+printf to avoid a stray newline (#380)
    Downloads
  • v0.18.3 8318d0d39f

    v0.18.3 Stable

    hexajon released this 2026-07-28 17:42:56 +00:00 | 42 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 7089fb4 feat(clone): diagnose directory-already-exists with origin comparison (#350)
    • 11d52a4 feat(git): loud what/why/action messaging on the local git and finish surfaces
    • 5c0fe35 feat(issues): add owner_repo= to madt_issues action=import (#351)

    Bug Fixes

    • c8817cf fix(clone): correctly diagnose same-repo when using shorthand; mask URL credentials in requested-display
    • 6854adf fix(clone): dir-exists diagnosis requires the dir to be its own repo root (#350)
    • 91ff288 fix(hooks): steer git pull and stop compound chains slipping the branch-d guard (#352)
    • 0b3d43b fix(import): add path-traversal and injection guards to CLI --repo path, shared via util.ValidateOwnerRepoSegments, and add routing coverage test

    Documentation

    • ef90eeb docs(mcp): clarify ; vs , in expr param description for deps_add (#353)
    • d8c03e4 docs(security): drop the pre-release reporting note now the repo is public

    Other

    • 6baf3b1 style(opspec): plain hyphen in the expr separator one-liner
    Downloads
  • v0.18.2 15ad1cd756

    v0.18.2 Stable

    hexajon released this 2026-07-22 18:54:19 +00:00 | 55 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 65c35d1 feat(ssh): clone over SSH natively in ssh modes - no HTTPS URL construction, no credential resolution
    • b68707f feat(ssh): create pull requests over AGit in ssh-only mode
    • 61ee200 feat(ssh): finish and push legs over SSH in ssh modes; API legs gate on the token

    Bug Fixes

    • fa3c00d fix(auth): ssh-only login names a leftover stored token instead of stranding it silently
    • 645baef fix(orchestrate): enforce the batch-merge pre-flight; bisect errors record a Failure

    Documentation

    • 07d5886 docs(claims): update orchestrate rows for the landed #331/#332 fixes
    • ced7a0a docs(setup): ssh-only ignores a passed --token rather than rejecting it
    • c5cb020 docs(ssh): SSH-first setup path as a peer of the token path (#299)
    • d7fbeb1 docs: CLAIMS.md behavioral-promise register with a staleness guard
    Downloads
  • v0.18.1 5298e6d6c0

    v0.18.1 Stable

    hexajon released this 2026-07-22 17:51:20 +00:00 | 69 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • fab96f4 feat(docs): every generated reference page opens with a plain-English summary
    • 7967f8a feat(finish): rerun promise pinned end to end; stale index.lock self-heals or teaches
    • 9476f0a feat(releases): asset download lists every downloaded file with sizes
    • 155bd0f feat(ssh): auth-side SSH preflight - key presence, known_hosts steer, identity probe
    • f5a5797 feat(ssh): protocol mode - persisted git-protocol choice at auth login
    • 5298e6d feat(ssh): typed degradation errors for API-dependent commands in ssh-only mode

    Bug Fixes

    • 7a771c2 fix(actions): unshadow the per-run artifact listing as run-artifacts; guard sibling name collisions
    • f3d886b fix(ci): drop the workflow permissions field - Forgejo ignores it with a warning
    • 09d8653 fix(finish): leftover trailer names files and tree path (#309)
    • f5230ad fix(git): stale-lock recovery covers commit and worktree-add legs; re-stat before removal
    • 02df6e1 fix(guides): remove fabricated flags from tour pages
    • 9480d73 fix(mcp): worktrees rebase summary back under the anti-bloat ceiling
    • 50f1056 fix(prune): deletion output names every deleted branch; preview-first hint for the widened --remote set
    • 0b7b9ff fix(security): bind host-agnostic tokens to a recorded forge host
    • 4ae93bc fix(security): foreign-guard use-ssh dir=, 0600 analytics log, no exec of user-writable stale candidates, redact 403 hint
    • b1a79dd fix(ssh): strip control chars from the probe greeting; success line names the trust boundary
    • b9179ca fix(users): emails delete confirmation names the deleted addresses

    Documentation

    • 947154f docs(#315): backtick-quote angle-bracket placeholders in prose
    • 68a8287 docs(guides): add install.md as canonical install home; slim README to headline one-liner
    • 9b0e1fd docs(guides): move README workflow tours into docs/guides (#316)
    • aba7ae1 docs(install): adopt the voiced Take a Seat install guide as the canonical text
    • 6e3ac7b docs(install): restore the update --verify drift-repair pointer
    • 3cb9148 docs(mcp): restore the two trimmed description fragments; hyphen frees the byte budget
    • ba1b31f docs(public): neutralize private forge hostname in fixtures; retire Gemini from all live client listings
    • c9dc42b docs(public): reword decision attributions to neutral voice; neutralize private example paths
    • ee75221 docs(security): updater trust model + sudoers caveat in SECURITY.md; honest ADR 0027 residual-risk boundary
    • 13aceba docs: canonical install guide at docs/guides/install.md; README leans on madtea.lol
    • abdb2aa docs: mark legacy pre-migration tracker refs as non-autolinking (legacy tracker NNNN)
    • 3c42976 docs: short ADR titles, dead-tracker purge, and render fixes from the docs-site review

    Other

    • 1125c31 harden(mcp): structurally repo-scope the dir= report client
    • 55f5c2e sec(auth): OAuth-minted PATs default to least privilege - Standard tier + read:organization
    • 75dfab1 ux(branch): success lines state the delete was safe - merged, and where the commits live
    Downloads
  • v0.18.0 f65580a560

    v0.18.0 Stable

    hexajon released this 2026-07-19 00:23:35 +00:00 | 117 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 273c57b feat(auth): add forge-URL resolution chain to whoami output (#201)
    • 20f87df feat(auth): madt_auth_whoami dir= local-resolution identity report (#155)
    • ca53f60 feat(clients)!: retire gemini client to a deprecation stub, verify antigravity wiring (#226)
    • 027c144 feat(commit)!: refuse committing on the default branch by default
    • 507b9e6 feat(mcp): add release and reconcile workflow prompts (#242)
    • d79e0c9 feat(release): patch tier for 0.x feats + 24h daily-cap gate (#244)
    • f86f867 feat(release): shipped-prunable report + --prune opt-in (#221)
    • 62c0ee3 feat(status/finish): warn when default branch is ahead of origin (#224)

    Bug Fixes

    • 569298b fix(docs): index rows for toolless Intro-bearing domains - destructive.md rejoins the generated reference index

    Documentation

    • 66641ff docs(arch): add prompts-vs-skills boundary note and drift guard (#241)
    • 3d162d3 docs(architecture): sweep six drift candidates against current code (#246)
    • 50fecb1 docs(release): correct stale breaking-weight comments to 15 in the reporter headers
    • e85f199 docs(release): fix stale 0.x tier descriptions - remove feat-bumps-minor from releasing.md:189, release.sh header, and ADR index (#244)
    • f65580a docs: public-release accuracy sweep - every prose doc reconciled with current code
    • a0f263b docs: repo-wide cross-link sweep (#245)

    Other

    • 9a93e99 merge main: COMPARISON rows union - whoami dir= clause plus gemini retirement
    • 211733d merge main: union of the boundary drift guard (#241) with the release/reconcile prompts - guard covers the new prompts
    Downloads
  • v0.17.0 aebfa7250a

    v0.17.0 Stable

    hexajon released this 2026-07-17 18:49:04 +00:00 | 135 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • f00d40b feat(auth): whoami split-brain cross-check + full resolution chain (#200 #201)
    • b3938d4 feat(cli): add worktree status and rebase subcommands (#170)
    • 0a8573b feat(delete)!: omit all irreversible forge-data deletes from every surface (#209)
    • 7ab4037 feat(install)!: mcp-config prints only; all client wiring moves to madtea install
    • 343a046 feat(install): consolidate setup under install for #172
    • 0ce0669 feat(install): replace --yes with --yes-sudo and --yes-delete-stale (#204)
    • db218e6 feat(release): add windows/arm64 to build matrix (#161)
    • 2109b17 feat(release): tier-weighted score + train-grace gate (#217, #218)
    • 84a5e8c feat(worktree)!: align CLI add with git's signature (-b creates, positional checks out) (#171)
    • 5af4dcc feat(worktree)!: remove force-discard from both surfaces (#208)

    Bug Fixes

    • 354947e fix(actions): bridge run_number/id mismatch, limit passthrough, strip event_payload (#157)
    • 08b7116 fix(clone): treat full-URL clone host as the forge (#197)
    • 74ca99f fix(errors): context-rich repo-scoped 404s + live Forgejo marker (#199, #185)
    • b3fbd57 fix(mcp-config): --install for the Claude Code target refuses with a pointer, never exits 0 having installed nothing
    • 0bf65c6 fix(release): breaking weighs 15 - one pending breaking change crosses the soft line alone; add release-due banner tests
    • 23d3350 fix(release): herestring the tier greps - pipefail + grep -q SIGPIPE silently dropped feat/breaking detection
    • ea394d2 fix(worktree): sweep force from CLI revert conflict rail (#208)

    Refactors

    • 0754ebd refactor(cmd): unify service construction - drop gitea.NewClient in cmd layer (#192)
    • 182a96d refactor(install): drop dead confirm() - consentOrDecline owns consent; test promptYesNo directly

    Documentation

    • 1a83a97 docs(adr): ADR 0031 - recoverable-guard tier: refuse wrong-workflow acts, per-call allow override
    • 0da9ed0 docs(adr): restore ADR navigability stripped by cc3fa200 + 8e3a5d5d sweeps
    • ce59f32 docs(install): fix README no-TTY description for #204 flag split
    • 214f2a4 docs(release): update cadence docs for score-based gate and train-grace (#217, #218)

    Other

    • aebfa72 merge main: ADR index carries both 0030 and 0031
    • 2cfd4ba merge main: keep whoami enrichment, take post-#172 mcp-config row
    • 9f0483e merge main: reconcile worktree force-removal (#208) with git-signature add (#171) and hook-flow removal (#172)
    • f244254 merge main: retire the elicitation seam (both consumers gone via #208+#209), reconcile README to strict-omission
    Downloads
  • v0.16.0 5731c7fbe3

    v0.16.0 Stable

    hexajon released this 2026-07-17 16:26:09 +00:00 | 163 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • 9efecc3 feat(mcp): elicitation-gate forced worktree remove of a dirty or locked tree (#168)
    • bb1a9f9 feat(prune): rename deletion switch to --delete-branches on both surfaces (#205)
    • 0ceef4f feat(worktree): real cobra subcommands + short-flag validation in drift test (#169)
    • a676c00 feat(worktrees): dir+path rebase addressing parity + onto= default (#174 #175)

    Bug Fixes

    • c7a43b1 fix(api): normalize missing leading slash in endpoint (#198)
    • 35c823a fix(clone): interactive auth-login offer + coverage for credential routing (#163)
    • c977751 fix(deps): case-insensitive epic title prefix check (#210)
    • c738f93 fix(elicitation): drop the bare-close reason dialog - refusal parity across clients (#167)
    • e1a6f6b fix(errors): typed, actionable message for owner_repo 404s (#173)
    • 08093ff fix(mcp): madt_api_call returns tool error on non-2xx, jq/template not applied to errors
    • 5731c7f fix(mcp): server instructions + README use delete_branches; bind + alias tests lock the rename
    • 057f049 fix(release): cadence measures releasable scope, not commit volume

    Refactors

    • 936a372 refactor(issue): split issue_test.go into per-concern test files
    • 4a49dee refactor(mcp): move stray cross-noun helpers into helpers.go
    • 86e55df refactor(repo): split repo_test.go into per-concern test files
    • d0a90d5 refactor(service): move issue self-assignment flow out of cmd/git
    • cbe32e1 refactor(workflow): split finish.go into per-phase files

    Documentation

    • 3456ab7 docs(adr): ADR 0029 - strict-omission destruction model (#207)
    • 615d273 docs(comparison): plain hyphen in the install row
    • 78d20a2 docs(comparison): update worktree rebase clause (#174 #175)
    • 0ce2651 docs(prune): fix stale confirm=/--yes references missed by prior regen

    Other

    • 9851540 Revert "chore(assets): update madtea logo"
    • 21b99b9 merge main: reconcile elicitation.go package doc after #167 close-reason removal
    • ce3f700 merge main: union #168 force-remove gate with #174/#175 rebase addressing + onto default; regenerate reference docs
    • 96363a1 ux(clone): clone public repos unauthenticated; fix double error wrap
    • 1015bbd ux(install): narrate the plan and confirm each step, including sudo (#162)
    Downloads
  • v0.15.2 0e7cb12599

    v0.15.2 Stable

    hexajon released this 2026-07-16 17:28:17 +00:00 | 214 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • ab8ebb8 feat(actions): give the runner family an org form (#122)
    • 7f249a3 feat(adr): madtea adr command group - race-free new + drift-guard check (#26)
    • b9b4867 feat(api): exit nonzero on HTTP error responses, matching gh api (#105)
    • bea98f1 feat(finish): complete a remote-only branch via owner_repo= (no local checkout) (#49)
    • dd00d0b feat(gate): self-heal preflight for poisoned module cache (#132)
    • 77ffd6c feat(gpg-key): add top-level gpg-key command group with scope preflight (#53)
    • d7dda5f feat(mcp): extract DirScope embeddable with enforced tool matrix (#62)
    • 93307a3 feat(mcp): harden serve against mid-session drops with KeepAlive + stdout write watchdog
    • b37a84a feat(mcp): launch scope is the credential scope - refusals, parity guard, and the dir= report carve-out on madt_issues
    • 493b04b feat(mcp): madt_auth_login - in-session OAuth login, secure backend only (#89)
    • 5131c4e feat(orchestrate): reconcile mode gets dir=/owner_repo= on DirScope (#14)
    • 124f62a feat(ref-inspect): add contains ancestry check and worktree read-verb steering (#126)
    • a59588b feat(release): stamp tag version into artifact plugin.json at assemble time (#121)
    • 64c3bf1 feat(release): version-free asset filenames - stable latest-download URLs and a real Linux install one-liner
    • 0f8894a feat(repos): description in list output, check-metadata audit, user-repos suggestions (#50)
    • 7c260e5 feat(worktrees): port ephemeral-worktree revert to CLI pr revert and orchestrate (#131)
    • d33f739 feat(worktrees): run conflict-capable PR revert in an ephemeral worktree (#20)

    Bug Fixes

    • 733b906 fix(actions): strip event_payload from runs/tasks; add tasks pagination (#123)
    • fdf49e3 fix(api): propagate first-page HTTP status through --paginate (#105)
    • 33af7d4 fix(config): GetConfigForDir reads the target dir's own repo-local token
    • c6f6186 fix(dates): normalize YYYY-MM-DD date-only input for all date filter flags (#91)
    • 4fcd842 fix(finish): surface real error from resolveForeignDefaultBranch (#93)
    • e80a138 fix(hooks): close the git -c/-C commit early-exit bypass (#19)
    • a9ee2de fix(hooks): deny commit-creating continuation forms; madt_commit completes in-progress merge/revert/cherry-pick (#19)
    • 9bd3175 fix(issues): forward labels_filter as names and assignee as assigned_by (#142)
    • 6960a3c fix(mcp): enforce param scope on madt_ref_inspect; trim accepted-list globals (#127)
    • 7461796 fix(mcp): enforce per-action param scope, stop swallowing inapplicable params (#127)
    • ee19a95 fix(mcp): trim the org param doc under the madt_actions schema byte budget
    • 2bf7039 fix(mcp,cli): remove instance-breaking user/org delete; pin gated destructive remote surface (#120)
    • 79dc9de fix(orchestrate): name the worktree when reconcile checkout fails because branch is locked (#24)
    • 28f781a fix(orchestrate): thread invoking dir=/owner_repo= into reconcile conflict rails (#14)
    • bfcb893 fix(prune): bare prune is a pure dry run - gate fetch --prune behind confirm (#133)
    • 02fb8aa fix(serve): test-scope lifecycle log path under go test (#95)
    • b8ef918 fix(worktrees): refuse rebase targeting the primary checkout; name path in result lines (#125)

    Documentation

    • e3a1c19 docs(readme): restore the sixfold.space footer logo block

    Other

    • 58cb948 merge main into issue-26-adr-command-group: reconcile COMPARISON summary + regenerated reference docs
    • 071f2a9 merge: integrate main (tasks pagination) with the org runner surface
    • 1cbf417 ux(clone): name the resolved forge host; warn on mirror=true (#97)
    • 4ae7748 ux(mcp): probe credentials at initialize and warn in the banner when unauthed (#88)
    • 2f71d25 ux(worktrees): bounded conflict detail + sanctioned resolve path on rebase conflict (#21)

    Upgrading from v0.15.1 or older

    This release renames the downloadable archives to version-free filenames (madtea_linux_amd64.tar.gz), which makes the releases/download/latest/... install links permanently stable. Older installed binaries construct the previous versioned filename when self-updating, so madtea update from v0.15.1 or older fails with no release asset madtea_0.15.2_.... Reinstall once by hand; every later madtea update then works normally (0.15.2+ understands both naming eras):

    curl -fsSL https://codeberg.org/sixfold_space/madtea/releases/download/latest/madtea_linux_amd64.tar.gz | tar -xz
    ./madtea_linux_amd64/madtea install
    

    macOS: brew upgrade --cask madtea - Windows: scoop update madtea - or grab the matching archive for your platform from this page. Details in #164.

    Downloads
  • v0.15.1 b4b2667502

    v0.15.1 Stable

    hexajon released this 2026-07-15 16:09:54 +00:00 | 267 commits to main since this release

    Signed by hexajon
    GPG key ID: 6E62A0A72715C1F6

    Changelog

    Features

    • d3801a0 feat(compat): detect forge flavor and gate capabilities per host
    • 357e226 feat(mcp): rename name= → branch= on madt_branch_create and madt_branch_delete (#58)
    • 8c79760 feat(prs/finish): merge-state visibility on get + tailored merge-failure advice (#22)
    • a56f92c feat(status): one-call feature-branch orient read — branch-ahead commits + mainline release cadence (#38)
    • 102ac39 feat(ux): surface MCP tool errors via PostToolUse hook + serve log (#70)

    Bug Fixes

    • 59e906d fix(api): add dir list/list-root to contents suggestion; extend tests (closes #43)
    • eedd400 fix(auth): store OAuth client-id per-forge under host-keyed global key
    • 245c30c fix(docs): correct per-file package comments for tools_localgit, tools_branches, keychain (#17)
    • 125aad8 fix(docs): keychain.go comments — RetrieveLegacy is read-only, deletion is DeleteLegacy (#17)
    • 3f51f49 fix(finish/merge): back off 5s→10s→15s on transient 405 'try again later'
    • a44b132 fix(gate): auto-bootstrap mcp-conformance npm deps in fresh worktrees (#23)
    • a912b92 fix(hooks): detect orchestrate reconcile subcommand correctly in steer (#18)
    • 8969b90 fix(labels): resolve org-label names for PR list; verify cross-repo search, closes #64
    • 997ce50 fix(labels): resolve org-level labels by name, closes #12
    • acb6031 fix(labels): trim whitespace from CSV parts in ResolveLabelsCSV
    • 7d0f176 fix(mcp): make madt_orchestrate reconcile mode reachable via schema (#18)
    • e38e8b9 fix(mcp): update agent guidance to use branch= on madt_branch_create/delete (#58)
    • bf95c99 fix(merge): extend default_merge_style honoring to orchestrate batch merges
    • 3fd8b3c fix(merge): honor repo default_merge_style when no strategy chosen
    • fe588f7 fix(plugin): set the plugin author to jon@sixfold.space
    • f110c7e fix(pr/merge): route pr merge + mcp merge through transient-405 backoff (#13)
    • f0431ba fix(prune): dry-run/delete set mismatch, single-run tracking-ref cleanup, no raw git passthrough (#63)
    • 79cb0bb fix(pull): match git's informativeness on refuse and success (#16)
    • b4b2667 fix(release): make release.sh survive tag.gpgsign and a missing forge release
    • 1f3fd5c fix(release): ship license + docs in archives, drop unused man pages (#61)
    • 818f3e3 fix(release): vendor plugin artifact into claude-plugins; satellite preflight + resumable post-publish
    • 8ed233b fix(serve): disclose the PostToolUse error-surfacing hook in the install consent copy (#70)
    • 35fe04a fix(update): enrich update-failure errors with the request URL and a cause-specific hint
    • 4c7a182 fix: scrub internal identity tokens from the public source tree
    • c606ab1 fix: stop shipping dev-session .claude/ artifacts in the source tree

    Performance

    • 6177451 perf(mcp): remove brand mark from MCP tool titles (#11)

    Documentation

    • df63677 docs(adr): ADR 0027 — launch scope is the credential boundary; dir= is never a token selector (refs #90, #59)
    • 052ec73 docs(go): add per-file package doc comments for config, cmdutil, mcp (#17)
    • 6f20e25 docs(readme): replace placeholder tap/bucket install URLs with the real Codeberg repos
    • 17e3e7d docs(releasing): update satellite targets to their sixfold_space/Codeberg homes
    • 890911b docs: restructure README into a plain quick-start + build-from-source document

    Other

    • 4ea33d0 merge main into issue-79-desc-citation-sweep (consent-line union with worktree steering hook)
    • 6a247ae style(danglingref): Fprintf over concatenated WriteString in violation reports (#79)
    • d876c1f ux(add): conflict-aware staging confirmation during in-progress merge (#25)
    • 1c8d581 ux(steering): hard-steer raw git worktree to the madtea worktree surface (#69)
    • 8e3a5d5 ux(steering): sweep ADR-number citations from shipped steer/refusal strings (#15)
    • b25ce8c ux(steering): terminal/forwarding guard texts + hook internal-ref sweep (#15)
    Downloads