Skip to content

Releases

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 07 Nov 03:23

Full Changelog: v0.4.1...v0.4.2

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 07 Nov 02:57

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 02:43

What's Changed

Full Changelog: v0.3.0...v0.4.0

Agentry 0.3.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 22:04

Agentry 0.3 turns the plugin into a harness for a repo's own board. /agentry:exec builds a task whose
contract is already written, in its own git worktree. A second agent checks the work against the acceptance,
and /agentry:merge lands it only past your repo's gate. Each step is recorded in a ledger, so a cold session
can resume. /agentry:init learns the board you have or scaffolds one, and /agentry:start and
/agentry:close open and end a session the same way each time. The agentry command (board, lane, mem,
draft, run, lock) does the mechanical work; the plugin starts no server and ships no hooks. Memory is
now agentry mem, over the same files as before. The Workbench and the flow server are gone.

Upgrading from 0.2

Restart Claude Code after updating. The commands, agents and skills register on a restart, and a session
started before the update still holds the old servers.

  • Memory is agentry mem; the memory server is gone. Agents, commands and skills run agentry mem <verb>
    in Bash (agentry mem --help) instead of the mcp__plugin_agentry_mem__* tools. Replace any of those
    names in your own prompts or CLAUDE.md. Existing stores read unchanged: the same Markdown files, roots
    and environment variables (AGENTRY_GLOBAL_DIR, CLAUDE_PROJECT_DIR, AGENTRY_PROJECT_DIR).
  • agentry is on the Bash tool's PATH while the plugin is enabled. Where it is not, run
    node "${CLAUDE_PLUGIN_ROOT}/scripts/mem.mjs" (or board.mjs, lane.mjs) with the same arguments.
  • lane exec close writes the lane's episode. It writes the episode to the memory store and stamps its id
    in one call; pass the run's --lesson "<text>" and --used-memories <ids> to it. Writing the episode
    yourself and passing --episode <id> still works, deprecated, for one version.
  • No hooks, so nothing primes memory at session start. /agentry:start prints the ranked memories and
    /agentry:go and /agentry:ask begin with agentry mem recall. The new memory.prime sets what start and
    the exec briefs carry.
  • The Workbench and the flow server are removed. /agentry:workbench is gone. /agentry:go, spec,
    plan, split and fix write the spec, plan and task files as plain files under .agentry/work/<run>/,
    and review and approval happen in the chat.
  • /agentry:go with no task asks what to work on. It no longer claims queued work.
  • The board commands need a board. /agentry:exec, merge, new and board read the repo's
    .agentry/process.json and .agentry/workflow.json. Run /agentry:init once to learn the board you have
    or scaffold one. Every 0.2 command keeps its name, /agentry:workbench apart.
  • Memory files land in your repo. Repo memory and each lane's episode now live in <repo>/.agentry/memory/
    in the main checkout, and show up untracked after the first lane exec close. Commit them to share them
    with your team, or add them to .gitignore.
  • The repo moved to silentthreadstudio/agentry. GitHub redirects the old path. The marketplace name is
    still agentry-dev.
  • .agentry/config.json has new keys and is read strictly by the lane scripts. See /agentry:config.
    A key outside workDir, mode, evolution, memory, merge and lanes stops the step with an error that
    names it.

Node 24 or newer is still required.

