Repository navigation
feat(remote-dsh): queue next-run prompts and tolerate empty reasoning blocks - #30
Merged
Merged
Conversation
… blocks Add `next_run` prompt delivery and queued-input withdrawal across the backend contract, v2 protocol, and DSH adapter. The DSH driver holds a prompt sent while a run is active and starts it as a new run afterwards; a held input can be withdrawn through `orbis.sessions.withdrawQueuedInput`. Skip empty text and reasoning blocks when projecting DSH messages. DSH keeps them so `replayState.blocks` stays index-aligned, and DeepSeek at low reasoning effort returns a signature-only reasoning block; rejecting it failed `orbis.sessions.sync` for the whole session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
Next-run queue and withdrawal
next_runprompt delivery: a prompt sent while a run is active is held by the driver and started as a new run once the active run completes.orbis.sessions.withdrawQueuedInputso a held input can be withdrawn before it starts.prompt.next_runandprompt.queue.withdrawcapabilities.Empty text/reasoning blocks
textandreasoningblocks when projecting DSH messages; a block without a stringtextis still a protocol error.replayState.blocksstays index-aligned.deepseek-v4-flashat low reasoning effort returns{ type: "reasoning", text: "" }with a signature-only replay entry.orbis.sessions.syncwithDSH reasoning block is invalid. Opening the session failed, and a turn never settled on mobile. This is the issue reported by a DSH Android user, and it reproduces on 0.2.0-rc.2.The changeset bumps
@orbisapp/remote-dshas a minor release.Compatibility
Older Orbis apps reject a driver that reports capabilities they don't know (
Driver capabilities contains an unknown capability). After this release, mobile builds made before the next-run client changes cannot connect to an updated plugin until they update too.Test plan
pnpm run check:core: release checks; backend 21, transport 63, protocol 35, node-store 4, and remote-dsh core 77 tests pass.pnpm run check:dsh: bundle, typechecks, and 27 files / 180 tests pass. New tests cover a recorded signature-only reasoning message and a reasoning block missingtext.serve:dshon DSH 0.2.0-rc.2. The stuck session synced and later turns completed.🤖 Generated with Claude Code