-
v0.18.5
StableAll checks were successfuldrift / govulncheck (push) Has been skippeddrift / surface-diff (push) Successful in -2sci / gate (push) Successful in 22m39sdrift / govulncheck (pull_request) Has been skippeddrift / surface-diff (pull_request) Successful in 1m8sdrift / forgejo-smoke (pull_request) Has been skippedci / mcp-conformance (pull_request) Successful in 1m53sci / mcp-conformance (push) Successful in 7sdrift / forgejo-smoke (push) Has been skippedci / gate (pull_request) Successful in 24m1sreleased this
2026-09-09 21:45:10 +00:00 | 5 commits to main since this releaseChangelog
Features
3962268feat(finish): schedule auto-merge-on-green when a merge is gated on required CI checks (#438)
Bug Fixes
301ef4efix(commit): count files for a root commit with diff-tree --root (#454)f09a263fix(finish): surface real merge errors verbatim, classify non-retryable, re-check landed state after a 5xx (#456)c7b23f7fix(prune): classify a does-not-exist 500 on remote branch-delete as already-gone, not an error (#449)680d199fix(status): report the repo's own origin host in status --json, not the auth target (#429)
Documentation
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.18.4
StableAll checks were successfuldrift / govulncheck (pull_request) Has been skippeddrift / surface-diff (pull_request) Successful in 54sdrift / forgejo-smoke (pull_request) Has been skippedci / mcp-conformance (pull_request) Successful in 2m9sci / mcp-conformance (push) Successful in 2sdrift / govulncheck (push) Has been skippeddrift / surface-diff (push) Successful in -6sdrift / forgejo-smoke (push) Has been skippedci / gate (push) Successful in 12m42sci / gate (pull_request) Successful in 17m51sreleased this
2026-08-27 02:51:26 +00:00 | 13 commits to main since this releaseChangelog
Features
0e6f827feat(git): resolve commit author/committer from the target repo's local config and add a pre-push identity guard (#425 item 1)5736e90feat(help): add init help topic and route madt_init to cli-setup0fc7f6cfeat(mcp): adopt the 2026-07-28 protocol (go-sdk v1.6.1 -> v1.7.0)f3d81eefeat(prune): dry run previews the full set, incl. remote-only orphans90c68c2feat(release): narrow plugin vendor to hooks+skills, idempotent, marketplace-owned manifest9881998feat(repo): add branch-protection set (create-or-update upsert)077e467feat(repos): add fast-forward-only and rebase-explicit merge flags; fix allow_rebase_update description; cross-reference branch protection (#431, #432)4e6fb7bfeat: home distribution and the self-updater to cheshirecube
Bug Fixes
7224170fix(config): resolve the forge from the working context, not a stale global default87f9c08fix(conformance): mark the ambiguous-forge probe's expected server ERROR logabcea12fix(install): use Forgejo's releases/download/latest URL, not GitHub's latest/download (404s on the forge)d5f4d80fix(pull): allow the first fast-forward into an unborn branchb3b11bffix(release): pin the plugin-vendor commit to the public author identityb8a0382fix(repos): rename --allow-ff-only to --allow-rebase-update, matching the live forge field allow_rebase_update it sets
Refactors
ef0e688refactor: migrate module path to madtea.lol and repoint distribution to the GitHub edge
Documentation
7b32350docs: document the release PAT storage and rotation via systemd-creds (#380)7b1f4a1docs: record public-home + GitHub-edge decision (ADR 0032, #380)53f9486docs: remove pre-launch hedging now the forge and madtea.lol are liveb95d434docs: scope the release PAT credential name to madtea-release-pat (#380)4b410d0docs: store the release PAT via read+printf to avoid a stray newline (#380)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.18.3 Stable
released this
2026-07-28 17:42:56 +00:00 | 42 commits to main since this releaseChangelog
Features
7089fb4feat(clone): diagnose directory-already-exists with origin comparison (#350)11d52a4feat(git): loud what/why/action messaging on the local git and finish surfaces5c0fe35feat(issues): add owner_repo= to madt_issues action=import (#351)
Bug Fixes
c8817cffix(clone): correctly diagnose same-repo when using shorthand; mask URL credentials in requested-display6854adffix(clone): dir-exists diagnosis requires the dir to be its own repo root (#350)91ff288fix(hooks): steer git pull and stop compound chains slipping the branch-d guard (#352)0b3d43bfix(import): add path-traversal and injection guards to CLI --repo path, shared via util.ValidateOwnerRepoSegments, and add routing coverage test
Documentation
ef90eebdocs(mcp): clarify ; vs , in expr param description for deps_add (#353)d8c03e4docs(security): drop the pre-release reporting note now the repo is public
Other
6baf3b1style(opspec): plain hyphen in the expr separator one-liner
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.18.2 Stable
released this
2026-07-22 18:54:19 +00:00 | 55 commits to main since this releaseChangelog
Features
65c35d1feat(ssh): clone over SSH natively in ssh modes - no HTTPS URL construction, no credential resolutionb68707ffeat(ssh): create pull requests over AGit in ssh-only mode61ee200feat(ssh): finish and push legs over SSH in ssh modes; API legs gate on the token
Bug Fixes
fa3c00dfix(auth): ssh-only login names a leftover stored token instead of stranding it silently645baeffix(orchestrate): enforce the batch-merge pre-flight; bisect errors record a Failure
Documentation
07d5886docs(claims): update orchestrate rows for the landed #331/#332 fixesced7a0adocs(setup): ssh-only ignores a passed --token rather than rejecting itc5cb020docs(ssh): SSH-first setup path as a peer of the token path (#299)d7fbeb1docs: CLAIMS.md behavioral-promise register with a staleness guard
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.18.1 Stable
released this
2026-07-22 17:51:20 +00:00 | 69 commits to main since this releaseChangelog
Features
fab96f4feat(docs): every generated reference page opens with a plain-English summary7967f8afeat(finish): rerun promise pinned end to end; stale index.lock self-heals or teaches9476f0afeat(releases): asset download lists every downloaded file with sizes155bd0ffeat(ssh): auth-side SSH preflight - key presence, known_hosts steer, identity probef5a5797feat(ssh): protocol mode - persisted git-protocol choice at auth login5298e6dfeat(ssh): typed degradation errors for API-dependent commands in ssh-only mode
Bug Fixes
7a771c2fix(actions): unshadow the per-run artifact listing as run-artifacts; guard sibling name collisionsf3d886bfix(ci): drop the workflow permissions field - Forgejo ignores it with a warning09d8653fix(finish): leftover trailer names files and tree path (#309)f5230adfix(git): stale-lock recovery covers commit and worktree-add legs; re-stat before removal02df6e1fix(guides): remove fabricated flags from tour pages9480d73fix(mcp): worktrees rebase summary back under the anti-bloat ceiling50f1056fix(prune): deletion output names every deleted branch; preview-first hint for the widened --remote set0b7b9fffix(security): bind host-agnostic tokens to a recorded forge host4ae93bcfix(security): foreign-guard use-ssh dir=, 0600 analytics log, no exec of user-writable stale candidates, redact 403 hintb1a79ddfix(ssh): strip control chars from the probe greeting; success line names the trust boundaryb9179cafix(users): emails delete confirmation names the deleted addresses
Documentation
947154fdocs(#315): backtick-quote angle-bracket placeholders in prose68a8287docs(guides): add install.md as canonical install home; slim README to headline one-liner9b0e1fddocs(guides): move README workflow tours into docs/guides (#316)aba7ae1docs(install): adopt the voiced Take a Seat install guide as the canonical text6e3ac7bdocs(install): restore the update --verify drift-repair pointer3cb9148docs(mcp): restore the two trimmed description fragments; hyphen frees the byte budgetba1b31fdocs(public): neutralize private forge hostname in fixtures; retire Gemini from all live client listingsc9dc42bdocs(public): reword decision attributions to neutral voice; neutralize private example pathsee75221docs(security): updater trust model + sudoers caveat in SECURITY.md; honest ADR 0027 residual-risk boundary13acebadocs: canonical install guide at docs/guides/install.md; README leans on madtea.lolabdb2aadocs: mark legacy pre-migration tracker refs as non-autolinking (legacy tracker NNNN)3c42976docs: short ADR titles, dead-tracker purge, and render fixes from the docs-site review
Other
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.18.0 Stable
released this
2026-07-19 00:23:35 +00:00 | 117 commits to main since this releaseChangelog
Features
273c57bfeat(auth): add forge-URL resolution chain to whoami output (#201)20f87dffeat(auth): madt_auth_whoami dir= local-resolution identity report (#155)ca53f60feat(clients)!: retire gemini client to a deprecation stub, verify antigravity wiring (#226)027c144feat(commit)!: refuse committing on the default branch by default507b9e6feat(mcp): add release and reconcile workflow prompts (#242)d79e0c9feat(release): patch tier for 0.x feats + 24h daily-cap gate (#244)f86f867feat(release): shipped-prunable report + --prune opt-in (#221)62c0ee3feat(status/finish): warn when default branch is ahead of origin (#224)
Bug Fixes
569298bfix(docs): index rows for toolless Intro-bearing domains - destructive.md rejoins the generated reference index
Documentation
66641ffdocs(arch): add prompts-vs-skills boundary note and drift guard (#241)3d162d3docs(architecture): sweep six drift candidates against current code (#246)50fecb1docs(release): correct stale breaking-weight comments to 15 in the reporter headerse85f199docs(release): fix stale 0.x tier descriptions - remove feat-bumps-minor from releasing.md:189, release.sh header, and ADR index (#244)f65580adocs: public-release accuracy sweep - every prose doc reconciled with current codea0f263bdocs: repo-wide cross-link sweep (#245)
Other
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.17.0 Stable
released this
2026-07-17 18:49:04 +00:00 | 135 commits to main since this releaseChangelog
Features
f00d40bfeat(auth): whoami split-brain cross-check + full resolution chain (#200 #201)b3938d4feat(cli): add worktree status and rebase subcommands (#170)0a8573bfeat(delete)!: omit all irreversible forge-data deletes from every surface (#209)7ab4037feat(install)!: mcp-config prints only; all client wiring moves tomadtea install343a046feat(install): consolidate setup under install for #1720ce0669feat(install): replace --yes with --yes-sudo and --yes-delete-stale (#204)db218e6feat(release): add windows/arm64 to build matrix (#161)2109b17feat(release): tier-weighted score + train-grace gate (#217, #218)84a5e8cfeat(worktree)!: align CLI add with git's signature (-b creates, positional checks out) (#171)5af4dccfeat(worktree)!: remove force-discard from both surfaces (#208)
Bug Fixes
354947efix(actions): bridge run_number/id mismatch, limit passthrough, strip event_payload (#157)08b7116fix(clone): treat full-URL clone host as the forge (#197)74ca99ffix(errors): context-rich repo-scoped 404s + live Forgejo marker (#199, #185)b3fbd57fix(mcp-config): --install for the Claude Code target refuses with a pointer, never exits 0 having installed nothing0bf65c6fix(release): breaking weighs 15 - one pending breaking change crosses the soft line alone; add release-due banner tests23d3350fix(release): herestring the tier greps - pipefail + grep -q SIGPIPE silently dropped feat/breaking detectionea394d2fix(worktree): sweep force from CLI revert conflict rail (#208)
Refactors
0754ebdrefactor(cmd): unify service construction - drop gitea.NewClient in cmd layer (#192)182a96drefactor(install): drop dead confirm() - consentOrDecline owns consent; test promptYesNo directly
Documentation
1a83a97docs(adr): ADR 0031 - recoverable-guard tier: refuse wrong-workflow acts, per-call allow override0da9ed0docs(adr): restore ADR navigability stripped bycc3fa200+8e3a5d5dsweepsce59f32docs(install): fix README no-TTY description for #204 flag split214f2a4docs(release): update cadence docs for score-based gate and train-grace (#217, #218)
Other
aebfa72merge main: ADR index carries both 0030 and 00312cfd4bamerge main: keep whoami enrichment, take post-#172 mcp-config row9f0483emerge main: reconcile worktree force-removal (#208) with git-signature add (#171) and hook-flow removal (#172)f244254merge main: retire the elicitation seam (both consumers gone via #208+#209), reconcile README to strict-omission
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.16.0 Stable
released this
2026-07-17 16:26:09 +00:00 | 163 commits to main since this releaseChangelog
Features
9efecc3feat(mcp): elicitation-gate forced worktree remove of a dirty or locked tree (#168)bb1a9f9feat(prune): rename deletion switch to --delete-branches on both surfaces (#205)0ceef4ffeat(worktree): real cobra subcommands + short-flag validation in drift test (#169)a676c00feat(worktrees): dir+path rebase addressing parity + onto= default (#174 #175)
Bug Fixes
c7a43b1fix(api): normalize missing leading slash in endpoint (#198)35c823afix(clone): interactive auth-login offer + coverage for credential routing (#163)c977751fix(deps): case-insensitive epic title prefix check (#210)c738f93fix(elicitation): drop the bare-close reason dialog - refusal parity across clients (#167)e1a6f6bfix(errors): typed, actionable message for owner_repo 404s (#173)08093fffix(mcp): madt_api_call returns tool error on non-2xx, jq/template not applied to errors5731c7ffix(mcp): server instructions + README use delete_branches; bind + alias tests lock the rename057f049fix(release): cadence measures releasable scope, not commit volume
Refactors
936a372refactor(issue): split issue_test.go into per-concern test files4a49deerefactor(mcp): move stray cross-noun helpers into helpers.go86e55dfrefactor(repo): split repo_test.go into per-concern test filesd0a90d5refactor(service): move issue self-assignment flow out of cmd/gitcbe32e1refactor(workflow): split finish.go into per-phase files
Documentation
3456ab7docs(adr): ADR 0029 - strict-omission destruction model (#207)615d273docs(comparison): plain hyphen in the install row78d20a2docs(comparison): update worktree rebase clause (#174 #175)0ce2651docs(prune): fix stale confirm=/--yes references missed by prior regen
Other
9851540Revert "chore(assets): update madtea logo"21b99b9merge main: reconcile elicitation.go package doc after #167 close-reason removalce3f700merge main: union #168 force-remove gate with #174/#175 rebase addressing + onto default; regenerate reference docs96363a1ux(clone): clone public repos unauthenticated; fix double error wrap1015bbdux(install): narrate the plan and confirm each step, including sudo (#162)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.15.2 Stable
released this
2026-07-16 17:28:17 +00:00 | 214 commits to main since this releaseChangelog
Features
ab8ebb8feat(actions): give the runner family an org form (#122)7f249a3feat(adr): madtea adr command group - race-free new + drift-guard check (#26)b9b4867feat(api): exit nonzero on HTTP error responses, matching gh api (#105)bea98f1feat(finish): complete a remote-only branch via owner_repo= (no local checkout) (#49)dd00d0bfeat(gate): self-heal preflight for poisoned module cache (#132)77ffd6cfeat(gpg-key): add top-level gpg-key command group with scope preflight (#53)d7dda5ffeat(mcp): extract DirScope embeddable with enforced tool matrix (#62)93307a3feat(mcp): harden serve against mid-session drops with KeepAlive + stdout write watchdogb37a84afeat(mcp): launch scope is the credential scope - refusals, parity guard, and the dir= report carve-out on madt_issues493b04bfeat(mcp): madt_auth_login - in-session OAuth login, secure backend only (#89)5131c4efeat(orchestrate): reconcile mode gets dir=/owner_repo= on DirScope (#14)124f62afeat(ref-inspect): add contains ancestry check and worktree read-verb steering (#126)a59588bfeat(release): stamp tag version into artifact plugin.json at assemble time (#121)64c3bf1feat(release): version-free asset filenames - stable latest-download URLs and a real Linux install one-liner0f8894afeat(repos): description in list output, check-metadata audit, user-repos suggestions (#50)7c260e5feat(worktrees): port ephemeral-worktree revert to CLI pr revert and orchestrate (#131)d33f739feat(worktrees): run conflict-capable PR revert in an ephemeral worktree (#20)
Bug Fixes
733b906fix(actions): strip event_payload from runs/tasks; add tasks pagination (#123)fdf49e3fix(api): propagate first-page HTTP status through --paginate (#105)33af7d4fix(config): GetConfigForDir reads the target dir's own repo-local tokenc6f6186fix(dates): normalize YYYY-MM-DD date-only input for all date filter flags (#91)4fcd842fix(finish): surface real error from resolveForeignDefaultBranch (#93)e80a138fix(hooks): close the git -c/-C commit early-exit bypass (#19)a9ee2defix(hooks): deny commit-creating continuation forms; madt_commit completes in-progress merge/revert/cherry-pick (#19)9bd3175fix(issues): forward labels_filter as names and assignee as assigned_by (#142)6960a3cfix(mcp): enforce param scope on madt_ref_inspect; trim accepted-list globals (#127)7461796fix(mcp): enforce per-action param scope, stop swallowing inapplicable params (#127)ee19a95fix(mcp): trim the org param doc under the madt_actions schema byte budget2bf7039fix(mcp,cli): remove instance-breaking user/org delete; pin gated destructive remote surface (#120)79dc9defix(orchestrate): name the worktree when reconcile checkout fails because branch is locked (#24)28f781afix(orchestrate): thread invoking dir=/owner_repo= into reconcile conflict rails (#14)bfcb893fix(prune): bare prune is a pure dry run - gate fetch --prune behind confirm (#133)02fb8aafix(serve): test-scope lifecycle log path under go test (#95)b8ef918fix(worktrees): refuse rebase targeting the primary checkout; name path in result lines (#125)
Documentation
e3a1c19docs(readme): restore the sixfold.space footer logo block
Other
58cb948merge main into issue-26-adr-command-group: reconcile COMPARISON summary + regenerated reference docs071f2a9merge: integrate main (tasks pagination) with the org runner surface1cbf417ux(clone): name the resolved forge host; warn on mirror=true (#97)4ae7748ux(mcp): probe credentials at initialize and warn in the banner when unauthed (#88)2f71d25ux(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 thereleases/download/latest/...install links permanently stable. Older installed binaries construct the previous versioned filename when self-updating, somadtea updatefrom v0.15.1 or older fails withno release asset madtea_0.15.2_.... Reinstall once by hand; every latermadtea updatethen 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 installmacOS:
brew upgrade --cask madtea- Windows:scoop update madtea- or grab the matching archive for your platform from this page. Details in #164.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.15.1 Stable
released this
2026-07-15 16:09:54 +00:00 | 267 commits to main since this releaseChangelog
Features
d3801a0feat(compat): detect forge flavor and gate capabilities per host357e226feat(mcp): rename name= → branch= on madt_branch_create and madt_branch_delete (#58)8c79760feat(prs/finish): merge-state visibility on get + tailored merge-failure advice (#22)a56f92cfeat(status): one-call feature-branch orient read — branch-ahead commits + mainline release cadence (#38)102ac39feat(ux): surface MCP tool errors via PostToolUse hook + serve log (#70)
Bug Fixes
59e906dfix(api): add dir list/list-root to contents suggestion; extend tests (closes #43)eedd400fix(auth): store OAuth client-id per-forge under host-keyed global key245c30cfix(docs): correct per-file package comments for tools_localgit, tools_branches, keychain (#17)125aad8fix(docs): keychain.go comments — RetrieveLegacy is read-only, deletion is DeleteLegacy (#17)3f51f49fix(finish/merge): back off 5s→10s→15s on transient 405 'try again later'a44b132fix(gate): auto-bootstrap mcp-conformance npm deps in fresh worktrees (#23)a912b92fix(hooks): detect orchestrate reconcile subcommand correctly in steer (#18)8969b90fix(labels): resolve org-label names for PR list; verify cross-repo search, closes #64997ce50fix(labels): resolve org-level labels by name, closes #12acb6031fix(labels): trim whitespace from CSV parts in ResolveLabelsCSV7d0f176fix(mcp): make madt_orchestrate reconcile mode reachable via schema (#18)e38e8b9fix(mcp): update agent guidance to use branch= on madt_branch_create/delete (#58)bf95c99fix(merge): extend default_merge_style honoring to orchestrate batch merges3fd8b3cfix(merge): honor repo default_merge_style when no strategy chosenfe588f7fix(plugin): set the plugin author to jon@sixfold.spacef110c7efix(pr/merge): route pr merge + mcp merge through transient-405 backoff (#13)f0431bafix(prune): dry-run/delete set mismatch, single-run tracking-ref cleanup, no raw git passthrough (#63)79cb0bbfix(pull): match git's informativeness on refuse and success (#16)b4b2667fix(release): make release.sh survive tag.gpgsign and a missing forge release1f3fd5cfix(release): ship license + docs in archives, drop unused man pages (#61)818f3e3fix(release): vendor plugin artifact into claude-plugins; satellite preflight + resumable post-publish8ed233bfix(serve): disclose the PostToolUse error-surfacing hook in the install consent copy (#70)35fe04afix(update): enrich update-failure errors with the request URL and a cause-specific hint4c7a182fix: scrub internal identity tokens from the public source treec606ab1fix: stop shipping dev-session .claude/ artifacts in the source tree
Performance
Documentation
df63677docs(adr): ADR 0027 — launch scope is the credential boundary; dir= is never a token selector (refs #90, #59)052ec73docs(go): add per-file package doc comments for config, cmdutil, mcp (#17)6f20e25docs(readme): replace placeholder tap/bucket install URLs with the real Codeberg repos17e3e7ddocs(releasing): update satellite targets to their sixfold_space/Codeberg homes890911bdocs: restructure README into a plain quick-start + build-from-source document
Other
4ea33d0merge main into issue-79-desc-citation-sweep (consent-line union with worktree steering hook)6a247aestyle(danglingref): Fprintf over concatenated WriteString in violation reports (#79)d876c1fux(add): conflict-aware staging confirmation during in-progress merge (#25)1c8d581ux(steering): hard-steer raw git worktree to the madtea worktree surface (#69)8e3a5d5ux(steering): sweep ADR-number citations from shipped steer/refusal strings (#15)b25ce8cux(steering): terminal/forwarding guard texts + hook internal-ref sweep (#15)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads