Repository navigation
feat: /resume in a structured chat, and a loaded skill shows as a step - #117
Merged
Merged
Conversation
…ersations, and a loaded skill shows as a step A structured agent has no screen for its own /resume, so the chat opens the app's picker: Claude Code's conversations in the folder (those had in its terminal too) or an ACP agent's session/list, newest first. Picking one carries it on in the same tab, its earlier turns in the chat, and the conversation it leaves stays resumable. A skill's instructions come back in Claude Code's stream as a user line marked isSynthetic, which the chat drew as the person's message. It is skipped now, and the Skill call is a step of its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…or never echoing again The "noticed" case wrote right after removing the laptop, before the daemon's next 50 ms look: on a slow runner the line echoed first and the cut then ended the stream cleanly, which failed the test though the stream was closed as it should be. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This branch was successfully deployed
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.
Two fixes for structured (Labs) chats.
/resumeworksBefore, a structured agent had no screen for its own
/resumepicker, so typing it did nothing useful. Now the chat opens Shipyard's own list of the agent's past conversations in the folder, newest first:/rename, else Claude's own title, else the first prompt.session/list(OpenCode, for one): their list.Picking one carries it on in the same tab. For Claude, its transcript is copied into the new conversation's record, so the earlier turns show in the chat. ACP agents are loaded with
session/load, and their replay shows once. The conversation you leave stays under Resume a conversation. The chat's current conversation is marked this chat, and one running in another tab is shown but can't be picked./resume wordsopens the list filtered by those words.Box API:
GET /v1/sessions/{name}/past, andPOST /v1/sessions/{name}/resumetaking{ agent_session_id }. The new capability issessions.past; on an older berthd,/resumeis sent to the agent as before.A skill no longer shows as your message
In Claude Code's stream, a skill's instructions come back as a user line marked
isSynthetic. Its terminal transcript marks the same lineisMeta, which the chat already skipped. The chat drew the whole skill as a message from you (the berth-orchestrate screenshot). Now that line is skipped too, and the Skill call is a step of its own: Worked · used 1 skill › Used the acme-perf-budget skill. I confirmed the stream's format with a recordedclaude -pstream-json run of a throwaway skill.Screenshots are from the mock app (
?structuredmakes search-perf's Claude structured, with synthetic acme data).Checks
go vet ./... && go test -race ./...: all 36 packages ok. New tests: Claude's titles and ordering; a realberthdwith the stand-in Claude listing and carrying on a terminal conversation (its history shows, the old one stays resumable, a bad id gives 400 and an unknown one 404); the same over ACP withsession/listandsession/loadreplay; the ACP replay shown only once; a synthetic skill line not shown.pnpm test(498 pass), build,tsc -p e2e.e2e/resume-picker.spec.ts: 3 pass.cargo checknot run: no Rust changes.🤖 Generated with Claude Code