Skip to content

style: workspace shell, transcript, and home empty state aesthetic polish#76

Merged
wolfiesch merged 1 commit into
mainfrom
codex/workspace-aesthetic-polish
Jul 19, 2026
Merged

style: workspace shell, transcript, and home empty state aesthetic polish#76
wolfiesch merged 1 commit into
mainfrom
codex/workspace-aesthetic-polish

Conversation

@wolfiesch

Copy link
Copy Markdown
Collaborator

What this changes

  • Home Empty State (A): Replaced duplicate BrandLockup welcome branding in browser empty state with EmptyMedia variant="icon" using the Lucide History icon. Lifted keyboard shortcut text size to text-sm text-muted-foreground.
  • Composer Semantic Grouping (Serialize session controls before prompts #7): Semantically structured action-row controls on desktop to group options (model/thinking) -> spacer -> context meter (status) -> hairline divider -> actions (attach, stop, queue, send).
  • Agents Pane Focus Indicator (B): Shifted index-row keyboard focus highlight to gate on CSS group-focus-visible/tree:ring-2 to prevent harsh visual focus indicators on mouse interaction. Removed duplicate title headers from SessionScreen, merging desktop close button cleanly into PaneHeading trailing slot, and absolute spacing overlay on mobile sheet using CSS ancestor-context in-[[data-slot=sheet-popup]]:pe-14 layout selector.
  • Mobile Tool Truncation (C): Updated tool preview summary tags with mobile line-clamp-2 and data-tool-preview="multi" layout overrides, falling back to sm:truncate.
  • Transcript Rhythm (Fix runtime completeness and make Tailnet mobile remote usable #1, Fix desktop recovery loops and remote runtime resilience #2, Publish v0.1.2 downloads and documentation #3): Fine-tuned message spacing (user turn breaks at pt-5 pb-2, assistant responses at pt-1.5 pb-2.5, tool groups at my-1). Rendered a border border-border/50 on the user presence bubble for sharper visual separation. Grouped tool-call headers in unified bg-card/40 card styles with divide-y divide-border/40 inline call separators.
  • Pane Footer Clean Up (Preserve project names after remote session creation #5): Removed keyboard-close hint footer and moved it to a descriptive tooltip on the pane heading's close button.

Why

  • Resolves layout and label redundancy across pane headers.
  • Tightens typography hierarchy and visual spacing of transcript rows.
  • Provides group unity for compound tool steps while optimizing multiline preview layouts on smaller mobile screens.

Screenshots

Desktop

Home Session Pane
Desktop Home Desktop Session Desktop Pane

Mobile (390px)

Home Session Pane
Mobile Home Mobile Session Mobile Pane

How you verified it

  • Automated E2E verification using headless Chromium screenshot assertions across desktop (1440x900) and mobile (390x844) viewports.
  • Verified full build passes via pnpm check (release, provenance checksums, linting, typechecking).
  • Verified all 991 tests pass via pnpm --filter @t4-code/web test.

Checklist

  • Verified build passes
  • Verified tests pass
  • Verified visual layout at multiple breakpoints
  • Uploaded PR assets to verified cdn host

Copilot AI review requested due to automatic review settings July 19, 2026 13:19

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dbef1a482a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

return (
<div className="flex h-full min-h-0 flex-col">
<PaneHeading family="agents" summary={summary} />
<PaneHeading family="agents" summary={summary} trailing={trailing} />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve a close control when the Agents pane is empty

When a session has no agent rows (the initial inspector state is EMPTY_AGENT_MAP, and ordinary sessions need not spawn subagents), AgentsPane returns FamilyEmpty before reaching this heading, so the forwarded desktop close button is never rendered. Since this commit removed the shell-level pane header, the dock is left without its visible close affordance (and without its pane title) in that common empty state; render the heading/trailing action outside the empty-state branch or pass it into the empty state.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in follow-up PR #77. PaneHeading and close button are now preserved in the empty pane state, covered by pane-empty-states.test.tsx.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

UI polish pass across the web workspace shell, panes, composer, transcript, and home empty state to reduce header redundancy, improve spacing/typography rhythm, and refine mobile truncation + focus affordances.

Changes:

  • Refined transcript spacing, tool-call grouping visuals, and mobile tool preview truncation/wrapping behavior.
  • Simplified/standardized pane headers by adding a PaneHeading trailing slot (used for the desktop dock close action + tooltip) and reducing duplicate header UI.
  • Adjusted home browser empty state branding (icon-based empty media) and composer action-row grouping (context meter + divider placement).

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated no comments.

Show a summary per file
File Description
provenance/t3code/imports/f2-transcript-20260711.json Updates provenance checksum for the adapted transcript rows source mapping.
apps/web/src/features/transcript/TranscriptRows.tsx Tweaks message/tool-row spacing, adds tool-group visual unity, and introduces mobile 2-line clamped tool summaries.
apps/web/src/features/transcript/tool-render/tool-render.css Enables multi-line tool summary wrapping on small screens when the new preview attribute is present.
apps/web/src/features/panes/TerminalsPane.tsx Accepts and forwards an optional trailing action into the shared pane heading.
apps/web/src/features/panes/ReviewPane.tsx Accepts and forwards an optional trailing action into the shared pane heading.
apps/web/src/features/panes/PaneHeading.tsx Adds trailing slot support and sheet-popup-aware padding to avoid close-button overlap.
apps/web/src/features/panes/PaneContent.tsx Threads an optional trailing action through to each pane implementation.
apps/web/src/features/panes/FilesPane.tsx Accepts and forwards an optional trailing action into the shared pane heading (including offline header).
apps/web/src/features/panes/AgentsPane.tsx Softens focus visuals to prefer keyboard focus-visible, and forwards trailing into the pane heading.
apps/web/src/features/panes/ActivityPane.tsx Accepts and forwards an optional trailing action into the shared pane heading.
apps/web/src/features/composer/Composer.tsx Reorders/visually groups context meter within the desktop action row with a divider.
apps/web/src/components/SessionScreen.tsx Removes duplicate pane subheaders; injects a close action via PaneContent.trailing with tooltip; drops the footer hint.
apps/web/src/components/HomePane.tsx Updates browser empty state to use an icon-style empty media and adjusts shortcut hint typography.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wolfiesch
wolfiesch merged commit 438cfbe into main Jul 19, 2026
5 checks passed
@wolfiesch
wolfiesch deleted the codex/workspace-aesthetic-polish branch July 19, 2026 13:25
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.

2 participants