Repository navigation
Releases
v0.16.4
What's Changed
- Tell a fork of a session in a tree that courier did not start it by @ivopogace in #607
- Tell a parent what OpenCode's own message at a native child's turn end is by @ivopogace in #608
- Release 0.16.4 by @github-actions[bot] in #609
Full Changelog: v0.16.3...v0.16.4
v0.16.3
What's Changed
- Move the plugin API pin to OpenCode 2.3.0 by @ivopogace in #603
- Test OpenCode's reports of native children that are dropped, idle or stopped alone by @ivopogace in #605
- Release 0.16.3 by @github-actions[bot] in #606
Full Changelog: v0.16.2...v0.16.3
v0.16.2
Highlights
A finding reaches the parent while its report waits with a group. courier_send takes a finding with a report: what the other parts of the job need from it now (a value, a path, a wrong assumption of the split). When the report is held with a join group, the finding goes to the parent at once, and the parent passes it on to the sessions it affects. The finding stays on the held report too. It goes ahead only while another member of the group has yet to report; on the report that completes the group it arrives with the group's message. (#594, #598)
A blocked group member sees what the group already holds. A blocked report from a member of a join group reaches the parent at once, as before, and now brings the reports the group holds from the other members, in case what the blocked session needs is in one of them. (#574)
A join group is a choice, not the default. A session that splits its work is no longer told to start its parallel parts in one group. A group is for parts whose reports are of no use one at a time; without one, each report wakes the parent as it comes. The child brief, the group description and the skill say so. (#578)
courier_send says what steering does. A plain send to a working session is read at its next step, after the running tool call returns; nothing running is cut short. queue is only for a message that must not be read before the target's turn ends. Models had read the old wording as "a plain send interrupts", and queued findings that then arrived too late. (#585)
Docs
- The README's demo GIF is recorded again and shows a finding passed on mid-run: a worker's finding wakes its lead, the lead passes it on, and the sibling rewrites its test. The spotlight glides between steps, and a progress line marks the scenes. The narrated video and its scripts are removed. (#588, #599)
Tests and tooling
- Real-model suite: a new
discoverycheck, where a session makes a finding itself and its siblings need it, and fixes to thediscoveryandrecursivecheckers so a failing run waits out no timeout. (#566, #567, #570, #571, #572, #587, #589, #593, #597) - The live suite's native scenario prompts through the API, and
tui.sh's "Today" checks hold across midnight. (#564, #586) - No comments in code: all removed, and the rule is in CLAUDE.md. (#565)
What's Changed
- The native scenario prompts through the API, so opencode run's wait on a native child cannot stall it by @ivopogace in #564
- No comments in code: remove them all and make it the rule by @ivopogace in #565
- real-model discovery: a finding a session makes itself, passed on to its siblings by @ivopogace in #566
- discovery checker: the parts are told apart by the command each ran, not by the files its task names by @ivopogace in #567
- discovery: the finding is a key made when a part runs, so no session can know it beforehand by @ivopogace in #570
- discovery checker: a failing run waits out no timeout, the parts go on once the key cannot come in time by @ivopogace in #571
- discovery checker: a key the root read from a held report counts, and a part that searched the server's files for it is named by @ivopogace in #572
- A blocked report from a group member brings the reports the group holds from the others by @ivopogace in #574
- A join group is a choice for a pure fan-in: no session is told to group its parallel parts by @ivopogace in #578
- Real-model checkers: a look before the first spawn is not polling by @ivopogace in #587
- courier_send says what steering does: read at the next step, nothing running is cut short by @ivopogace in #585
- tui.sh: the Today checks read the record's own day, so a midnight crossing no longer fails them by @ivopogace in #586
- recursive checker: a failing run waits out no timeout, a wait the finding can no longer end is released by @ivopogace in #589
- README and demo GIF: a finding passed on mid-run; a join group is a choice by @ivopogace in #588
- recursive-conflict checker judges the half it told as the person (#592) by @ivopogace in #593
- A finding on a report reaches the parent at once, while the report is held with its group by @ivopogace in #594
- Recursive checker: the count pick skips a task that names count/total.txt to forbid it (#596) by @ivopogace in #597
- A group member's finding goes ahead only while another member has yet to report by @ivopogace in #598
- Re-render docs/demo.gif with the finding scenes, a gliding spotlight and a progress line by @ivopogace in #599
- Release 0.16.2 by @github-actions[bot] in #600
Full Changelog: v0.16.1...v0.16.2
v0.16.1
What's Changed
- Every courier envelope escapes a courier tag in its body, so no session can forge one by @ivopogace in #548
- A session's account of what the person said is not binding by @ivopogace in #550
- real-model.md: results of the full suite at a45369a by @ivopogace in #551
- plugin-api-notes: a prompt's metadata reaches the inbox item; other user items carry none by @ivopogace in #552
- The plugin passes text typed into a spawned session up the tree by @ivopogace in #553
- real-model: the recursive-conflict smoke check by @ivopogace in #554
- e2e/run.sh: E2E_GROUPS selects groups separated by spaces as well as commas by @ivopogace in #555
- real-model review check: reading the stash is not changing the checkout by @ivopogace in #556
- The opencode-release skill: adopt a new OpenCode release in courier by @ivopogace in #558
- real-model fan-out check: an instruction update is no step of a turn by @ivopogace in #559
- Move the plugin API pin to OpenCode 2.2.7 by @ivopogace in #561
- A spawned session that waits on an outside wake-up tells its parent and schedules a check-in by @ivopogace in #562
- Release 0.16.1 by @github-actions[bot] in #563
Full Changelog: v0.16.0...v0.16.1
v0.16.0
What's Changed
- Add the courier-egm-loop skill: EGM rounds on the skill until none is found by @ivopogace in #499
- A session's own check-in, firing after it reported, does not make it owe a new report by @ivopogace in #507
- courier_stop tells the parent of an idle target that still owed a report by @ivopogace in #509
- Model-facing string corrections from the EGM review (#502-#506) by @ivopogace in #508
- Skill: where a change goes below the root; laterText cancels at the last report (#513, #515) by @ivopogace in #516
- courier-egm-loop: run every round without the owner by @ivopogace in #519
- courier_stop tells the parent of an idle blocked target; only a check-in scheduled before the report is exempt (#512, #514) by @ivopogace in #517
- A reported child stops counting while its turn finishes; the limit refusals say what still counts (#511) by @ivopogace in #518
- The child brief says the person's words are the person's word (#520) by @ivopogace in #521
- The blocked stop notice says the session still holds back its join group (#523) by @ivopogace in #529
- A child's status-less message after its parent reported is not a prompt; the reference names the exempt self-scheduled message (#528, #527) by @ivopogace in #530
- A blocked child counts toward the limits; the refusals say what counts (#524, #525, #526) by @ivopogace in #531
- Real-model rows after EGM loop rounds 1 and 2; relax the fault checker's ordering; measured SUITE weights by @ivopogace in #532
- The limit refusals say to answer a blocked child first (#534) by @ivopogace in #535
- The limit refusals say courier_cleanup drops a blocked child (#537) by @ivopogace in #538
- courier_cleanup says a kept worktree's session is dropped only by a second call (#540) by @ivopogace in #541
- Real-model tables hold one batch; CLAUDE.md drops the exception for old rows by @ivopogace in #543
- The e2e checks wait on conditions, not fixed times by @ivopogace in #542
- recursive-finding: no session touches the wait files; a half started with the finding counts by @ivopogace in #544
- recursive-finding's row covers both file-wait batches by @ivopogace in #545
- Release 0.16.0 by @github-actions[bot] in #546
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
- Correct the drift an EGM review found in plugin-api-notes.md by @ivopogace in #458
- Reorganize plugin-api-notes.md and cut history from the maintainer docs by @ivopogace in #459
- Warn any parent with uncommitted work when it spawns an isolated child by @ivopogace in #468
- Say in the failure notice when a failed session still has live sessions under it by @ivopogace in #469
- Give an OpenCode subagent inside a tree no root role line and no courier_spawn by @ivopogace in #470
- Release a group when the parent's turn ended on a plain decline by @ivopogace in #471
- Model-facing strings: five corrections from the skill review (#466) by @ivopogace in #473
- Let only the top session write a tree's lesson by @ivopogace in #472
- Add the real-model rows for the EGM fixes on main by @ivopogace in #474
- Shrink courier-orchestrate to what no other text says by @ivopogace in #475
- Add the real-model rows for the relays and a part that goes wrong by @ivopogace in #483
- Tell a sub-orchestrator its children's asks go to the top by @ivopogace in #484
- Tell a session with none of its own running that no report will wake it at maxTotal by @ivopogace in #485
- Real-model smoke test: drop the prompts' sleeps; score a model-chosen native child by @ivopogace in #486
- Docs state how things are now: add the no-history rule to CLAUDE.md by @ivopogace in #487
- Say the model cancels its courier_later check-in; a report does not by @ivopogace in #488
- Have a sub-orchestrator pass a finding or the person's words up to its own parent by @ivopogace in #489
- Skill: say what a parent does with a partial or failed report; wording in the skill, silentNotice and the reference by @ivopogace in #490
- Add the no-sleeps real-model rows after the re-check waves by @ivopogace in #491
- e2e: absence checks wait for a barrier, never a timeout; shard weights re-measured by @ivopogace in #494
- A group's release does not make a child that already reported owe a new report by @ivopogace in #493
- Docs: opencode run waits on a native child still running at the root's end by @ivopogace in #496
- Release 0.15.0 by @github-actions[bot] in #497
Full Changelog: v0.14.0...v0.15.0
v0.14.0
What's Changed
- Find the project id to seed under through a session by @ivopogace in #437
- Show OpenCode's subagents in courier_tree, the panel, courier_stop and the record by @ivopogace in #439
- Strip comments down to one-line OpenCode and host facts by @ivopogace in #440
- Enable the Elephant-Goldfish Model plugin for Claude Code by @ivopogace in #441
- Fix the small drift two EGM reviews found in architecture.md by @ivopogace in #446
- Correct four claims in architecture.md the code does not bear out by @ivopogace in #447
- Correct the drift an EGM review found in docs/reference.md by @ivopogace in #450
- Remove the webhook receiver and courier_subscribe by @ivopogace in #452
- Say in the skill that a failed turn does not count toward the limits by @ivopogace in #451
- Move the plugin API pin from 2.2.5 to 2.2.6 by @ivopogace in #454
- Register the skill at skill://courier-orchestrate/SKILL.md by @ivopogace in #456
- Release 0.14.0 by @github-actions[bot] in #457
Full Changelog: v0.13.8...v0.14.0
v0.13.8
What's Changed
- Document the stage-only npm token by @ivopogace in #430
- Cut courier-orchestrate down to the tools' mechanics by @ivopogace in #433
- Add the review scenario to the real-model smoke test by @ivopogace in #434
- Add the recursive rows for the cut-down skill by @ivopogace in #435
- Release 0.13.8 by @github-actions[bot] in #436
Full Changelog: v0.13.7...v0.13.8
v0.13.7
What's Changed
- plugin-api-notes: record why courier_later does not use OpenCode's schedules by @ivopogace in #423
- Document that /goal does not wait for courier children's reports by @ivopogace in #425
- Remind a child about to go idle without a report, through the experimental.idle hook by @ivopogace in #424
- Link the upstream /goal request from the docs by @ivopogace in #427
- Release 0.13.7 by @github-actions[bot] in #428
- Move the plugin API pin to OpenCode 2.2.5 by @ivopogace in #429
Full Changelog: v0.13.6...v0.13.7
v0.13.6
What's Changed
- e2e/tui.sh: wait for the Pinned heading in the toast's capture by @ivopogace in #416
- Add a captioned GIF of two issues fixed in parallel by @ivopogace in #417
- Pin the plugin API to OpenCode 2.2.4, keep OpenCode's schedule tools from spawned sessions, and trim CLAUDE.md by @ivopogace in #418
- Release 0.13.6 by @github-actions[bot] in #419
Full Changelog: v0.13.5...v0.13.6