Skip to content

v5.33.0

Choose a tag to compare

@avirtual avirtual released this 06 Sep 19:51
· 6270 commits to master since this release
  • The roles popover shows what each role uses, and who owns it. Every role row lists its system prompt, template, append stems and exec commands with a badge: team for a piece under ~/.clodex/teams/<name>/, library for one borrowed from the shared library, plugin for a namespaced ref, missing for one that resolves nowhere. The list is the Gather plan, so it matches [agent:team gather dry] line for line and flips to team when Gather is applied.

  • One rule decides a seat's system prompt on every spawn path: the template's system prompt when it names one, the role's prompt otherwise, and a role prompt that did not become the system prompt is appended after the team block, so nothing is dropped. Team preflight notes a role whose prompt and template disagree. The stock team and templates are unaffected.

  • Team preflight now checks the template's system prompt too: a template naming a system prompt that is installed nowhere is a warning, since that seat would boot with no system prompt at all, and a team's own copy is noted like the role prompt and append pieces already are.

  • Team preflight leaves plugin-namespaced prompts to the plugin: a template composing a plugin append prompt is no longer told to write the file, and the same rule the runner uses decides what counts as a plugin reference.

  • Gather makes a team own what it uses. [agent:team gather] from the lead seat, or the Gather button on the roles popover, copies every library piece the team's manifest references — role prompts, project knowledge, seat templates, exec defs — into ~/.clodex/teams/<name>/ under the same stems, where the team-first rule picks them up on the next spawn. Nothing is rewritten and nothing is overwritten: pieces the team already owns are kept, plugin-namespaced refs are skipped, and gather dry shows the plan first. A gathered copy of a stock prompt no longer receives upstream fixes; delete it to fall back to the library.

  • A team directory now holds everything a team owns. ~/.clodex/teams/<name>/templates/ and exec/ join prompts/: a role's template stem, a seat's [agent:spawn … template:<stem>] from inside the team, and every exec grant a team seat runs resolve against the team's directory first and the shared library second, by the same rule as prompts. Plugin-namespaced refs are unchanged, nothing is listed machine-wide, and no new authority is created: what a seat may run is still its operator-set grant. Team preflight says which templates and exec defs are the team's own.

  • A team carries its own prompts. ~/.clodex/teams/<name>/prompts/system/ and prompts/append/ now shadow the shared library: a role's prompt stem, or an append stem in a seat template, resolves against the team's directory first and the library second, so two teams on one machine can each keep their own project knowledge under the same stem, and a team's own copy of a prompt is never refreshed under it by an upgrade. Plugin-namespaced refs are unchanged. Team preflight says which prompts are the team's own.

  • A launch no longer rewrites a project's ticket board when the legacy team-board migration has nothing to copy or re-sync; the board is written only when a pass changed it.

  • Two tickets in flight no longer stall the second one's merge on CHANGELOG.md. Every ticket adds its bullet at the top of Unreleased, so the second merge always conflicted there and the loop escalated to the lead. The loop now recognises that shape — the only conflicted file is CHANGELOG.md and both sides only inserted lines — keeps both bullets with the earlier ticket's first, finishes the merge and says so in the merge notice. Any other conflict still escalates.

  • A ticket whose suite goes red once is measured again before it is sent
    back.
    A full run on a busy box can starve a timing test that the branch
    never touched; the loop now re-runs the suite once, proceeds to review if the
    second run is green and says so on the record, and rejects with both runs'
    failing names when it is red twice. The post-merge check on master is not
    re-run: a red master reverts first.

  • The Console tab opens at the newest call. Expanding the drawer onto the
    Console used to land at the oldest of the calls it shows, so reaching the
    current one meant scrolling through everything above it. It now opens at the
    bottom and keeps following as calls land; scroll up and it stays put, scroll
    back down and it follows again. The command line of each block is drawn in
    amber at normal weight instead of bold, which reads more easily in the
    monospace pane.

  • Manage Plugins fits the screen. The Register / Install / Open Folder /
    Re-scan / Close bar stays at the bottom while the plugin list scrolls on its
    own, the dialog is wider and can be resized, and each row is shorter: the
    description is clamped to two lines and the registration path to one, with
    the full text a hover away. Warnings on a row are never clamped.

  • Manage Plugins ▸ Install from GitHub… now works from the browser frontend too: Resolve, Install, Update… and Remove are offered on the web surface with the same warning-before-install flow, and the warning says the code will run on the Clodex host the browser is connected to. Registering a folder by path stays a desktop action.

  • A plugin installed on a box shows its buttons and panels in the browser frontend too: a renderer half that is not part of the shipped bundle is read from the plugins folder and loaded in the page, so a plugin installed from GitHub or registered by path works from a remote browser the same as on the desktop.

  • In the browser frontend the "Clodex vX" line stays at the bottom of the sidebar footer; plugin buttons that appear after the page loads are inserted above it instead of below.

  • Clodex now ships the Clodex Plugin Builder as a built-in plugin, off by default: tick it onto a seat and /clodex-plugin-builder:create-plugin scaffolds a plugin, wires the surfaces you ask for and verifies it against the real loader when a checkout is present, with a subagent that reads the contract so it never lands in the seat's own context. No more cloning a repo or pointing the agent at the integration docs to build a first plugin.


Apple Silicon (arm64) build. Intel (x64) users can build from source (npm install && npx electron-rebuild && npm run dist:mac).

Unsigned (ad-hoc) build: first launch needs right-click → Open, or xattr -cr /Applications/Clodex.app.