Added

  • /agentry:config — shows the effective .agentry/config.json (key, value, default, what it does) and
    sets one key with key=value, validated and merged, never clobbering the others. The keys are workDir,
    mode, evolution, memory.prime, memory.primeLimit, memory.captureCorrections, merge.push (ask,
    auto, never; ask by default) and lanes.maxWriters (3 by default). The lane scripts read the file
    strictly: an unknown top-level key, or a bad value inside merge or lanes, stops the step with an error
    naming it.
  • The agentry:conductor agent — the main-session agent for a repo that sets "agent": "agentry:conductor" in .claude/settings.json. It starts the session with /agentry:start, sends board
    ids through /agentry:exec, landings through /agentry:merge, questions through /agentry:ask and the
    wrap-up through /agentry:close, drafts the owner's calls, and does small work itself. /agentry:init
    offers to set it as the default.
  • lane merge <id> --resolve landed closes a lane whose work is already on main — a verified lane (or one
    stopped on a red gate after a passing verdict) whose commits reached main another way, through a
    fast-forward of a combined branch or a squash, can now be closed. It reads git cherry over the lane's own
    commits: with every one on main by patch the ledger is merged (merge.how: "found-on-main", merge.landed
    the matching main commits) with nothing picked, no commit made and the board left to the owner. A commit
    with no matching patch refuses the close, named with its short SHA and subject, until the owner passes
    --checked after checking it landed squashed or reworded; that answer is kept in resolutions[]. A stacked
    parent closed this way counts as merged for its children, --cleanup takes the worktree and branch down as
    after a land, and board status stops nudging the lane as verified but not merged. A stuck land's
    --resolve landed|rolled-back is unchanged.
  • lane exec cut <id> --decision <D> [--keep <paths>] [--message "<subject>"] [--apply] — retires a lane
    on the owner's call, recorded as a decision the board holds. It previews by default and writes nothing. With
    --apply, the --keep files and folders land on main from the lane's tip as one commit, through the land's
    own steps and the merge role's gate tier (rolled back on red, the lane as it was); the board's cut status
    (the new lifecycle.on.cut, exec.kinds.<kind>.on.cut for a debt kind) goes in one board commit, so main
    is clean for the next land. The lane is closed, its uncommitted work saved, its worktree removed and its
    branch kept as agentry/<id>.cut; the episode is printed and exec close <id> writes it. Without --keep nothing of
    the branch lands. A cut killed mid-land is rolled back by the next exec cut <id> --decision <D> --apply,
    only over its own commits and writes; one killed after its board commit refuses and is finished by hand.
    An agent out, a decision the board does not hold, a --keep path the
    branch does not change, an unset on.cut and a lane mid-land or merged are refused, with nothing written.
  • lane exec adopt <id> --branch <b> — work built outside exec (an agent's worktree, a hand branch)
    becomes the lane: start's checks and board write, a fresh agentry/<id> cut from main, main..<b>'s own
    commits picked onto it (its merge commits left out and named in the brief) and the uncommitted diff of
    <b>'s worktree applied, as restart --carry does. <b> and its worktree are only read, and cleanup:
    prints how to remove them once the lane has landed. The first brief lists the adopted commits; commits
    outside the contract's owns are a warning with the lane exec owns <id> --add <paths> --apply line. A
    conflict leaves the lane building with the conflict in its worktree for the builder; any other error in
    the carry takes the new lane down again and names what it could not remove. <b> must be a branch's own
    name exactly as git lists it: a revision (<b>~0), another case of a name, a branch with a case twin, the
    main branch and a branch a ledger tracks are refused, with nothing written.
  • lane spike and ways on for unlisted worktrees — agentry lane spike <branch|path> --for <id> files an
    agent worktree no ledger knows as work meant for that item, --keep "<why>" keeps it on purpose (shown as
    kept, never drift) and --forget drops it; with no flag it lists them, a branch gone since marked gone.
    The list is local run state (.agentry/run/spikes.json), written at once. Drift now offers an unlisted
    agent worktree its ways on, each with its command: land (lane merge <id> --branch <b>), continue (lane exec adopt <id> --branch <b>), file (lane spike) or remove (git worktree remove), never
    /agentry:exec. One on a branch they all refuse (a case twin, a branch with no commits yet, a spelling no
    branch is named) is offered only remove, with why; an orphan agentry/<id> worktree is offered no continue,
    since it is the branch that lane would cut. A spike filed for an item is one spike-for <id> row until a lane takes its branch, an
    adopted branch is no drift, and an unreadable spikes.json is a spikes-unreadable row.
  • lane note — agentry lane note <id> --owner "<call>" records a call the owner made on a lane, or on
    the spike filed for the item, one line each; with no flag it lists them, and --recorded <n,n|all> --where "<file or section>" marks them written down. exec adopt moves a spike's calls into the lane and
    restart keeps them; a spike holding calls not written down refuses --forget and a re-file that changes
    its item. exec close's episode counts them, and lane session close lists the ones not written down
    (calls, callLines), merged lanes included, until they are marked; /agentry:close writes them where
    the repo keeps decisions and marks them.
  • board next-id <kind> --family <prefix> — the next free id among every board id in that prefix family,
    whatever kind holds it (ART-19 after ART-18, <prefix>-1 when there is none), so a kind whose ids are
    chosen by hand no longer takes one another kind already uses. A family ending in a digit needs a separator
    (R1 does not read R19). The chosen-by-hand refusal names it, and /agentry:new proposes it when the
    owner names a prefix.
  • board commits --learn [--min <n>] — reads the last 500 first-parent commits of the default branch and
    prints the commits rules they k...
Read more

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 21 Jun 01:39

Full Changelog: v0.1.2...v0.2.0

Full Changelog: v0.1.2...v0.2.0

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 19 Jun 02:23

What's Changed

  • v0.1.2 — CHANGELOG + version bump by @Codestz in #8

Full Changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 19 Jun 01:32

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Jun 01:55

What's Changed

  • Actionable, consistent error handling across the 11 memory MCP tools by @Codestz in #1
  • memory: clearer all-invalid feedback/distill error prose by @Codestz in #2
  • check-plugin: content-hash dist-lockstep, not mtime by @Codestz in #3

New Contributors

Full Changelog: https://github.com/Codestz/agentry/commits/v0.1.0