Repository navigation
test(claude): fix queued-send cancellation CI expectations - #23675
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThree cancellation test expectations now include Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The application behavior is unchanged, and the tests now expect the structured cancellation result the producer emits. No merge-blocking risk is evident; normal CI checks remain appropriate. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
claude-structured-control-actions.test.ts— addsrejection: { kind: 'cancelled' }to thesettled.mock.callsexact-equality assertion so it matches the full settlement production emits.claude-structured-queued-stop.test.ts— adds the field to the sharedWITHDRAWNconstant that four tests compare against withtoEqual.claude-structured-real-cli.test.ts— adds the field to thetoContainEqualassertion on the real-CLI settlement.
The additions match production exactly: settleCancelledClaudeDispatchWaiters builds each settlement through claudeDispatchRejection(agentSessionFailureFact('cancelled')), which returns both the legacy marker reason and the typed rejection fact { kind: 'cancelled' }. The assertions remain exact-equality and are tightened, not relaxed. I ran the three changed suites (31/31 pass) plus the other suites touching this contract (194/194 pass), and the remaining cancellation assertions either use toMatchObject or already carry the field.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
…#23676) * fix(mobile): truncate oversize markdown reads instead of failing them The desktop bridge refused markdown over a private 512 KiB cap with file_too_large, which reached the phone as a generic runtime_error that the reader discarded, so a 632 KB file showed "Couldn't load markdown". Reads now return a UTF-8-boundary prefix under one shared 2 MiB budget, marked truncated with the full byteLength and read-only. The phone shows the truncation like file tabs do and maps refusal codes to real copy, so an older desktop's refusal reads "File too large for mobile preview". Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): pin that a truncated markdown read is never editable The read budget sits above the edit budget, so every truncated document is already read-only as file_too_large. Pin that ordering so a future budget change cannot make a prefix editable, and name the constant as the markdown preview budget, separate from the file preview's own. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * test(mobile): refuse saves from a truncated markdown read A phone holding a truncated prefix must not write it back; the 256 KiB save guard refuses it as file_too_large before any version check. The shared budget test shrinks to the ordering it pins and names the bridge test as the behavioural pin. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * refactor(mobile): tighten markdown truncation types and measure once The read truncation measures the document once. The disk fallback drops its truncated-only read-only text, which the status line never showed, and both truncation fields are optional there. A markdown doc's flag is only ever true, and the schema comment names the hook, not line numbers. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * docs(mobile): drop a stale disk-fallback comment Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb * chore: retrigger CI after #23675 landed on main Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb

ELI5
Unrelated pull requests were failing five Claude cancellation tests after recent changes merged. Update the tests to check the complete cancellation result so CI can pass again.
What Changed
Add the expected
rejection: { kind: 'cancelled' }to the queued-send cancellation assertions, including the real-Claude check. Exact equality and the checks that only withdrawn messages settle remain intact. Application behavior is unchanged.Why
The cancellation result intentionally gained a typed reason in #23116, but #23553 introduced expectations without it. Checking that field preserves the contract; dropping it from production or weakening the assertions would hide regressions.
Linked Issue
CI failures: https://github.com/stablyai/orca/actions/runs/36469406876 and https://github.com/stablyai/orca/actions/runs/36468659066.
Visual Proof
N/A — test expectations only.
Testing
Review
Self-reviewed: this adds an expected field without relaxing existing assertions.
Agent skill upstream boundary
Notes
No platform, SSH, folder-workspace, or wire behavior changes.
Checklist