Repository navigation
fix(shared): hide a web citation marker that is still streaming - #34864
LetterXbox wants to merge 1665 commits into
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This change hides unfinished web citation markers while text is streaming. It is a narrowly scoped presentation correction with no evident material impact on stored data or external systems. You can add or adjust custom eligibility rules. Learn more. |
…own merge request (pingdotgg#29791) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…otgg#33461) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
… to 3x later (pingdotgg#33550) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…composer (pingdotgg#33341) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#33475) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…anded (pingdotgg#33513) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…otgg#29801) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ve description-only matches (pingdotgg#33692) Co-authored-by: Julius Marminge <julius0216@outlook.com>
… not a same-named one on PATH (pingdotgg#33836) Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…tgg#33586) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#36824) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…nstead of failing (pingdotgg#36821) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…tree (pingdotgg#36800) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com>
…g#33794) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…pingdotgg#33435) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#33725) Co-authored-by: DrSeedon <DrSeedon@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ngdotgg#36832) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…#33840) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…it (pingdotgg#33248) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…auncher shortcuts (pingdotgg#33726) Co-authored-by: Julius Marminge <julius0216@outlook.com>
… fetch (pingdotgg#33845) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#35479) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…other limits (pingdotgg#31748) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
… every folder for each expansion (pingdotgg#31465) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…dotgg#31781) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…nd draft rows (pingdotgg#31195) Co-authored-by: Julius Marminge <julius0216@outlook.com>
pingdotgg#31593) Co-authored-by: Matyas Rathonyi <matyasrathonyi@imac-server2.tailacc4a3.ts.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#31752) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…text (pingdotgg#31780) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ot resolve (pingdotgg#31747) Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…dotgg#31931) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ls in a new worktree (pingdotgg#37030)
pingdotgg#31816) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#37032) Co-authored-by: Taylor Dolezal <117500+onlydole@users.noreply.github.com>
…d snoozed threads (pingdotgg#31894) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…otgg#31885) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…e sequences (pingdotgg#31882) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ntry" and "1 cell" (pingdotgg#31886) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…pingdotgg#31929) Co-authored-by: Geezy <igor.licko@gloryck.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
# Conflicts: # apps/mobile/src/features/threads/ThreadFeed.tsx
|
This PR changes the test suite by +2198 test cases (browser +266, unit +994, server +938). New browser test files: Keep tests that would fail for a real reason, and test logic below the UI where it can be. See Testing. |
|
Note Written by Merged current main without rebasing. The mobile conflict resolution preserves reference definitions before native citation rendering. The citation-tail fix is unchanged. Blacksmith Chrome replay through the real ACP adapter, orchestration and web client confirmed partial citations remain hidden, including an unfinished final tail, while code examples stay literal. Native mobile runtime and a paid Codex turn were not exercised. |

Part of #30979. Stacked on #31053, so it targets
fix/issue-30979. It is a focused fix for the same defect, within the markers #31053 already hides.Problem
#31053 hides a web citation marker only after its closing U+E201 arrives. Codex streams
item/agentMessage/deltain token-sized pieces, and the Codex adapter flushes them every 50 ms, so the displayed text can end partway through a marker. Until the rest arrives,citeturn…(or justci) shows at the end of the message. If the stream stops there, the fragment stays. The web streaming path renders through the sameremarkCodexDirectivestransform and has no tail trimming; mobile goes throughrenderCodexMarkdownForNativeDisplay, and copy throughrenderCodexDirectivesForCopy.Fix
WEB_CITATION_MARKERalso matches an unfinished marker at the end of a text: U+E200 followed by any prefix ofcite, U+E202 and the ids. The unfinished form allows no whitespace and must run to the end of a text node, so a malformed marker in the middle of a sentence is left as it was. It applies to finished messages too, so a stream that stopped mid-marker stays clean; #22034 restored the fragment once streaming ended, but these markers have no source data to show. Closed markers match exactly as before. Only the pattern changes; the replacement logic that #33049 rewrites is untouched, and this branch merges cleanly with it.Verification
Rates held. citeturn0sea,Rates held. ci) and pass with the fix.vp test run packages/shared/src/codexMarkdownDirectives.test.ts: 52/52.vp run check:changed: format, lint, knip, typecheck (35 packages) and tests pass.Takeover verification at
5e7e4ada85: merged current main without rebasing, preserving mobile reference definitions before native citation rendering. Blacksmithvp run check:changedpasses format, lint, knip, 35 package typechecks, 62 tests and the mobile compiler checks. Two independent source reviews found no issues. A real Chrome client replay through the ACP adapter and orchestration streamed a citation in separate chunks, left a final unfinished citation hidden, and preserved a citation inside code. Native mobile runtime and a paid Codex turn were not exercised.Implemented with Claude Code (Opus 5.5).
🤖 Generated with Claude Code