Skip to content

0.3.9 live-test lane: frontdoor resume de-chunk, Bedrock throttling ≠ overflow, silent file clicks, stale question cards, stdout log, activity colors - #1871

Merged
aarontrowbridge merged 13 commits into
mainfrom
live-test/0.3.9
Oct 25, 2026
Merged

aarontrowbridge merged 13 commits into
mainfrom
live-test/0.3.9

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

The live-test lane for the next release. It's deployed to the fleet (erlich) for live testing before merge: frontdoor, app dist and engine binary dcd478d5 (shard 1 now, shards 2/3 roll automatically when idle), plus the macbook extension 0.3.9-lane.1.

Contents (main@163d100f +):

Gates: deploy-gate.sh --scope engine --staged-binary is GREEN (frontdoor suite, jev, drift, engine typecheck, full engine test lane with zero new failures, boot smoke). New tests for each fix fail on main and pass here.

Live checks done so far: Bedrock (Opus) prompt plus a task subagent round-trip on the new engine; an auth.json write reaches the running engine without a restart (dummy key added, then removed). Pending: panel reload on the macbook (file click, question cards, reattach, picker).

Observed after the frontdoor restart: 10 resume member dropped — stalled (queue full) lines over ~30s on shard 2's catch-up, then migrated to shared fan-out and stable. Watching.

Supersedes #1858 and #1386 once merged. Fixes #1834, #1845, #1754.

aarontrowbridge and others added 9 commits October 25, 2026 09:07
…boundaries

83cd8af made the resume path de-chunk the engine dial unconditionally and
discard each read's unconsumed tail. Two consequences:

- an identity-encoded body (the frontdoor suite's HTTP/1.0 fakes) was fed
  to the chunk parser, which consumed nothing, so every gap/live frame was
  dropped. 4 TestSourceSideSequencing cases failed deterministically since
  83cd8af, and deploy-gate.sh has been red on main.
- for real chunked bodies, a chunk-size line or a chunk-closing CRLF split
  across reads was dropped/misparsed, wedging that member's stream.

De-chunk only when the dial head says Transfer-Encoding: chunked, carry the
pending tail into the next read, and consume the chunk-closing CRLF in its
own state. New TestResumeDechunk feeds a chunked body at every read size.
Full frontdoor suite: 64/65 (test_stalled_member_drop... is an
order-dependent flake, 3/3 alone).
…as context overflow

Bedrock ThrottlingException messages (e.g. 'Token throughput limit exceeded',
'Too many tokens per minute') match the broad regex patterns in isContextOverflow
(specifically /token limit exceeded/i, /too many tokens/i, /exceeds the limit of/i)
and are misclassified as context-window overflow. This triggers the compaction
recovery path, which also fails (same throttle), producing a misleading
'Conversation history too large to compact' error.

The misclassification is amplified by the Bedrock AI SDK adapter's known quirk of
coercing undefined to the string 'undefined' — the message() function in
provider/error.ts correctly extracts the real error from responseBody, but strips
the SDK's '429 Too Many Requests' prefix that would have triggered the 'too many
requests' exclusion.

Three fixes:

1. Status code guard in parseAPICallError: HTTP 429 and 5xx are never context
   overflow regardless of message text. This is the highest-leverage fix — every
   Bedrock throttling error arriving as HTTP 429 is now immune.

2. Tighter isContextOverflow patterns + broader exclusions:
   - /exceeds the limit of/ now requires a context/input/prompt noun prefix
   - New exclusions for 'throughput', 'per minute/second/hour/day',
     'invocation.*limit/quota', and 'quota'

3. Tests for Bedrock throttling messages that must NOT be classified as context
   overflow, covering both the pattern-level check and the full APICallError
   parsing path (including the 'undefined' message workaround).

(cherry picked from commit 4e7a41f)
…avoid misclassifying quota limits

(cherry picked from commit 34e910a)
…text and stale-path refusals; a throwing context callback cannot swallow the click (#1845)
@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8d8460f9-e4d4-4c9a-8c46-906232b570cb
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…on (port of harmoniqs/opencode#379, #378)

Ported from the fork branch amico/issue-378-activity-colors (df38ec003c) into
the app-bundle overlay. The fork-side edits to run-view/device-view/
calibration-view are dropped: amicode removed those surfaces (#1818, pinned by
research-surfaces-absence.test). status-popover-body keeps the engine toggle's
engine-state dot and uses ActivityDot for real MCP servers.

app/ui typecheck clean; app unit suite matches the lane baseline (24
pre-existing failures, zero new); activity + tab-status + widget-frame tests
green.
@aarontrowbridge aarontrowbridge changed the title 0.3.9 live-test lane: frontdoor resume de-chunk, Bedrock throttling ≠ overflow, silent file clicks, stale question cards, stdout log 0.3.9 live-test lane: frontdoor resume de-chunk, Bedrock throttling ≠ overflow, silent file clicks, stale question cards, stdout log, activity colors Oct 25, 2026
@aarontrowbridge

Copy link
Copy Markdown
Member Author

Added f2114a1: the activity color system (port of harmoniqs/opencode#379, closes #378 there): blue running, amber attention, shared ActivityDot. app/ui typecheck clean; app unit suite matches the lane baseline (24 pre-existing failures, 0 new). Deploy gate green. Deployed: app dist index-VqFI1xGG.js, engine 7078bcee on shard 1; shards 2/3 auto-roll on idle.

…#0a84ff light, #4da3ff dark) and a halo pulse instead of fading the dot to 35%
…on ::after (the color-mix box-shadow keyframe minified to empty)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(app): strip the heartbeat debug console.log kept byte-faithful in the consolidation

2 participants