Releases: stacklok/mecatl
Release list
v0.0.35
Install
brew install stacklok/tap/mecatlInstalls both mecated (the server) and mecatui (the terminal UI).
Changelog
Features
Fixes
- c90836a: fix(mcpbroker): authenticated metadata replaces static protected-tool stand-ins (#1320) (@jhrozek)
- 7ff406a: fix(slack-bot): scope DMs by thread (#1410) (@samuv)
Other changes
- 2a80624: Release v0.0.35 (#1417) (@toolhive-release-app[bot])
- ebfc1e1: perf(ci): blob-filter the release workflows' depth-0 checkouts (#1411) (@rdimitrov)
Verify
cosign verify-blob \
--certificate-identity 'https://github.com/stacklok/mecatl/.github/workflows/release.yml@refs/tags/v0.0.35' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json checksums.txt
sha256sum --check --ignore-missing checksums.txt
gh attestation verify mecatl_0.0.35_darwin_arm64.tar.gz --repo stacklok/mecatlv0.0.34
Install
brew install stacklok/tap/mecatlInstalls both mecated (the server) and mecatui (the terminal UI).
Changelog
Features
- cab8ef3: feat(auth): add caller validation observability (#1236) (@JAORMX)
- d513835: feat(mecak8s): add stable installation telemetry ID (#1366) (@JAORMX)
- 9e4794c: feat(mecatui): add logical conversation anchors (#1227) (@jbeda)
- 639fe91: feat(mecatui): broker MCP connector status inventory (#1372) (@jhrozek)
- d7f1afc: feat(mecatui): enable readline prompt navigation (#1336) (@blkt)
- e7726f0: feat(website): publish llms.txt (#1373) (@danbarr)
- 25ea694: feat: rename Bash tool to Shell (#1324) (@jbeda)
Fixes
- 8bcece4: fix(lint): fix gci import grouping in cmd/mecak8s/flags.go (#1374) (@jhrozek)
- e55a408: fix(mcp): surface pending authorization in mecatui (#1371) (@jhrozek)
- ade7a3d: fix(mcpbroker): make invalid query targets recoverable (#1390) (@jhrozek)
- a5b6142: fix(mecatui): bound approval dialog height (#1387) (@jbeda)
- 343d553: fix(mecatui): label compact permission mode (#1381) (@danbarr)
- d43cd00: fix: allow root ListDir in Redis workspaces (#1363) (@jerm-dro)
- 1f7ce61: fix: preserve MCP broker bindings for session successors (#1389) (@jhrozek)
Other changes
- 356a140: Improve mecak8s MCP broker observability (#1380) (@jhrozek)
- ad8fbeb: Update LLM gateway proxy documentation (#1402) (@dussab)
- e73aaa4: Update agent identity and consent record details (#1400) (@dussab)
Verify
cosign verify-blob \
--certificate-identity 'https://github.com/stacklok/mecatl/.github/workflows/release.yml@refs/tags/v0.0.34' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json checksums.txt
sha256sum --check --ignore-missing checksums.txt
gh attestation verify mecatl_0.0.34_darwin_arm64.tar.gz --repo stacklok/mecatlv0.0.33
Install
brew install stacklok/tap/mecatlInstalls both mecated (the server) and mecatui (the terminal UI).
Changelog
Features
- d456089: feat(mecated): log version on startup (#1358) (@danbarr)
- 85fbbd0: feat(slack-bot): channel-ID allowlist via SLACK_ALLOWED_CHANNEL_IDS (#1364) (@kantord)
Fixes
Verify
cosign verify-blob \
--certificate-identity 'https://github.com/stacklok/mecatl/.github/workflows/release.yml@refs/tags/v0.0.33' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json checksums.txt
sha256sum --check --ignore-missing checksums.txt
gh attestation verify mecatl_0.0.33_darwin_arm64.tar.gz --repo stacklok/mecatlv0.0.32
Install
brew install stacklok/tap/mecatlInstalls both mecated (the server) and mecatui (the terminal UI).
Changelog
Fixes
- e2e0070: fix(mecatui): restore broker polling liveness (#1341) (@jhrozek)
- ddd68ab: fix(release): drop the parallelism cap and raise the CLI job timeout (#1349) (@rdimitrov)
Other changes
- 28e2566: perf: extract flaghelp into a leaf package, cutting mecademo 84 -> 13 MB (#1354) (@rdimitrov)
Verify
cosign verify-blob \
--certificate-identity 'https://github.com/stacklok/mecatl/.github/workflows/release.yml@refs/tags/v0.0.32' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json checksums.txt
sha256sum --check --ignore-missing checksums.txt
gh attestation verify mecatl_0.0.32_darwin_arm64.tar.gz --repo stacklok/mecatlv0.0.31
Install
brew install stacklok/tap/mecatlInstalls both mecated (the server) and mecatui (the terminal UI).
Changelog
Features
- 6eae391: feat(slack-bot): pluggable AccessResolver, default to an email allowlist (#1294) (@kantord)
Fixes
- e756e81: fix(release): reclaim runner disk before building CLI archives (#1342) (@rdimitrov)
Verify
cosign verify-blob \
--certificate-identity 'https://github.com/stacklok/mecatl/.github/workflows/release.yml@refs/tags/v0.0.31' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json checksums.txt
sha256sum --check --ignore-missing checksums.txt
gh attestation verify mecatl_0.0.31_darwin_arm64.tar.gz --repo stacklok/mecatlv0.0.3 (alpha)
Fixes a ship-blocker in v0.0.2 (#70): the `mecatequi-extract-prompt` composite action failed to load because its `description:` contained a literal empty `${{ }}` expression, which GitHub's template engine rejects ("An expression was expected") — so every v0.0.2 reusable-workflow run aborted in the `implement` job before the agent started.
Consumers on v0.0.2 must bump to `@v0.0.3`.
- Reworded the description to drop the empty expression (no behaviour change).
- Added a regression lint (`task lint:action-templates`, wired into CI) that rejects a live empty `${{ }}` in any parsed workflow/action field — actionlint doesn't load composite actions, so it never caught this.
- Hardened `publish.sh`: a failed `gh issue comment` (e.g. an App token lacking `issues: write`) now emits a loud `::error::` annotation instead of silently aborting the publish job before its terminal `exit 0` (root-caused from the first real consumer run).
Full diff: v0.0.2...v0.0.3
v0.0.2 (alpha)
Alpha release. Headline: mecatequi is now adoptable as a reusable `workflow_call` workflow (#69) — a consumer wires a ~15-line caller instead of vendoring the split-privilege job graph and the glue scripts.
```yaml
jobs:
mecatequi:
uses: stacklok/mecatl/.github/workflows/mecatequi-reusable.yml@v0.0.2
secrets:
openrouter-key: ${{ secrets.OPENROUTER_CI_TOKEN }}
publish-app-id: ${{ secrets.RELEASE_APP_ID }}
publish-app-private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
with:
label: ready-for-agent
model: anthropic/claude-sonnet-4.6
default-provider: openrouter
```
- Sibling glue actions (`mecatequi-extract-prompt`, `mecatequi-publish`) referenced by full path + auto-fetched; no consumer checkout, no vendored scripts.
- Token-boundary invariant preserved across jobs; publish token supports a GitHub App JIT token or a pre-minted token.
- Security: the publish protected-paths gate now uses `git apply --numstat -z` (closes a path-quoting bypass).
- `mecatequi-example.yml` remains the escape hatch for a customised job graph.
See `docs/usage.md` ("Adopting via the reusable workflow") and `docs/design/MECATEQUI.md` §5.1. Full diff: v0.0.1...v0.0.2
v0.0.1 (alpha)
First alpha release of mecatl — a headless agentic coding harness (Go).
Highlights
- mecatequi — a single-shot, headless, forge-agnostic runner + a GitHub Action that implements issues via a split-privilege flow. Adopt it in another repo with
uses: stacklok/mecatl/.github/actions/mecatequi@v0.0.1(the consuming repo's org must allow Actions to use this repo's actions; no token/GOPRIVATE needed). Seedocs/design/MECATEQUI.md+docs/usage.md. - mecated (gRPC + HTTP server), mecademo (offline demo), mecatui (TUI client).
Alpha — APIs, flags, and the action contract may still change. This release publishes a cosign-signed mecated image to ghcr.io/stacklok/mecatl.