Skip to content

fix(web): keybinding rows, nested markdown images, composer spacing, project picker - #183

Merged
rynfar merged 4 commits into
pylonfrom
upstream/2026-08-29-web-polish
Aug 30, 2026
Merged

fix(web): keybinding rows, nested markdown images, composer spacing, project picker#183
rynfar merged 4 commits into
pylonfrom
upstream/2026-08-29-web-polish

Conversation

@rynfar

@rynfar rynfar commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Four change sets from the f94a0d646..1f8ed54ad T3 upstream review. Three cherry-picks and one cherry-pick with adaptation.

  • #8627 (074bcd6dc) — the sidebar project picker popup stays inside the sidebar (min-w-0 overflow-hidden on the combobox popup and picker shell). Byte-identical to upstream; follow-up to #5931, already adopted.
  • #8501 (c0e09f323) — markdown file previews resolve relative images from the file's directory instead of the project root; Windows drive paths, SVG fragments on signed URLs, and authored width/height/alignment are preserved; copy yields the authored markdown. Byte-identical; Pylon's workspaceRelativePath and editor-label divergence in markdown-links.ts / ChatMarkdown.tsx are untouched.
  • #8532 (be218ac76) — the keybindings settings page becomes SettingsRow items instead of the four-column table that forced a 680px horizontal scroll. Upstream's file taken verbatim except the two product strings, which say Pylon.
  • #8090 (660cddd3b) — four composer spacing defects, all verified present in Pylon: the scroll-to-end pill now ignores the shoulder-tab reserve unless a tab is present; the draft hero reduces its bottom padding when a tab is present; shoulder tabs inset to match the composer corner; and task segment bars hide past 10 steps.

The one adaptation

Upstream caps segment bars in its TaskSegments helper. Pylon renders segments through its fork-only TaskProgressSegments (TaskProgressStatus.tsx), so the cap (MAX_TASK_PROGRESS_SEGMENTS) lives there instead, with a test pinning both edges. That component is shared with the timeline turn-plan row, so the cap applies there too — at 24 steps the unfitted strip is ~286px of unshrinkable bar crowding out the row label, and the completed/total count still renders in both places, so no step count goes unrepresented. Review weighed gating on fit and preferred the single behaviour.

Pylon's task-dismissal helpers in ComposerTasksBadge.tsx survive; upstream's shouldShowPlanFollowUpPrompt context line was dropped from the import hunk because Pylon retired that symbol.

Verification

  • vp test run across the twelve affected files — 380 tests passed.
  • @t3tools/web and @t3tools/client-runtime typecheck clean; lint and format clean.
  • Independent review: #8627/#8501 stat-identical to upstream; #8532 differs from upstream by exactly the two branding lines; the useLayoutEffect lands in ChatViewContent scope with complete deps; data-chat-composer-main-surface confirmed present so the shoulder reserve measurement is live.
  • Not done: a browser pass. The keybindings rewrite has no rendering coverage, and the four spacing spots and the timeline segment row should be eyeballed at 1280×820 before merge.

Claude Fable 5 in Pylon.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 30, 2026
@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.3 KiB 13.3 KiB −6 B (−0.0%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB 0 B (0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.4 KiB 6.4 KiB −6 B (−0.1%) 7.8 KiB
Codex Live turn WebSocket decoded 55.5 KiB 55.5 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 9 9 0 (0.0%) 21
Claude Total thread wire 13.3 KiB 13.3 KiB +3 B (+0.0%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB −4 B (−0.1%) 7.3 KiB
Claude Live turn WebSocket wire 6.4 KiB 6.4 KiB +7 B (+0.1%) 7.8 KiB
Claude Live turn WebSocket decoded 56.4 KiB 56.4 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 10 10 0 (0.0%) 21

Baseline: 750d503 · PR result: f19e3d9 · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

SunkenInTime and others added 4 commits August 30, 2026 13:02
(cherry picked from commit 074bcd6dc897f9c28b1bbc04737daa6ee3d8e40f)
(cherry picked from commit c0e09f323ac9f6bf4b9119cbad841db3379588d6)
(cherry picked from commit be218ac768d809087bfcea4d8f15c431f0d70e16)
Adapted for Pylon: the segment cap lands on Pylon's fork-only
TaskProgressSegments in chat/TaskProgressStatus.tsx (as
MAX_TASK_PROGRESS_SEGMENTS) rather than upstream's TaskSegments helper in
ComposerTasksBadge.tsx, which Pylon does not have. Pylon's dismissal
helpers in ComposerTasksBadge.tsx are kept, and the ChatView import block
drops upstream's shouldShowPlanFollowUpPrompt, which Pylon retired.

(cherry picked from commit 660cddd3bc9801e089afcabba11c62f41aeac5c3)
@rynfar
rynfar force-pushed the upstream/2026-08-29-web-polish branch from 6c36a25 to f19e3d9 Compare August 30, 2026 19:03
@rynfar
rynfar merged commit 34f175b into pylon Aug 30, 2026
15 checks passed
@rynfar
rynfar deleted the upstream/2026-08-29-web-polish branch August 30, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants