Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,3 +160,16 @@ jobs:
# rewriting the channel. Pushes made with GITHUB_TOKEN do not retrigger workflows.
git push origin "$SHA:refs/heads/release"
echo "::notice::release channel -> $SHA"

- name: Advance the directory channel (stable) to the released commit
if: steps.v.outputs.release == 'true'
env:
SHA: ${{ steps.v.outputs.sha }}
run: |
# The claude.ai plugin directory tracks `stable` (#768), not main: it scans every commit on
# the branch it tracks and each new one replaces the version in review, so main's daily
# commits must not reach it. `stable` moves here and only here, to each released commit -
# same rules as `release` above: created on the first release, fast-forwarded after, a
# non-fast-forward rejected loudly instead of rewriting what a reviewer already read.
git push origin "$SHA:refs/heads/stable"
echo "::notice::stable (plugin directory) -> $SHA"
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,37 @@
# Changelog


## [0.45.0] - 2026-10-06
Ready for the Anthropic plugin directory: safe by default, portable, pinned, and measured with
Anthropic's own validators. Plus a sandboxed low-cost fleet adapter (pilot) and a declarative
adapter registry.
### Added
- **Declarative CLI adapter registry (#772).** `presets/adapters.json` with preset → user → repo
overrides; a cloned repo's file may only set `routing` and `reviewer`, never a command.
- **Normalized probe codes (#770).** Every CLI probe ends in `OK | AUTH | RATE_LIMIT | QUOTA |
CONTEXT_WINDOW | ERROR`; unknown output is `ERROR`, never a false OK.
- **Fail-closed run-ledger checkpoint and `Board-Handoff -Recover` (#771, #730).** A checkpoint is
written before each side-effecting step and the step does not run if it cannot be; `-Recover`
rebuilds a session that ended without `-Save` from its local transcript.
- **dsh as a sandboxed fleet adapter, pilot (#773).** Only in a pinned Docker container, only for
Docs/Chore issues of public repos, session-log upload off.
- **Per-user account map and `/board setup` (#762).** No author defaults ship in the plugin.
- **Secret scrub for launched sessions (#769).**
- `PRIVACY.md`, listing links, icon and command argument hints for the directory listing (#768).
### Changed
- **Permission bypass is an explicit opt-in (#761).**
- **Always-on context ~2,810 → ~760 tokens (#763).**
- **Cross-platform PowerShell 7 core (#767):** Windows, macOS and Linux; CI runs on Windows and
Ubuntu.
- **Every runtime install pinned, no `Invoke-Expression` (#765).**
- `Board-Work.ps1` split below 256 KiB (#759); README inside the plugin folder (#760).
- The test suite moved out of the shipped plugin folder to `tests/agentic-board/` (#768).
### Fixed
- The brake fails closed when an armed run has no `pwsh` (#764).
- The brake precheck no longer names a parent path (`COMMAND_PATH_ABOVE_PLUGIN`, #768).
- `abios-feedback` loads before asking for details; `/expert` opens its engine first (#764).
- Skill-reviewer and plugin-validator findings (#764).

## [0.44.0] - 2026-09-29
`/scan` goes from untracked work to a ready board in one command, `/skills` can create and improve a
skill end to end, and the whole tool now speaks English: the agent translates for the user.
Expand Down
19 changes: 18 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,24 +182,41 @@ exit-code clean (0 ok / 1 drift) so a CI gate can call it.

### What happens after the version-bump lands on `main`

Two channels, so users never install whatever `main` HEAD happens to be:
Three channels, so users never install whatever `main` HEAD happens to be:

- **`main`** is the development channel — every merged PR lands here.
- **`release`** is the branch installs actually fetch. `marketplace.json`'s plugin `source` is a
`git-subdir` pinned at `ref: release` (#323), so a fresh install or `plugin update` gets the
`release` commit, not `main` HEAD.
- **`stable`** is the branch the claude.ai plugin directory tracks; it moves with `release`.

When a `chore(release): X.Y.Z` commit changes `plugin.json`'s version on `main`, the **Release**
workflow (`.github/workflows/release.yml`, #322) fires automatically and:

1. creates the git tag `vX.Y.Z` + a GitHub Release, notes taken from that version's `CHANGELOG.md`
block (`scripts/Get-ReleaseNotes.ps1`), on the exact commit that set the version, and
2. fast-forwards the `release` branch to that commit — the one push that moves pinned installs.
3. fast-forwards the `stable` branch to the same commit — the one the plugin directory tracks.

So tagging and the release channel are **no longer manual**: land the version bump on `main` and CI
does the rest. `plugin.json`'s `version` is still what drives `plugin update` detection for users, so
it must change on every release (the bump commit is exactly that).

### Releases and the plugin directory

The claude.ai plugin directory tracks the **`stable`** branch, not `main`. It scans every commit
that lands on the branch it tracks and puts each one in review, replacing the one before, so a
push to a tracked `main` would restart the review every day. `stable` moves only when a release is
published (the step above), so `main` can take commits every day.

- **Batch the work.** A release is a review cycle measured in days, not a deploy.
- **Test before merging the release commit**, in Claude Code against the local plugin
(`claude --plugin-dir plugins/agentic-board`): what is on claude.ai is only ever what the
reviewer approved.
- **Do not release while a version is in review**, unless it carries a security fix: the new
version replaces the one the reviewer is reading.
- Never push to `stable` by hand outside a release, and never force it.

## Good first issues

New here? Look for the [`good first issue`](https://github.com/CSalcedoDataBI/agentic-board/labels/good%20first%20issue)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,4 +357,4 @@ MIT — see [LICENSE](./LICENSE).

---

<sub>agentic-board <!-- BEGIN:version -->v0.44.0<!-- END:version --> · docs generated by `plugins/agentic-board/scripts/Update-Docs.ps1`</sub>
<sub>agentic-board <!-- BEGIN:version -->v0.45.0<!-- END:version --> · docs generated by `plugins/agentic-board/scripts/Update-Docs.ps1`</sub>
2 changes: 1 addition & 1 deletion plugins/agentic-board/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "agentic-board",
"displayName": "Agentic Board",
"version": "0.44.0",
"version": "0.45.0",
"description": "Run coding agents off your real GitHub Projects board: a quota-aware, review-gated coordinator, not another local Kanban.",
"author": {
"name": "CSalcedoDataBI",
Expand Down
Loading