Skip to content

Releases: cbundy/dev-system

v0.101.2

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:13
59418a8

Fixed

  • Slots with a huge untracked file free cleanly - Freeing or preparing a slot no longer fails forever when the slot holds a very large untracked file such as a multi-GB core dump. Untracked files over 50 MB and core dumps are left out of the saved leftovers, named in the slot outcome and removed, and the owner is told once when freeing a slot gets stuck (/factory retry N clears it). (#1377)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
Technical changes

Maintenance

  • Release v0.101.2 (#1379)
  • Stream the slot leftovers diff, leave out huge files and core dumps, tell the owner of a stuck free (#1377)

v0.101.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 21:13
31a490c

Fixed

  • Loop token counts are complete right after a restart - The loop's own orchestrator token counts are no longer empty for the first minute after a loop restart, so token totals over a window that spans a release or restart are complete. A resumed session counts only what came after the loop started, so nothing is counted twice. (#1370)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
Technical changes

Maintenance

  • Release v0.101.1 (#1372)
  • Count the loop's own session tokens from the first minute after restart (#1370)

v0.101.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 01:12
2cd553f

Changed

  • Repos and Coder workspaces move to the fabriek name - npx callum-dev update now enables fabriek@callum instead of callum-flow@callum, drops a leftover callum-flow@callum entry so only one name is ever enabled, and allows the fabriek-* commands next to the old callum-flow-* ones. Coder workspaces set FABRIEK_TRUSTED_AUTHORS as well as the old CALLUM_FLOW_TRUSTED_AUTHORS, the loop template installs fabriek@callum, and the docs use the fabriek names. The devcontainer still forwards CALLUM_FLOW_TRUSTED_AUTHORS from the host, so nothing changes in how you set it. (#1366)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces (it switches callum-flow@callum to fabriek@callum), then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • CLI and templates: npm update @callum/dev-system && npx callum-dev update.
Technical changes

Maintenance

  • Release v0.101.0 (#1367)
  • Move consumers, the Coder template and the docs to the fabriek name (#1366)

v0.100.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 18:20
bff3620

New

  • The factory commands have fabriek names - Every factory command in the base image is now fabriek-<x> (for example fabriek-issue-read, fabriek-event, fabriek-merge), and every setting can be given as FABRIEK_<X>. The old callum-flow-<x> commands stay as aliases with the same output and exit codes, and the old CALLUM_FLOW_<X> settings still work; FABRIEK_<X> wins when both are set. The old names are kept for 10 minor releases. (#1362)
  • The shared plugin is now fabriek - The callum-flow plugin is renamed fabriek, and its skills name the fabriek-* commands. The marketplace keeps a callum-flow entry with the same content for 10 minor releases, so repos that enable callum-flow@callum keep working. The image now installs fabriek@callum by default, replaces an old callum-flow install with it, and falls back to callum-flow@callum when a repo pins a release older than the rename. dev-doctor warns when both names are installed or enabled. (#1363)
  • The loop calls the fabriek commands - The factory loop, its companions and the HUD now run the fabriek-* commands, falling back to the old callum-flow-* names on an image older than 2.79.0. (#1364)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A repo can switch callum-flow@callum to fabriek@callum in its .claude/settings.json; enable only one of the two. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • Base image: rebuild or re-pull the dev container to get image 2.79.0, which brings the fabriek-* commands, the FABRIEK_<X> settings and the plugin twin handling.
Technical changes

Maintenance

  • Release v0.100.0 (image 2.79.0) (#1365)
  • Run fabriek commands from the loop, companion and HUD with fallback (#1364)
  • Rename the callum-flow plugin to fabriek, keep callum-flow as a twin (#1363)
  • Rename the factory commands to fabriek-* and keep callum-flow aliases (#1362)

v0.99.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 23:10
217ea98

Fixed

  • A stopped owner session holds the loop instead of breaking it - When the owner stops the main session, the loop no longer counts each refused agent start as a failure that uses up attempts and trips the breaker. It holds agent starts and wakes, shows held: session stopped since HH:MM in the title and in /factory status, and resumes on the next message. (#1349)
  • A failed update restart ends the update and tells the owner - When the restart for /factory update fails, the update is no longer left due forever. The loop clears it, records the failure and keeps an owner notice with the error until the owner fixes it and runs /factory update again, or clears it with update off. (#1352)
  • Splitting an issue works in repos without an in development label - The loop no longer tries to remove that retired label when it releases a split issue's parent, a step that failed every time and tripped the breaker. Issues already stalled on it need a /factory retry after upgrading. (#1354)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
Technical changes

Maintenance

  • Release v0.99.1 (#1355)
  • Stop release-parent removing the retired in-development label (#1354)
  • End an update when its restart fails and keep a lasting owner notice (#1352)
  • Hold agent starts and wakes while the owner's session is stopped (#1349)

v0.99.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 17:25
7a19052

New

  • What-if cost of the loop's own work - The loop's minute summary and each ended task or tell wake now record what the loop's own judgement work would have cost at Anthropic's public API prices. This is an estimate, not a bill; work on an unknown model is left unpriced. docs/metrics.md has queries per repo and day and per wake. (#1341)
  • Subscription usage readings name the login and carry the what-if total - A usage reading taken under a subscription login now says so and carries the loop's running what-if dollar total for the month, with the date it restarts. When the total is missing, the reading says why. (#1348)
  • dev-restart-self --check - A check-only mode answers whether this workspace could restart itself, naming where the Coder token comes from, without sending any request. dev-doctor runs it in a Coder workspace and warns, with a fix, when no Coder token is present. (#1347)

Changed

  • /factory update refuses when the workspace cannot restart itself - The command now checks the workspace's Coder credentials first and refuses at once, changing nothing, when a restart could never run. The refusal is logged. On an image without the check it accepts as before and says the credentials went unchecked. (#1350)

Fixed

  • dev-restart-self --dry-run no longer pretends to succeed without a token - It now fails with the same "no Coder session token" message a real run gives. (#1347)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • Base image: rebuild or re-pull the dev container to get image 2.78.0, which brings dev-restart-self --check, the dev-doctor token warning and the new usage reading fields.
Technical changes

Maintenance

  • Release v0.99.0 (image 2.78.0) (#1351)
  • Refuse /factory update when the workspace cannot restart itself (#1350)
  • Name the login and carry the what-if total on subscription usage reads (#1348)
  • Add dev-restart-self --check, fail a token-less dry run, warn in dev-doctor (#1347)
  • Price the loop's own main-session work on each minute summary and each ended wake (#1341)

v0.98.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:17
adccf74

New

  • Per-device GitHub API health - Each device's heartbeat now reports its remaining REST and GraphQL rate limit, their reset times, and how many GitHub API errors the factory loop on that device hit in the last hour. Values are empty where a device cannot report them, such as no GitHub login or no loop running. (#1337)
  • Orchestrator token spend in the minute summary - The loop's once-a-minute summary now records the tokens its own orchestrator session spent that minute, so the orchestrator's cost shows up next to the agents' cost. (#1333)
  • Usage throttle tier in the minute summary - The minute summary now records which usage tier the loop acted on (normal, slow, stop-new or stop-all) and whether an owner override held it at normal. (#1338)
  • What-if API cost per agent step - Each ended agent step and intake stamp now records what it would have cost at Anthropic's public API prices, priced per model including nested agents. This is an estimate, not a bill; steps on an unknown model are left unpriced and logged. docs/metrics.md has queries for cost per merged issue and per model. (#1339)

Fixed

  • callum-dev update keeps filled-in text on template rewords - When a template only rewords a placeholder the repo already filled in, or removes a repo-owned section the repo already filled in, update now keeps the repo's text and prints a kept line instead of reporting a conflict. Other conflicts are reported as before. (#1330)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • CLI and templates: npm update @callum/dev-system && npx callum-dev update.
  • Base image: rebuild or re-pull the dev container to get image 2.77.0. The factory database gains three expand-only migrations, which the loop applies at its next start.
Technical changes

Maintenance

  • Release v0.98.0 (image 2.77.0) (#1340)
  • Record the what-if API cost of each ended agent step and intake stamp (#1339)
  • Add the usage throttle tier to the loop's minute summary (#1338)
  • Report each device's GitHub rate limit and API errors in its heartbeat (#1337)
  • Add orchestrator session tokens to the loop's minute summary (#1333)
  • callum-dev update keeps the repo's filled text on template rewords (#1330)

v0.97.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 13:38
4848041

Changed

  • callum-dev update cleans up the last no-mistakes config - Every update now deletes a leftover .no-mistakes.yaml and removes the seven Bash(no-mistakes ...) allow entries from .claude/settings.json, whatever the stamp or baseline says. Other allow entries are untouched. A leftover .no-mistakes/ folder is only reported, never deleted. The consumer templates (gitignore, devcontainer, README) no longer mention no-mistakes. (#1329)
  • The merge train runs for dev-system itself - This repo's factory loop now merges through the merge train (mergeTrain in .claude/factory-loop.json), falling back to the plain merge queue when the tested tree or state does not match. Nothing changes for consumer repos. (#1328)

Upgrade

  • CLI and templates: npm update @callum/dev-system && npx callum-dev update. Expect removed lines for .no-mistakes.yaml and the no-mistakes allow entries; commit the result. Delete a reported .no-mistakes/ folder by hand if you no longer need it.
  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
Technical changes

Maintenance

  • Cover the no-mistakes cleanup in the v0.97.1 release notes (#1332)
  • Release v0.97.1 (#1331)
  • Remove the no-mistakes config, permission entries and ignore rules; update cleans consumers up (#1329)
  • Turn the merge train on for this repo (#1328)

v0.97.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 04:19
64f7946

Breaking

  • no-mistakes is removed from the base image - The image no longer installs, configures or starts no-mistakes: the binary, the NM_HOME / NO_MISTAKES_* variables, the /persist/no-mistakes folder, the model config and the recovery scripts are gone, and dev-init skips its no-mistakes steps. dev-version and the HUD versions line no longer list it. Anything that still calls no-mistakes must stop. The deprecated callum-tools feature drops installNoMistakes and codexModel and moves to 2.0.0. (#1325)
  • The no-mistakes copy jobs are gone - nm-export and nm-push-loop no longer exist or run, dev-doctor and the heartbeat stop checking them, and the heartbeat's push status has no nm key. The existing no-mistakes tables in the shared database are kept, untouched. (#1324)
  • Reports no longer read no-mistakes data - callum-flow-evaluate drops its pipeline section and pipeline spend rows; --nm-state and --nm-export are still accepted but ignored, with a note in sources. Lead time starts at the loop's review step. The heartbeat busy check and the loop's stale-claim check use only factory events and PRs. (#1322)

Changed

  • Dev container template drops the no-mistakes volume - The base-image devcontainer template, and this repo's own dev container, no longer mount a no-mistakes storage volume. (#1325, #1326)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • CLI and templates: npm update @callum/dev-system && npx callum-dev update (removes the no-mistakes volume line from .devcontainer/devcontainer.json).
  • Base image: rebuild or re-pull the dev container to get image 2.76.0. Update the plugin at the same time, or an older plugin may say once that the container looks out of date. The old no-mistakes Docker volume is no longer used and can be deleted.
  • Scripts or dashboards that read pipeline from callum-flow-evaluate, the heartbeat's nm key or the no-mistakes binary must move off them.
Technical changes

Maintenance

  • Release v0.97.0 (image 2.76.0) (#1327)
  • Drop the no-mistakes volume and comment from this repo's dev container (#1326)
  • Remove no-mistakes from the base image, its start-up, tools and tests (#1325)
  • Remove the no-mistakes copy jobs (nm-export, nm-push-loop) and what runs, checks and tests them (#1324)
  • Stop reading no-mistakes data in evaluate, heartbeat and reconcile (#1322)

v0.96.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:23
8da33a6

Breaking

  • Old watchers and v1 helper tools are gone from the image - orchestrator-watch.sh, pipeline-watch.sh, callum-flow-regate, callum-flow-fix-linkage and callum-flow-design-route are removed, and synced settings no longer allow them. callum-flow-merge-guard keeps only its --patch mode: --run and --update-behind now exit 2 with a usage line. Nothing the factory loop runs used them. (#1314)

New

  • Merge train (off by default) - With the new mergeTrain setting on, the merge queue tests the next approved PR on a factory-train/* branch while the head is still in CI, and merges it right after the head with no update and CI run of its own, as long as the tested tree still matches. Any mismatch drops the train and the PR takes the usual path. With the setting off, the queue behaves as before. (#1321)

Upgrade

  • Plugin: run npx callum-dev update, commit the .claude/settings.json it produces, then restart the container or run dev-init --plugins. A loop workspace on the orchestrator-loop template picks up the plugin only after that template is pushed at this release (coder/push.sh orchestrator-loop).
  • CLI and templates: npm update @callum/dev-system && npx callum-dev update (drops the removed tools from the synced allowlist).
  • Base image: rebuild or re-pull the dev container to get image 2.75.0. Scripts that call the removed tools or callum-flow-merge-guard --run / --update-behind must move to --patch.
  • Merge train: to turn it on, first turn off "Require branches to be up to date before merging" in main's branch protection while keeping the ci check required, then set "mergeTrain": true in .claude/factory-loop.json (or /factory config set mergeTrain true). /factory config shows mergeTrain on.
Technical changes

Maintenance

  • Release v0.96.0 (image 2.75.0) (#1323)
  • Merge queue: test the next PR on a train, merge it right after the head (#1321)
  • Remove the old watchers and helper tools; the merge guard keeps only --patch (#1314)