Repository navigation
piggery v0.10.1 - #29
Merged
Merged
Conversation
…pted, failed or crashed turn on any harness, cleanup keeps mail its recipients have not read, a team member can no longer stop a person's session, and Claude Code sessions keep their participant across `/clear`, `/branch` and forks. Mail is no longer lost or held back after an interrupted, failed or crashed turn on any harness, cleanup keeps mail its recipients have not read, a team member can no longer stop a person's session, and Claude Code sessions keep their participant across `/clear`, `/branch` and forks. Before you upgrade: - **A template with a typo inside a role, its `spawn` block or a routing rule no longer founds a team.** An unknown key there, a role name the manifest does not have, or a limit below 1 is refused with the reason (`none` still switches a limit off). An unknown top-level key is ignored with a warning, so a template written for a newer piggery still runs. Teams already founded keep their manifest as it was. Run `piggery check` to see what a template of yours would hit. After upgrading, run `piggery restart`: the daemon updates the integrations it installed to pi 14, omp 14, dsh 15 and opencode 12. Then restart the sessions that were open, or run `/reload` in pi. Mail: - Fix: in omp and dsh, mail that arrived at the very last step of a reply was taken as read before the model saw it. If the next step or run was stopped (Esc, `piggery abort`, a failure), that mail was lost. It is now taken as read only once a model turn that shows it ends, and comes again otherwise (#15). - Fix: a Claude Code turn interrupted with Esc, at a permission prompt or by an SDK client (Paseo) held back wakes and mail until the next prompt, and a permission prompt left with Esc kept the session shown as awaiting permission. Claude sends no hook for an interrupt; piggery now reads Claude's own session status and ends such a turn as interrupted. As after any interrupt, nothing starts on its own: the next mail, or your next prompt, brings the waiting mail (#13, #14). - Fix: a member that went gone in the middle of a turn (its process exited, its session ended, or the daemon restarted) was never woken by mail; the mail waited until someone resumed it. Mail now wakes it as it wakes any gone member (#18). A headless worker whose process ends on its own (a crash, not `agent stop`, `team down` or a daemon shutdown) is also woken at once for the mail it had not finished, its task included: one automatic restart per mail. - Fix: in opencode, a run that failed before the model answered (for example, a model that does not resolve) with piggery mail in it was nudged again and again and never ended. It now ends failed: the mail is not taken as read and comes again with the next mail (#27). - Fix: cleanup (`piggery gc`, and the daemon's own) deleted unread mail that a closed team or gone solo had sent to someone outside it, and once that person had been given such mail, cleanup of the team or solo failed on every run. Mail sent out now stays with its recipient until it is read; the team or solo is kept until then (#17). - Fix: the `settled` notice ("nobody is working and no mail waits") left out mail waiting for a member that had gone and could not be woken (a limit refused it), so it could tell you a team was done while mail sat unread (#21). - Fix: `cc` copies and timer notices sent to a role still went to a member that had left the team, where nobody reads them (#23). Teams and sessions: - Fix: `agent stop` and `agent resume` treated a session admitted into a team as a headless worker. A member could stop a session a person runs, and one mail later the daemon ran that conversation a second time in the background, while the person's own session was refused. Both now refuse a session, as `piggery kill` and `piggery resume` already did (#19). - Fix: when a session reopened the team it had been the gate of, the taskforce it had called in the meantime was closed as orphaned, its workers stopped mid-task. The taskforce now stays with the session (#22). - Fix: after a Claude Code session's row moved (its gate closed its own team, `piggery team down`, or an in-process resume), its piggery tools stayed bound to the old one: mail no longer woke it, and tool calls could fail with `run.stale`. A gate closing its own team was also told `refused (host.unknown)` although the close succeeded (#16). - Fix: Claude Code's session identity. After `/clear`, a reconnect of piggery's MCP server (a daemon restart is enough) put the old session id back, so a wake by mail resumed the conversation from before `/clear` (#24). `/branch` turned the session into a new solo, and its participant went gone with its mail (#25). A session forked outside its process (Paseo's Rewind) became a new solo with an empty inbox (#13). - Fix: a manifest with a typo inside a role, a `spawn` block or a routing rule founded a team, the typo silently became a default, and `piggery check` said "No problems" (#20). - Fix: a worker whose first start failed before its harness made a session (a model or provider that did not resolve) could never be brought back: `agent resume` asked the harness for a session that did not exist, although the error said to fix the cause and resume. It now starts a fresh session under the same id. This was true of every harness but pi. - Fix: a session of yours that mail had woken once, and that went gone again, was woken the next time into the conversation from before your last `/clear`. It now always resumes the newest one. - dsh 0.2.0-rc.2 and opencode 1.19.0 are tested. dsh rc.2 no longer reads `~/.dsh/settings.yaml`: a custom provider is a row of `$DSH_HOME/cordis.patch.yml` (see the reference's dsh notes). Thanks to @Patruxs for the reports, each with a test that reproduces it.
sting8k
force-pushed
the
release-v0.10.1
branch
from
October 12, 2026 04:43
5e6b05d to
7b7b670
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v0.10.1: fixes #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #27, plus resume after a failed first start and the newest session on a second wake. dsh 0.2.0-rc.2 and opencode 1.19.0 tested. Notes: CHANGELOG.md. Live-tested on private daemons (Claude claude-sonnet-5-5; pi, omp, dsh, opencode on HP/glm-5.3-flash).
Not to be merged yet: open for CI and review. The tag v0.10.1 exists only locally.