Repository navigation
feat: adapt to DSH 0.1.2 - #25
Conversation
|
Curious what happened to PR#23? I had been subscribed to that and posted on it, but it's gone. I think this is related to that same issue? |
Also curious about it. It just disappeared suddenly(with the issue as well), that's why i have to create a new pr now |
Synchronize model, command and preset discovery with runtime changes and protect settings edits with revisions. Expose runtime plugin inventory, including preset-scoped entries and external runtimes. Support transient assistant streams and command attachment format negotiation while preserving DSH 0.1.2 compatibility. Add regression coverage for streaming, discovery, settings and plugin management.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 307099b881
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| this.disconnectClient() | ||
| this.clearLiveControls() | ||
| const message = error instanceof Error ? error.message : String(error) | ||
| this.output.appendLine(`[reconnect] ${message}`) | ||
| this.publish({ phase: 'error', setup: null, statusText: `Could not reconnect to DSH: ${message} No tasks were resent.` }) |
There was a problem hiding this comment.
Drop transient assistant text when recovery fails
If the event stream drops during a live assistant attempt and all reconnect attempts fail, this path clears only controls and leaves the projector's process-local liveAttempt intact. The incomplete response therefore remains in the transcript with streaming: true even though no stream can finish it; rebuild the projector from historyEntries here so durable messages remain while the transient prefix is discarded.
Useful? React with 👍 / 👎.
|
@codex, review this |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 49ac95da2e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| this.disconnectClient() | ||
| this.clearLiveControls() | ||
| this.publish({ phase: 'error', setup: null, statusText: `Lost the DSH event stream: ${error.message}` }) |
There was a problem hiding this comment.
Discard live assistant state on terminal stream errors
When an invalid frame, authentication refusal, or other non-retryable stream error reaches this branch while a modern assistant response is streaming, disconnecting the client and clearing controls leaves the projector's process-local attempt—and the already-published message with streaming: true—intact even though it can never settle. The fresh case beyond the earlier exhausted-reconnect report is this non-retryable branch; rebuild the projector from historyEntries and republish its durable messages here as the reconnect-failure path does.
Useful? React with 👍 / 👎.
|
@codex, review this |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 876a8cd4d9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| this.publish({ phase: 'loading', statusText: `Reconnecting to DSH${automatic ? ` (${String(attempt)}/3)` : ''}…` }) | ||
| // A manual retry can renew an expired cookie using the existing launch URL. | ||
| // An automatic retry never changes credentials or starts a process. | ||
| if (!automatic) await connection.reauthenticate(recovery.abort.signal) |
There was a problem hiding this comment.
Skip reauthentication for tokenless reused runtimes
When the runtime was automatically reused because its unauthenticated session/list probe succeeded, its DshConnection has neither a cookie nor a saved launch URL. A manual reconnect— including invoking Reconnect on an otherwise healthy connection—disconnects the client and then unconditionally calls reauthenticate(), which always throws No DSH launch token is available; consequently this supported external-runtime path cannot be manually reconnected without restarting or reselecting the runtime. Only renew credentials for token-backed connections, or let tokenless connections rebuild their subscriptions directly.
Useful? React with 👍 / 👎.
Summary
Adapt DSH Sidebar to the breaking protocol changes in DeepSeek Harness 0.1.2-rc.1.
This draft currently contains the authenticated transport foundation. The chat controller still uses the old client; the sidebar is not yet fully compatible with the new runtime.
Related to #22.
Progress
Validation for the transport foundation
pnpm check: 241 tests passed, 1 skipped; typecheck and build passed.