Repository navigation
Releases
Releases · dataquail/chernabog
v0.13.0
0.13.0 (2026-11-04)
Features
- dashboard: a run's steps as a graph, a page per step, and Item and Subjects (#352) (028e2eb)
- dashboard: bun run dev:dashboard serves the page with hot reload (#349) (59f0d7a)
- dashboard: the overview in tabs, a Flows tab, and attention folded (#350) (92968aa)
- markers: a marker can declare how to renew it, and the daemon renews every held marker that does (#356) (06d8996)
- runs: steps' ends and outcomes, a flow's lanes, and run log lines tagged with their step (#351) (871584c)
Bug Fixes
- recipes: an epic task whose layer below merges as its pull request opens goes onto the branch that layer merged into (#345) (81db861)
- recipes: resolve-conflicts records a squash-merged layer below before merging its base (#347) (94b5d7d)
- release: stop pinning @chernabog/core to 1.0.0 (#357) (5fba49f)
sdk: v0.10.0
recipes: v0.4.0
core: v1.1.0
v0.12.0
0.12.0 (2026-11-01)
Features
- a post-merge recipe watches CI on a merged pull request's merge commit, and files a follow-up issue when it's red (#196) (9ff6f8a)
- cli: every command writes its spans and logs to telemetry/ in the chernabog home (#315) (6b25f40)
- cli: state-changing commands dispatch through the daemon, so their events reach its bus (#334) (006fb73)
- daemon: /events streams a snapshot, then every event, over SSE (#333) (0ab80ab)
- daemon: a daily sweep keeps telemetry to 30 days and 500 MB (#316) (73ac86c)
- daemon: chernabog ui opens a 127.0.0.1 listener for the dashboard, behind a token (#336) (d82e0e7)
- daemon: rotate daemon.log daily, keep 30 days, and send the service's output to daemon.out.log (#317) (4f030c0)
- dashboard: a run's detail, with its history and a live log (#342) (b93025c)
- dashboard: packages/dashboard, a React page the daemon serves at / and the binary embeds (#332) (f374e75)
- dashboard: pause a repo and change a persona's settings from the browser (#341) (37f174c)
- dashboard: the overview of repos, flows, runs and health (#338) (4c380db)
- dashboard: trigger, cancel and attach to runs from the browser (#340) (548fc53)
- hold an approved merge while CI on the base branch is red, rather than handing the pull request to a person (#292) (0ec429b)
- platform: a tracer and logger that append spans and logs to day-sharded JSONL files (#314) (0aab7ed)
- runs: release an ended run's markers on RunFinished, and the daemon learns of every ending from it (#303) (b002c1e)
- runs: run logs are deleted 30 days after their run finishes (#318) (71fa896)
- tui: the live view follows /events instead of asking /status every second (#335) (3e5d440)
Bug Fixes
- recipes: a re-review requests changes only for a blocking finding, and fixes keep the pull request's description current (#337) (c545d57)
- recipes: address-review and resolve-conflicts own the pull request they push to, so they never push to its branch at once (#200) (2ca2dc5)
- the pre-commit hook runs the fast checks, not the tests, so an agent's commit lands before it answers (#199) (e4b56a8), closes #198
sdk: v0.9.0
recipes: v0.3.0
0.3.0 (2026-11-01)
Features
- a post-merge recipe watches CI on a merged pull request's merge commit, and files a follow-up issue when it's red (#196) (9ff6f8a)
- hold an approved merge while CI on the base branch is red, rather than handing the pull request to a person (#292) (0ec429b)
Bug Fixes
- recipes: a re-review requests changes only for a blocking finding, and fixes keep the pull request's description current (#337) (c545d57)
- recipes: address-review and resolve-conflicts own the pull request they push to, so they never push to its branch at once (#200) (2ca2dc5)
- the pre-commit hook runs the fast checks, not the tests, so an agent's commit lands before it answers (#199) (e4b56a8), closes #198
v0.11.1
0.11.1 (2026-10-30)
Bug Fixes
- a GitHub 5xx is tried again for about 30 seconds, on the API and on a push, rather than ending the run or going to a person (#260) (6509a7e), closes #254
- recipes: a repo that checks its titles gets conventional commits, and CI fixes edit a failing title (#247) (6e7c51a)
- recipes: an epic task whose layer below merges mid-task opens on the branch that layer merged into (#265) (114033d)
- three tests no longer race the runner, and cleanup survives a claim branch deleted under it (#223) (130da9b)
v0.11.0
0.11.0 (2026-10-30)
⚠ BREAKING CHANGES
- @chernabog/core is the binary's contract with every repo's flows, and each repo runs the @chernabog/sdk it pins (#167)
Features
- @chernabog/core is the binary's contract with every repo's flows, and each repo runs the @chernabog/sdk it pins (#167) (4c9db37)
- a notification about an issue or pull request checks its runs' stillValid within seconds (#165) (3b3e5ce)
- a run names the subjects it touched, instead of the engine recording its pull request (#210) (799e427)
- a trigger can report an item as held, with a reason, and status shows it (#183) (ac588bf)
- CI is read as checks and statuses, the SDK decides the verdict, and cancel leaves labels to markers (#217) (caf8574)
- CI state for a commit or a branch, and ciState counts every check when branch rules are refused (#190) (d288d93)
- claims are leases: the daemon renews its runs' claims, an expired one can be taken over, and a run that lost its claim ends as lost (#169) (7d90433)
- Epic.tasks works out which of an epic's tasks are ready, the base each stacks on, and why the rest wait (#187) (36ff85f)
- fencing and change reporting cover every write a capability declares, without the engine naming methods (#211) (8632c19), closes #205
- flows declare their own settings, and core's settings are only the engine's (#214) (0037fdd)
- implement adopts an open pull request that already closes its issue, instead of implementing it again (#191) (425803c)
- Implement and Hybrid blocks take a base branch per item, not only repo.baseBranch (#168) (1f716ea)
- markers: a run registers what it put on an item, and the daemon takes it off however the run ends (#164) (fdca485)
- recipes: an epic recipe that implements an epic's tasks as stacked pull requests (#193) (0fe6ebd)
- recipes: an epic with ship set lands its layers, bottom to top, once each is approved (#220) (e614164)
- recipes: an epic's tasks implemented at once is its atOnce setting (#221) (9a8f1f2)
- recipes: the epic run carries a lower layer's change up its stack (#197) (d528b27)
- routing is the flow's decision, not the engine's (#215) (805af1a), closes #204
- runs whose issue or pull request goes away end as superseded (flows' stillValid, checked by the daemon) (#160) (c0bbcfb)
- sdk: an approval survives a head that only merged in its base (#184) (8a6c44f)
- sdk: implement holds a blocked issue, and leaves an epic run's tasks to it (#188) (4f66c12), closes #177
- sdk: Stack.refreshLayer brings a layer whose base moved up to date and adjusts it, outside the review rounds (#189) (205ab4c)
- sdk: Stack.syncBase merges a layer's moved base in, including a squash-merged layer below (#186) (1487c3f)
- the config branch is GitHub's default, and a flow's work targets its own base (#216) (4a4ffd5)
Bug Fixes
- a worktree left by an earlier run is reset to the claimed branch, so implement's push no longer fails with stale info (#159) (9552a27)
- recipes: an approved layer of a stack waits for the layer below, rather than going to a person (#219) (4f450ab)
- review, address-review and merge treat a pull request stacked on another branch as a layer (#185) (9b834b8)
- runs preparing worktrees at once no longer collide on the checkout's git locks (#212) (#213) (d4ee04b)
- sdk: addressing a review stops for a person when the author leaves edits uncommitted (#194) (657528d), closes #192