• v0.21.0 9da9c520e5

    v0.21.0
    Some checks failed
    ci / gate (pull_request) Has been cancelled
    drift / govulncheck (pull_request) Has been cancelled
    drift / surface-diff (pull_request) Has been cancelled
    drift / forgejo-smoke (pull_request) Has been cancelled
    ci / gate (push) Has been cancelled
    drift / govulncheck (push) Has been cancelled
    drift / surface-diff (push) Has been cancelled
    drift / forgejo-smoke (push) Has been cancelled
    Stable

    hexajon released this 2026-10-23 23:50:52 +00:00 | 19 commits to main since this release

    Changelog

    Features

    • e6c2355 feat!: a forge content write into an empty repo refuses and names madtea init
    • 2a800a8 feat!: a revert opens its own issue and its merge closes it
    • 32766ca feat!: every PR merge through madtea closes its branch issue, checked at the merge send seam
    • d1f2d7f feat!: every first push asks a person, with MCP answers bound to single-use request states, and finish creates a missing forge repo
    • f0fd1f4 feat!: finish makes a first push into an empty repo only after a person answers yes
    • 5c49073 feat!: finish takes no close inputs and refuses before the forge when its issue cannot close
    • cdd45dd feat!: repo topics are append-only
    • b7d810c feat: a repo create that seeds content asks the new-repo question, and an init suggestion shows only in the question text
    • d809cf8 feat: a revert retry reuses its open revert issue, and a later failure names that issue
    • 6e144cd feat: an unreadable forge needs a tracking ref before a push, and a revert retry reuses only safe leftovers
    • e21da27 feat: finish refuses an origin on another forge host and a dir= target with an empty forge repo
    • 977636c feat: read the dependency setting on a 404, and refuse an unknown state or a hidden dependency
    • c157c07 feat: run staticcheck and modernize before the heavy gate block, and stop on a finding
    • be46d0f feat: run the internal/docs tests in the docs-only gate, in parallel

    Bug Fixes

    • 6d788d5 fix!: clone reports the checked-out branch or tag, not a default branch (#684)
    • bd1bbd2 fix: clear the two staticcheck findings in the adr service
    • 37bd03d fix: decide the first push into an empty repo from the forge
    • eaf7733 fix: keep git push output off the process stdout and quiet under MCP
    • b190c6b fix: keep rendered-help records per command and check Short too
    • 069d6b5 fix: list only the called action's arguments on an unknown argument
    • 50002ae fix: name finish title and summary, and the search query concept on q
    • 05822ab fix: read call-string action sets from the served tool schemas
    • 67af3a1 fix: read every page of an issue's dependency list so an open dependency past page 1 refuses
    • c8598c0 fix: refuse a push refspec that begins with '+', so no push can force an update
    • 7d83504 fix: refuse a push with no local default and ask on an unparsable create body
    • 6aecd97 fix: resolve status identity through one resolver for every path
    • 07839d3 fix: resolve the repo edit suggestion command token (#813)
    • 87631fe fix: return a schema-valid empty result from madt_api_call
    • e814305 fix: route five git pushes through the guarded writer
    • ba9240c fix: run the dependency cycle check before blocks_add writes an edge
    • 9d75b87 fix: say finish summary fills the PR summary section, and make it optional in the prompt
    • 4607be5 fix: take the status host from the API forge resolution
    • 683fffe fix: update hono to 4.13.13 in the conformance harness lockfile for GHSA-5r4p-p66f-jhc7

    Documentation

    • 8f45074 docs: ADR 0036 names adr check --skip-forge-checks, and ADR 0044 drops the removed npm lockfile
    • 9954db6 docs: MCP init shows the agent's values as suggestions that a person confirms
    • aa2a181 docs: a person picks owner, name, and visibility when finish creates the forge repo
    • 611206e docs: accept ADR 0045 and ADR 0057
    • 31d5baf docs: accept ADR 0056, one git-run chokepoint owns output disposition (#806)
    • 357ee88 docs: accept ADR 0058, only madtea writes close and reopen words
    • f33cb11 docs: accept the docs-only gate record
    • 3274743 docs: accept the finish close-inputs record, with its record issue as the decision issue
    • 804b4cb docs: add ADR 0056, one git-run chokepoint owns output disposition (#806)
    • 1c8a122 docs: add ADR 0057, repo topics are append-only (#815)
    • ec96b58 docs: add ADR 0058, only madtea writes close and reopen words
    • 8296464 docs: add a glossary of the abbreviations the docs use
    • 8c4e2c7 docs: bind each MCP first-push answer to a question that madtea asked
    • 9308399 docs: cover every doc abbreviation in the glossary and lock it with a test
    • 66416f9 docs: describe the close rule for every merge and drop the stale close-input advice
    • b026523 docs: describe the person's yes for every first push, the init questions, and the empty-repo forge write refusal
    • 2321ea1 docs: document the gate's docs-only mode
    • 1ea9ee4 docs: drop line numbers from the repo setting record
    • c1e2be0 docs: drop the legacy numbering sentence from the adr help
    • cb96671 docs: every first push into an empty repo needs a person's yes
    • 56155b7 docs: extend the close rule to every merge path as one guard limit
    • 2dd82c7 docs: follow the MCP protocol standard for the person question, and name forks as seeded creates
    • b4eaeb7 docs: index ADR 0057, repo topics are append-only (#815)
    • fca4ae1 docs: link the repo-targeting map from the docs index
    • c81853b docs: map how each surface picks its repo, forge, and credential (#685)
    • 7708bfa docs: point the finish close record at its decision issue
    • 2877308 docs: point the multi-repo and close-word records at the finish close rule
    • f1a7cb7 docs: propose one repo setting that names a forge repo, with one meaning
    • 5f7b4f9 docs: propose that finish takes no close inputs and refuses before the forge
    • 432fa7f docs: remove the glossary and its tests
    • a82970e docs: require tests for new or changed behavior in CONTRIBUTING.md
    • 469fe91 docs: rule origin, request-state use, CLI proof, API first writes, revert retries, and dependencies off
    • 7ba7e43 docs: rule the five open points of the finish close-inputs record
    • cac2ad7 docs: rule the resumed-PR close line and the empty-repo first push for finish
    • bbb5df0 docs: rule the round-three open points of the first-push and revert rules
    • cc77380 docs: state the one-issue branch rule in the contributor notes
    • a8bb29e docs: state the real output disposition in the RunGitAuthDirWithStderr comment
    • 0069d11 docs: sync the ADR index row for 0056 to accepted
    • 690c227 docs: use a plain hyphen in the gate command line
    Downloads