• v0.16.0 5731c7fbe3

    v0.16.0 Stable

    hexajon released this 2026-07-17 16:26:09 +00:00 | 405 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 | 456 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 | 509 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
  • v0.15.0 4a262b2624

    v0.15.0 Stable

    hexajon released this 2026-07-13 20:38:48 +00:00 | 579 commits to main since this release

    Changelog

    Features

    • bad3108 feat(config): host-keyed TokenStore v2 with legacy retrieval (ADR 0025)
    • d6f38f3 feat(config): host-keyed token resolution with legacy migration (ADR 0025)
    • 4d8d5b5 feat(config): origin-first forge resolution and host-keyed credentials (ADR 0025)
    • c678594 feat(config): origin-first resolution chain (ADR 0025)
    • 27863d6 feat(config): per-dir/per-URL resolution, origin-aware login, session forge, dir= forge routing (ADR 0025 T5-T10)
    • d5fb8c1 feat(config): remote host parsing + origin-derived forge URL (ADR 0025)

    Bug Fixes

    • 36efc3a fix(ci): run jobs on Debian glibc image so JS actions get a working node
    • 40723f9 fix(config): keep RetrieveLegacy dormant until Task 3 migration wiring
    • cfe3e93 fix(release): preflight fetch goes through madtea's authenticated path
    • 32f79ea fix(release): retarget release + self-update from internal Gitea to Codeberg
    • 38250b3 fix: genericize internal fixtures/comments that crept into HEAD since issue 1275

    Refactors

    • 51ce1b3 refactor: rename camelCase MadTea/madTea identifiers to Madtea/madtea

    Documentation

    • ff325e1 docs(adr): ADR 0025 — origin-first forge resolution and host-keyed credentials
    Downloads