Repository navigation
chore(server): port upstream Claude and stability fixes (2026-10-08) - #262
Merged
Merged
Conversation
…ad busy (pingdotgg#14497) Ported from upstream 9da066d. A result for a Claude-initiated turn (a resumed session reporting a leftover background task, a peer wake-up) no longer completes the user's queued turn. New turns now send their turn id as the prompt uuid so newer CLIs can echo it back in `user_message_uuids`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…tgg#13295) Ported from upstream e0db2a5. When a dispatch fails and the engine reconciles from the event store, it now republishes only the events that dispatch appended. A shared state directory can hold events another server already handled, and republishing them started a second provider turn. The test helper gains a file-backed database option, and the test subscribes with a start-immediately fork since the fork exposes `streamDomainEvents` rather than upstream's `subscribeDomainEvents`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Ported from upstream b3b6ae2. Claude Code accepts SKILL.md frontmatter whose plain scalars contain `: ` (for example a description like "via kane-cli: run browser objectives"), but strict YAML rejects them, so those skills vanished from the `$` picker. A failed parse now retries with just those scalars quoted, leaving comments and YAML structure alone. The test drops upstream's invocation-flag fields, which the fork's skill model does not carry. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#16223) Ported from upstream 24e4b62. An item whose effect failed or died used to end the worker fiber, so every later item queued forever and `drain` never resolved. Failures are now logged and skipped, a closed scope drops queued items so `drain` resolves, and a refused offer is no longer counted. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…6903) Ported from upstream 588d32e, re-expressed against the fork's hardcoded Claude model list (upstream moved to model-manifest.json). Haiku 5.5 offers effort low..max (medium default) plus ultrathink, keeps Extra High, opens on the 1M context window by default with 200k opt-in, and is gated on Claude Code 2.1.293 with an upgrade nudge at the top of the ladder. Its slug aliases are added and the picker marks it New. Not ported: upstream also retired Sonnet 5 and Opus 5 to legacy and moved the bare "sonnet" and "haiku" shortcuts to the 5.5 models. The fork keeps Sonnet 5 as its default, and "haiku" stays on Haiku 4.5, which needs no minimum CLI version and is the default text generation model. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
The fork hasn't merged upstream since 2026-07-30, so it was missing several Claude and server stability fixes. This PR ports them by hand into the fork's V1 orchestration and
ClaudeAdapter, one commit per fix, along with the upstream tests for each.Ported
/compactno longer ends early and leaves the thread busy. A result from a turn Claude started itself (a leftover background task after resume, a peer wake-up) no longer completes the user's queued turn. New turns now send their turn id as the prompt uuid, so newer CLIs can echo it back inuser_message_uuids. The pinned SDK 0.3.170 types don't have the echo fields yet, so the code reads them through a narrow cast.startImmediatelyfork because the fork hasstreamDomainEvents, not upstream'ssubscribeDomainEvents.:inside a plain scalar (e.g.description: ... via kane-cli: run ...) appear in the$picker again. The test drops upstream's invocation-flag fields, which the fork's skill model doesn't have.DrainableWorkerkeeps running after an item fails,drainresolves after the scope closes, and a refused offer is no longer counted.ClaudeProvider.ts. Upstream made this change inmodel-manifest.json, which the fork doesn't have. Haiku 5.5 offers effort low to max (default medium) plus ultrathink, keeps Extra High, and defaults to the 1M context window ([1m]) with 200k as an option. It needs Claude Code 2.1.293, with an upgrade nudge at the top of the ladder. It also gets thehaiku-5.5,claude-haiku-5.5andclaude-haiku-5-5aliases and the New badge.Skipped
taskAgentsregistry,pendingTaskModels, thetask.updatedruntime event, andmodel/agentIdon task payloads. The fork has none of these, so the bug can't happen here.sonnetandhaikushortcuts are unchanged.haikustill points to Haiku 4.5, which has no minimum CLI version and is the default text generation model.Verification
vp test runon ClaudeAdapter, OrchestrationEngine, ClaudeSkills, DrainableWorker and sharedmodel.test.ts: 121/121 pass.mainon Windows.'v2\r\n') mismatch.tsgo --noEmitfor server, contracts, shared and web: no errors.vp lintandvp fmtare clean (one existing warning in ClaudeAdapter.test.ts).vp run check:avicodeandvp run test:avicode(7/7) pass.🤖 Generated with Claude Code