Repository navigation
fix(fork): resolve upstream merge 37714a8de5 (2026-11-14) - #162
Open
orbitingflea wants to merge 1 commit into
Open
orbitingflea wants to merge 1 commit into
orbitingflea wants to merge 1 commit into
Conversation
Resolves the 11 conflicts of the merge commit below and the breaks the merge left. - send_to_user: upstream added its own tool with the same name. The fork's tool stays the registered one, since display modes read its calls by name and `text`, and it now follows upstream's design in Normal display mode: up to 4000 UTF-16 code units, upstream's result with `sentMessage`, so web and mobile draw the text as the agent's words, and upstream's Claude instructions on mid-turn sends. A Claude conversation keeps its first system prompt, so those instructions come from a prompt hook while the thread is in Normal. Messages only, Messages + Dashboard and Chat + Replies keep the 1000-byte tool and get no such instructions. The tool carries upstream's alwaysLoad hint; labels follow upstream's; upstream's unregistered handler file is removed, and the eval lists the registered tools. - AppArmor: upstream's setup keeps a profile already on disk. The fork's full Chrome needs its path in the profile, so setup now also rewrites the exact profile an older T3 wrote, and keeps any other profile as upstream does. - Upstream's browser setup test host gets Xvfb, which the fork's setup asks for, and a case for the older profile. - The fork's parity test mocks upstream's new theme service. - The rest keeps both sides: GitHub-hosted macOS runner, delegated-completion wakes, preview mode restarts and start page, the reply-draft guard in the chat view. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Other scenariosNo All 64 scenario measurements
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
This branch has not been deployed
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.
This pull request resolves the merge of upstream 37714a8 into the fork: commit A (41919f8) left conflict markers in 11 files. The fork now differs from upstream in 364 files, 2 more than before, and adds no lint suppression.
改了什么行为
Behaviour change: yes, in a Normal-mode thread Claude is told to send drafts and code blocks mid-turn with send_to_user, which then takes upstream's 4000-character limit, and web and mobile show the sent text as the agent's words; threads in Messages only, Messages + Dashboard and Chat + Replies keep the fork's 1000-byte send_to_user and get no such instruction.
Upstream added its own
send_to_user(pingdotgg#36384). The fork's tool stays registered, because display modes read its calls, and follows upstream's design in Normal. A Claude conversation keeps its first system prompt, so the instruction comes from a prompt hook while the thread is in Normal. In Normal a sent code block now shows above the final reply instead of inside the folded work.send_to_useris pre-approved in plan mode, as upstream does. Aftersudo t3 browser setup, a profile an older T3 wrote is replaced, so full Chrome keeps its sandbox; an administrator's profile is kept.Why
Upstream's changes reach the fork, and each fork feature keeps working on upstream's new code.
Undo
Revert this commit and commit A together.
Files
SendToUser.ts: Normal takes 4000 UTF-16 units and returnssentMessage; the other modes keep 1000 bytes. Stored sends count by their display event, so a Normal send's ignoredreply_toorackchanges nothing after a mode switch.DisplayModeCompactionNote.ts,ClaudeAdapterV2.ts: the hook gives upstream's section on the first Normal prompt, after a compaction, and after a return to Normal; the system prompt leaves it out.displayModeTimeline.ts: Normal sends show in upstream's row, and as replies in the other modes.fork/previewChrome.ts: the older profile is a literal, and setup andsandboxBlockedcall its check; setup rewrites only that profile.browser.test.tsgets Xvfb in its fake host and a row for the older profile. Upstream's unregisteredmessage/handlers.tsis deleted; the eval lists the registered tools.agentContextBudget.json: the tool list grows 1714 bytes, 1240 from upstream's theme tools and 474 from the fork's Normal wording; the Claude append is measured with upstream's layout.