Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
499 commits
Select commit Hold shift + click to select a range
046f26f
fix(web): project picker rows show the icon of the folder they open (…
flamboh Nov 2, 2026
9e00d9d
fix(web): pane corners keep the chrome grain under their curve (#29547)
flamboh Nov 2, 2026
b34d048
fix(web): closing a subagent's tab goes back to its parent thread (#2…
flamboh Nov 2, 2026
d922cdc
fix(web): drop the header Agents menu; Lineage covers it (#29568)
flamboh Nov 2, 2026
699696d
refactor(web): remove the empty pane header actions wrapper
maria-rcks Nov 3, 2026
df9763d
fix(web): pane tabs keep their icon and PR state when you switch tabs…
flamboh Nov 2, 2026
ebe3a58
fix(web): keep pane tab labels to one resource title
maria-rcks Nov 2, 2026
a69bb81
fix(web): side pane tab bars match the pane below them (#29064)
flamboh Nov 2, 2026
6727650
fix(web): closing a middle pane no longer blanks the panes beside it …
flamboh Nov 3, 2026
1719164
fix(web): top-right notices sit below the pane notch, not inside it (…
flamboh Nov 3, 2026
5356bb7
fix(web): Pull requests is always a layout tab, so "+" keeps it open …
flamboh Nov 3, 2026
c056987
fix(web): linked pull requests scroll up beside the pane tab notch (#…
flamboh Nov 3, 2026
57ebcd1
fix(web): the pull requests list scrolls under its header in one surf…
flamboh Nov 3, 2026
49c9add
fix(web): sideways swipes scroll the pane strip over every pane (#29883)
flamboh Nov 3, 2026
ac602ed
fix: retain layout compatibility checks after rebase
maria-rcks Nov 3, 2026
bec36f8
fix(web): match settings shell and pages to the design canvas
maria-rcks Nov 3, 2026
15942e6
fix(web): restore machine overview in environment settings
maria-rcks Nov 3, 2026
83651ac
fix(web): match project, archive and task settings to the design canvas
maria-rcks Nov 3, 2026
4e9b868
fix(web): show context usage and its breakdown in thread details
maria-rcks Nov 3, 2026
9e9b19f
fix(web): match thread details cards to the design canvas
maria-rcks Nov 3, 2026
dbe49cc
fix(chat): match the secret request card to the design canvas
maria-rcks Nov 3, 2026
3f81d53
fix(web): align thread details summaries and usage rows with the design
maria-rcks Nov 3, 2026
c850cdb
fix(web): the overview's new-workspace slots get the selection ring a…
flamboh Nov 5, 2026
8eac37a
fix(web): the workspace hint sits at the same height on every pane (#…
flamboh Nov 5, 2026
461cf65
fix(web): thread details hide empty Servers and Automations cards (#3…
flamboh Nov 5, 2026
b1a5795
fix(web): the composer floats over the chat instead of sitting in a s…
flamboh Nov 5, 2026
88b437a
fix(web): restore symbols the workspace panes used from main's rebase…
maria-rcks Nov 6, 2026
190732b
feat(web): scrolling workspaces move behind a Labs toggle
maria-rcks Nov 7, 2026
d9eabb5
fix(web): cmd+N opens main's project picker and replaces the focused tab
maria-rcks Nov 7, 2026
505f49e
fix(web): pane tabs keep their full label and the tab strip scrolls (…
flamboh Nov 8, 2026
6c74ce4
fix(web): nested corners stay concentric with their containers (#31222)
SunkenInTime Nov 8, 2026
a5160eb
fix(web): a trailing shortcut hint sits as far from the button edge a…
SunkenInTime Nov 8, 2026
c2b7c16
fix(web): hidden panes no longer turn desktop title-bar clicks into w…
juliusmarminge Nov 8, 2026
67e0a86
fix(web): the pull request tab pill sits evenly inside its track (#32…
SunkenInTime Nov 8, 2026
8b67432
fix(web): no empty space under the Lineage card's current thread row …
SunkenInTime Nov 8, 2026
c9f9bbb
fix(web): long prompts use the composer's full width while scrolling …
SunkenInTime Nov 8, 2026
a7a222a
fix(web): hovering a tab shows its close button (#32692)
SunkenInTime Nov 8, 2026
18819f5
fix(web): the previous agents chevron lines up with the Lineage rows'…
SunkenInTime Nov 8, 2026
dec1a70
fix(web): snooze options line up in columns (#32704)
SunkenInTime Nov 8, 2026
3df63ca
fix(web): a sidebar thread opens in its chat's tab, not the side pane…
SunkenInTime Nov 8, 2026
723129a
fix(web): the goal line's icon and info button sit on its first line …
SunkenInTime Nov 8, 2026
b1f847a
fix(web): the thread details button no longer stays lit while the pan…
maria-rcks Nov 8, 2026
c014de4
fix(web): the Context card no longer repeats why compacting is disabled
maria-rcks Nov 8, 2026
dba793f
feat(web): show what fills a Claude thread's context window
maria-rcks Nov 8, 2026
926f21a
fix(web): lineage card lists only the thread's relatives
maria-rcks Nov 8, 2026
c09a65c
feat(web): open lineage children as ghost tabs beside their parent
maria-rcks Nov 8, 2026
4d9d997
fix(web): finished remote subagents fold into previous agents
maria-rcks Nov 8, 2026
aba4725
fix(web): a subagent's parent tab looks like any other tab
maria-rcks Nov 8, 2026
dde55ab
fix(web): the locked workspace chip starts on the composer's text line
maria-rcks Nov 8, 2026
ffd1405
fix(web): previous agents sits centered when it is the Lineage card's…
maria-rcks Nov 8, 2026
43d78d9
fix(web): carry main's side chat settings, hosted folder trails and r…
maria-rcks Nov 9, 2026
d55c777
fix(web): terminal pane actions sit in a right notch and the shell st…
maria-rcks Nov 9, 2026
46a5490
test(web): drop low-signal tests the redesign added to workspace panes
maria-rcks Nov 9, 2026
ac8e566
fix(web): a new tab request survives an earlier one settling
maria-rcks Nov 9, 2026
78e3d03
fix(web): a quick layout chip flick drops where it lands
maria-rcks Nov 9, 2026
f10393f
feat(web): sidebar opens threads in the pane's ghost tab
maria-rcks Nov 9, 2026
0ee0a67
feat(web): dim unfocused panes' tab labels in a split
maria-rcks Nov 9, 2026
1d31838
fix(web): fit the workspace panes to main's Labs cleanup
maria-rcks Nov 9, 2026
541131e
perf(web): modifier keys and shortcut labels stop re-rendering the si…
maria-rcks Nov 9, 2026
6974dc9
perf(web): toggling a list's scroll fade restyles the scroller, not e…
maria-rcks Nov 9, 2026
7a62e26
perf(web): chat view renders no longer re-render the composer and tim…
maria-rcks Nov 9, 2026
2b2d69e
perf(web): the timeline footer and composer banners stay memoized acr…
maria-rcks Nov 9, 2026
bea85c6
perf(web): the terminal hint rides its pane instead of being re-measu…
maria-rcks Nov 9, 2026
149f066
fix(web): a limit's reset day sits right after its percentage
maria-rcks Nov 9, 2026
347e003
fix(web): cmd+D opens the diff beside the chat again
maria-rcks Nov 9, 2026
59a8924
fix(web): usage meters fill the row, with reset days at the right edge
maria-rcks Nov 9, 2026
0bcb506
style(web): format the usage meter row
maria-rcks Nov 9, 2026
bacd05d
feat(web): a thread dragged onto a composer is mentioned there
maria-rcks Nov 9, 2026
614cf47
fix(web): lineage rows keep the title's width
maria-rcks Nov 9, 2026
07bb536
fix(web): lineage rows show the model slug and effort, with the time …
maria-rcks Nov 9, 2026
3188b72
feat(web): nightly chrome art is the drafting sheet in night indigo
maria-rcks Nov 9, 2026
ed899e8
fix(web): lineage rows name the model and its effort
maria-rcks Nov 9, 2026
10ea6b4
perf(web): keep settled timeline rows stable while streaming
maria-rcks Nov 9, 2026
816894e
fix(web): open the command palette over settings pages
maria-rcks Nov 9, 2026
2c5b25b
perf(web): ignore terminal focus while sidebar hints are hidden
maria-rcks Nov 9, 2026
3078f1d
refactor(client-runtime): drop an unused git progress checklist
maria-rcks Nov 9, 2026
bbaf8ea
fix(shared): retire saved shortcuts from older servers
maria-rcks Nov 9, 2026
84023a2
fix(client-runtime): scope approval files to the provider turn
maria-rcks Nov 9, 2026
29db820
fix(desktop): match preview shortcuts in the active keyboard layout
maria-rcks Nov 9, 2026
7b5a8eb
fix(desktop): keep history swipes when scrolling workspaces are off
maria-rcks Nov 9, 2026
25cd6cf
test(server): verify stalled claude summaries let turns complete
maria-rcks Nov 9, 2026
fae6d03
docs: match the shipped layout and composer behavior
maria-rcks Nov 9, 2026
ce4dbb5
fix(web): launcher navigation keeps one preview tab per pane
maria-rcks Nov 9, 2026
8dc400d
fix(web): background surfaces retain valid workspace focus
maria-rcks Nov 9, 2026
d1991dc
fix(web): closing background subagents preserves the active tab
maria-rcks Nov 9, 2026
2fc02a2
fix(web): stale tab replacements preserve open threads
maria-rcks Nov 9, 2026
6d9ba34
fix(web): written answers cancel question auto-advance
maria-rcks Nov 9, 2026
53b41c3
fix(web): show enabled ultracode on the reasoning chip
maria-rcks Nov 9, 2026
8a0909d
fix(web): pending answers ignore the parked prompt length
maria-rcks Nov 9, 2026
353c9ad
perf(web): tick thread mention ages inside their menu rows
maria-rcks Nov 9, 2026
19319f7
fix(web): keep theme import drafts when adding files
maria-rcks Nov 9, 2026
91faf3c
refactor(web): use settings primitives for text generators
maria-rcks Nov 9, 2026
9fd5c22
fix(web): retain relay install cancellation before subscription
maria-rcks Nov 9, 2026
8af1404
fix(web): disable pulls when the branch has diverged
maria-rcks Nov 9, 2026
c96c41b
fix(web): keep markdown source as the default file view
maria-rcks Nov 9, 2026
082f100
fix(web): restore adding review conversations to chat
maria-rcks Nov 9, 2026
c838d9c
fix(web): restore oldest-first pull request activity
maria-rcks Nov 9, 2026
081ec48
refactor(web): share diff header line counts
maria-rcks Nov 9, 2026
c78b846
feat(web): an open wake-ups fold hangs its rows off a rail
maria-rcks Nov 9, 2026
6ab8c5d
fix(server): keep claude context categories during turns
maria-rcks Nov 9, 2026
fb4c167
feat(web): add T3 Code Classic theme
maria-rcks Nov 9, 2026
ad9b9c0
feat(web): subagent rows are one quiet line with the provider's logo
maria-rcks Nov 9, 2026
e5c617f
feat(web): subagents sit in the turn as bare rows, without a group card
maria-rcks Nov 9, 2026
0dc0be6
fix(web): classic theme separates the chrome from the pane and fills …
maria-rcks Nov 9, 2026
7077bc4
refactor(web): the subagent elapsed helper is private to its row
maria-rcks Nov 9, 2026
e208259
perf(web): build palette thread items only when needed
maria-rcks Nov 10, 2026
f91ba2b
fix(web): flat surfaces use solid fills without depth
maria-rcks Nov 9, 2026
7aef65f
fix(web): the background setup chip sits at the right of the working row
maria-rcks Nov 10, 2026
77328f8
fix(web): flat keeps main's hairline on cards, menus and tables
maria-rcks Nov 10, 2026
3707e39
fix(web): remote lineage rows use the same two lines as local ones
maria-rcks Nov 10, 2026
069087c
fix(web): classic chrome matches the sidebar, and flat tables and sel…
maria-rcks Nov 10, 2026
f500dff
fix: remote lineage rows show the machine icon, model and effort like…
maria-rcks Nov 10, 2026
8e0b302
fix(web): subagent rows keep the tool rows' height and spacing
maria-rcks Nov 10, 2026
7c83147
fix(web): remote lineage rows carry the machine on the logo and show …
maria-rcks Nov 10, 2026
74a180e
fix(web): surface recipes reach floating and checked controls
maria-rcks Nov 10, 2026
039de55
fix(web): soft gradient fields and tints share borderless recipes
maria-rcks Nov 10, 2026
1d13f2e
fix(web): aqua gloss reaches tinted controls and thumbs
maria-rcks Nov 10, 2026
92edb57
fix(web): aqua blue keeps white labels readable across controls
maria-rcks Nov 10, 2026
00b83c8
fix(web): gradient rims paint once on cards and checked controls
maria-rcks Nov 10, 2026
7016ef0
fix(web): toast dismiss buttons follow the surface recipe
maria-rcks Nov 10, 2026
7812670
fix(web): light style warning labels meet contrast requirements
maria-rcks Nov 10, 2026
39e67c1
fix(web): destructive keycaps keep readable labels in every style
maria-rcks Nov 10, 2026
7232470
fix(web): named light palettes retain action label contrast
maria-rcks Nov 10, 2026
a8a0db9
fix(web): preserve default checked control paint
maria-rcks Nov 10, 2026
fb68a1a
fix(web): tool calls opened inside a wake-ups fold sit on its rail too
maria-rcks Nov 10, 2026
8c7b513
fix(web): classic keeps the chosen style's rims and gradients
maria-rcks Nov 10, 2026
06f4c11
fix(web): pane headers mask scrolling chat content
maria-rcks Nov 10, 2026
4b278cc
fix(web): palette action labels keep their width
maria-rcks Nov 10, 2026
cc31c41
fix(web): sidebar hover controls keep a stable slot
maria-rcks Nov 10, 2026
3ecd089
fix(web): settings section headings use foreground text
maria-rcks Nov 10, 2026
558d2d5
fix(web): browser link target shows its full value
maria-rcks Nov 10, 2026
7de2c74
fix(web): archive uses the shared centered empty state
maria-rcks Nov 10, 2026
564279a
fix(web): unchecked choices keep a visible resting edge
maria-rcks Nov 10, 2026
415797c
fix(web): sidebar toggle inherits its header control color
maria-rcks Nov 10, 2026
bdc1543
fix(web): split composers share the compact label cutoff
maria-rcks Nov 10, 2026
76c380d
fix(web): the PR list's "more" line lines up with the PRs above it (#…
flamboh Nov 10, 2026
706fb00
fix(web): column resize no longer shows snap ticks it never snaps to …
flamboh Nov 10, 2026
8dca0f4
fix(web): the workspace pill names and places the workspace you land on
flamboh Nov 10, 2026
4aed1f3
fix(web): a pane's + menu opens new tabs in that pane (#31425)
flamboh Nov 10, 2026
55e6b69
fix(web): the sidebar stays in front while the overview zooms
flamboh Nov 10, 2026
d8667f9
fix(web): closing a tab beside another no longer grays the gap betwee…
flamboh Nov 10, 2026
68ef056
fix(web): a streaming chat at the end stays at the end in the frame i…
flamboh Nov 10, 2026
fc48dee
fix(web): show keyboard focus on composer pill actions (#31547)
flamboh Nov 10, 2026
64ee01f
fix(web): one click works anywhere in a pane that isn't focused (#31397)
flamboh Nov 10, 2026
e88764c
fix(web): holding the workspace key glides through workspaces without…
flamboh Nov 10, 2026
675c3b3
fix(web): the overview fades out the sidebar toggle and ignores Cmd+B
flamboh Nov 10, 2026
8181e28
fix(web): switching tabs keeps a chat's scroll position (#31433)
flamboh Nov 10, 2026
f36ae66
fix(web): queued messages leave pending approvals untouched (#31535)
flamboh Nov 10, 2026
de6c10b
fix(web): the top-left tab no longer jumps when the overview zooms in
flamboh Nov 10, 2026
c2c8044
fix(web): steered turns keep the cut-off attempt and one timer (#31516)
flamboh Nov 10, 2026
e61e0aa
fix(web): keep settings navigation and dismissal consistent (#31573)
flamboh Nov 10, 2026
782f13f
fix(web): shrinking a column while scrolled right no longer runs away…
flamboh Nov 10, 2026
7b28aac
fix(web): panes moving aside for a new left column slide under it (#3…
flamboh Nov 10, 2026
7a698a8
fix(web): the Tasks tray no longer flashes the last turn's plan on se…
flamboh Nov 10, 2026
bfad537
fix(web): moving a tab above the top workspace opens a new workspace
flamboh Nov 10, 2026
ccb405a
fix(web): keep composer steady when holding a modifier (#31524)
flamboh Nov 10, 2026
7dee944
fix(web): position opened threads and sent messages before paint (#31…
flamboh Nov 10, 2026
456453c
fix(web): keep mention results visible during searches (#31529)
flamboh Nov 10, 2026
474fad4
fix(web): pane chrome behaves the same however you open it (#31462)
flamboh Nov 10, 2026
cb32e32
fix(web): the workspace pill lands with its pane and shows after the …
flamboh Nov 10, 2026
7e65340
fix(web): apply sidebar design tokens consistently (#31563)
flamboh Nov 10, 2026
a8501ff
fix(web): pane slides no longer crash below 100% zoom
flamboh Nov 10, 2026
6fa1d28
fix(web): dropped panes land where you drop them (#31469)
flamboh Nov 10, 2026
7ae125d
fix(web): sidebar rows no longer slide through each other (#31569)
flamboh Nov 10, 2026
e008b37
fix(web): image removal says Remove, one Escape closes file preview (…
flamboh Nov 10, 2026
2af9ca8
fix(web): a closed wake-ups fold keeps a turn gap above the next prompt
maria-rcks Nov 10, 2026
dce9773
feat(web): mod+l toggles the thread's linked pull requests
maria-rcks Nov 10, 2026
8fb8515
fix(web): leaving a terminal for an empty workspace no longer jumps b…
flamboh Nov 10, 2026
5710d22
fix(web): a background open no longer closes your empty workspace
flamboh Nov 10, 2026
07fa7df
fix(web): keep stacked toasts inside their surfaces (#31576)
flamboh Nov 10, 2026
d640721
fix(web): make composer popups readable and consistently spaced (#31552)
flamboh Nov 10, 2026
2f2400b
fix(web): the command palette scrolls instead of the overview behind it
flamboh Nov 10, 2026
4bf8187
fix(web): sending a workspace's only pane away no longer flashes the …
flamboh Nov 10, 2026
ca8226d
fix(web): add consistent settings controls and utility tooltips (#31581)
flamboh Nov 10, 2026
33fedc8
feat(web): switch house colors from one theme card
maria-rcks Nov 10, 2026
80d7c5c
fix(web): chats scrolled off screen no longer mark finished work as read
flamboh Nov 10, 2026
2c180b2
fix(web): use consistent timeline fold disclosures (#31558)
flamboh Nov 10, 2026
c135122
fix(web): only the focused pane's thread reads as current in the side…
flamboh Nov 10, 2026
51be16c
fix(web): sidebar keeps the open thread in view when a new thread sen…
flamboh Nov 10, 2026
813abfe
fix(web): the overview shows readable panes live with the sidebar open
flamboh Nov 10, 2026
5daac8f
fix(web): keep the open branch chip highlighted and readable (#31550)
flamboh Nov 10, 2026
f8addcc
fix(web): make settings rows and dialogs consistent (#31583)
flamboh Nov 10, 2026
d3a1c09
fix(web): stop restored focus reopening tooltips and keep nested dial…
flamboh Nov 10, 2026
ff9bf72
fix(web): align Voice setting fields with standard row controls (#31588)
flamboh Nov 10, 2026
dbe8a35
fix(web): preserve settings breadcrumb labels and align layout action…
flamboh Nov 10, 2026
1632636
fix(web): clarify file approvals and superseded attempt rows (#31624)
flamboh Nov 10, 2026
2678441
fix(web): right-clicking an inactive pane tab opens that tab's own me…
flamboh Nov 10, 2026
4106ca8
fix(web): keep Working visible while a sent turn starts (#31625)
flamboh Nov 10, 2026
1662c17
fix(web): keep settings breadcrumb aligned with loaded content (#31600)
flamboh Nov 10, 2026
804be72
perf(web): the sidebar slides instead of resizing the panes every fra…
flamboh Nov 10, 2026
25878cb
fix(web): side-by-side drops land beside the pane you drop on (#31836)
flamboh Nov 10, 2026
fb61a0f
fix(web): classic theme's pane header strip matches the lifted pane
maria-rcks Nov 10, 2026
a762eaf
fix(web): a stack cannot be merged through a pull request that confli…
maria-rcks Nov 10, 2026
b52fac9
fix(web): let surface styles paint the composer pill
maria-rcks Nov 10, 2026
0252f2c
fix(web): carry control surfaces into cards and overlays
maria-rcks Nov 10, 2026
079ac23
fix(web): keep soft gradient surfaces smooth and edge free
maria-rcks Nov 10, 2026
f405d1c
fix(web): retain aqua gloss across controls and larger surfaces
maria-rcks Nov 10, 2026
9feadbb
fix(web): keep aqua blue jelly visible with readable labels
maria-rcks Nov 10, 2026
04c98e1
fix(web): carry fading rims onto every raised surface
maria-rcks Nov 10, 2026
6e5175a
fix(web): align flat control fills with the style card
maria-rcks Nov 10, 2026
e68ae0f
fix(web): preserve surface styles through theme overrides and pane tabs
maria-rcks Nov 10, 2026
9f3fcdd
fix(web): keep styled action labels at aa contrast
maria-rcks Nov 10, 2026
67b4407
fix(web): keep styled labels readable in named palettes
maria-rcks Nov 10, 2026
cb654a6
fix(web): swap sidebar status and hover actions together (#31596)
flamboh Nov 10, 2026
57c0415
fix(web): suppress sidebar hover cards while scrolling (#31603)
flamboh Nov 10, 2026
74715d9
fix(web): pull request header stays on one line in narrow panels (#33…
flamboh Nov 10, 2026
b8b9695
fix(web): the layout introduction and tour work from the keyboard
flamboh Nov 10, 2026
0a35141
fix(web): provider updates no longer pop toasts on launch in the rede…
flamboh Nov 10, 2026
37f9ca8
fix(server): simplify the Connect completion page (#32168)
flamboh Nov 10, 2026
c18fff3
fix(web): match MCP setup to the redesign (#32166)
flamboh Nov 10, 2026
3bbc4c0
test(web): sidebar terminal-focus test no longer races environment st…
flamboh Nov 10, 2026
b2bd7fd
refactor(server): archive message counts come from the projection sto…
flamboh Nov 10, 2026
3761029
fix(web): aqua styles leave tabs, the sidebar search and the composer…
maria-rcks Nov 10, 2026
bdea36b
fix(web): keep rapid thread jumps ahead of chat rendering
maria-rcks Nov 9, 2026
d90753d
fix(web): keep the first typed key after a promoted draft switch
maria-rcks Nov 10, 2026
e9e11af
fix(client-runtime): preserve idle history identity on warm returns
maria-rcks Nov 10, 2026
ee8ba85
fix(web): render isolated thread switches without deferral
maria-rcks Nov 10, 2026
97c5e0d
fix(web): isolate timelines during deferred thread switches
maria-rcks Nov 10, 2026
8310164
revert(web): nightly chrome keeps its sunrise artwork
maria-rcks Nov 10, 2026
a7dc849
fix(web): chat content scrolls under the pane header again
maria-rcks Nov 10, 2026
75ff18a
fix(web): restore the settle word on sidebar rows
maria-rcks Nov 10, 2026
f22a469
fix(web): balance lineage row spacing and icon alignment
maria-rcks Nov 10, 2026
0ab39e2
revert(web): lineage rows keep their height and gaps
maria-rcks Nov 10, 2026
89c6efd
fix(web): round and join composer banner surfaces
maria-rcks Nov 10, 2026
4edd4df
fix(web): work row icons match the row text and subagent rows keep th…
maria-rcks Nov 10, 2026
2b3cd66
fix(web): give sidebar header buttons their selected surface style
maria-rcks Nov 10, 2026
d795d5f
fix(web): keep aqua containers quieter than their controls
maria-rcks Nov 10, 2026
9a32a02
fix(web): keep aqua context surfaces calm and readable
maria-rcks Nov 10, 2026
d250e24
fix(web): make flat segmented selections visible
maria-rcks Nov 10, 2026
960bf45
fix(web): give lineage lists space at their outer edges
maria-rcks Nov 10, 2026
66aedcc
fix(web): simplify side chat headers
maria-rcks Nov 10, 2026
2641b2f
feat(web): nightly's dark chrome paints the orbital sunrise in color
maria-rcks Nov 10, 2026
795a3a7
fix(web): nightly's sunrise sits in the app's chrome with the horizon…
maria-rcks Nov 10, 2026
735c879
fix(web): retain main integrations in the workspace panes
maria-rcks Nov 11, 2026
4a0a528
fix(web): keep phone headers and drawers on app chrome
maria-rcks Nov 11, 2026
77ec991
fix(web): keep phone composer text clear of controls
maria-rcks Nov 11, 2026
2f5c836
fix(web): give subagent titles more room on phones
maria-rcks Nov 11, 2026
ba791ed
fix(web): show more queued message text on phones
maria-rcks Nov 11, 2026
815a28e
fix(web): keep pull request titles readable on phones
maria-rcks Nov 11, 2026
1ab8aed
fix(web): wrap project dialog keyboard hints on phones
maria-rcks Nov 11, 2026
0a32407
fix(web): keep pull request controls clear in narrow panels
maria-rcks Nov 11, 2026
877ccda
fix(web): keep phone settings labels and controls readable
maria-rcks Nov 11, 2026
b02ba84
fix(web): keep thread details menus inside phone screens
maria-rcks Nov 11, 2026
b5c9766
fix(web): keep phone surface tabs and close controls visible
maria-rcks Nov 11, 2026
78b5f83
fix(mobile): use darker chrome around native content sheets
maria-rcks Nov 11, 2026
0c71109
fix(web): keep tab flicks from navigating workspace history
maria-rcks Nov 11, 2026
2c7c7a4
test(web): give the turn announcement fixture an attempt start time
maria-rcks Nov 11, 2026
43a5b3b
feat(web): resize workspace panes from either edge
screen-gd Nov 11, 2026
fbed7aa
test(web): trim duplicate pane interaction assertions
screen-gd Nov 11, 2026
104bd54
fix(web): retain pane expansion when switching threads
screen-gd Nov 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ Architecture and its constraints: `docs/internals/overview.md`. Glossary: `docs/
projection, tight loops) or duplicate an existing tracing boundary; explain that choice nearby.
Named `Effect.fn` creates a span; the unnamed form does not. Preserve existing span names and
options, and pass combinators as additional function-builder arguments.
- Before building UI, open `/design-system` in a dev build: it renders every primitive, variant and type role. Text takes a role (`<Text variant>` or `text-title` … `text-micro`), not `text-sm` or `font-medium`; a clickable thing is a `components/ui` control, not a styled `<button>` or `<a>`. `t3code/no-raw-type-classes` and `t3code/no-styled-raw-controls` fail lint, and their per-file ceilings in `vite.config.ts` only go down.
- Inferred types over annotations. `any` is the enemy.
- Default to no comment. Write one only for a constraint, an external quirk, or an invariant the code can't show, in one line where you can and four at most. Don't restate names or signatures, narrate steps, record history, or explain the fix you just made; the PR carries that. `t3code/no-low-value-comments` enforces the length cap and the mechanical cases.
- React effects are for synchronizing with something outside React. Derive in render and act in handlers instead of syncing state, but don't hide real lifecycle work in refs or stores to dodge one. The `t3code/no-unreasoned-state-sync` lint rule reports every effect; one that stays states its reason with `// oxlint-disable-next-line t3code/no-unreasoned-state-sync -- <why>`.
Expand Down
30 changes: 7 additions & 23 deletions apps/desktop/resources/dmg/dmg-background-latest.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 10 additions & 30 deletions apps/desktop/resources/dmg/dmg-background-nightly.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions apps/desktop/src/app/DesktopLifecycle.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ function layerElectronApp(

const layerElectronTheme = Layer.succeed(ElectronTheme.ElectronTheme, {
shouldUseDarkColors: Effect.succeed(false),
shouldUseDarkChrome: Effect.succeed(false),
setSource: () => Effect.void,
setBlackChrome: () => Effect.void,
onUpdated: () => Effect.void,
});

Expand Down
5 changes: 5 additions & 0 deletions apps/desktop/src/electron/ElectronMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ function normalizeContextMenuItems(source: readonly ContextMenuItem[]): ContextM
disabled: sourceItem.disabled === true,
...(sourceItem.separatorBefore === true ? { separatorBefore: true } : {}),
...(typeof sourceItem.checked === "boolean" ? { checked: sourceItem.checked } : {}),
...(typeof sourceItem.accelerator === "string"
? { accelerator: sourceItem.accelerator }
: {}),
};

if (sourceItem.children) {
Expand Down Expand Up @@ -170,6 +173,8 @@ export const make = Effect.gen(function* () {
label: item.label,
enabled: !item.disabled,
...(typeof item.checked === "boolean" ? { type: "checkbox", checked: item.checked } : {}),
// Shown beside the label for learning; the app's own handler runs the key.
...(item.accelerator ? { accelerator: item.accelerator, registerAccelerator: false } : {}),
};
if (item.children && item.children.length > 0) {
itemOption.submenu = buildTemplate(item.children, complete);
Expand Down
21 changes: 21 additions & 0 deletions apps/desktop/src/electron/ElectronTheme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,14 @@ export class ElectronTheme extends Context.Service<
ElectronTheme,
{
readonly shouldUseDarkColors: Effect.Effect<boolean>;
/**
* Whether the window chrome (native background, caption button symbols)
* is dark: the dark appearance, or the renderer's light, black chrome.
*/
readonly shouldUseDarkChrome: Effect.Effect<boolean>;
readonly setSource: (theme: DesktopTheme) => Effect.Effect<void, ElectronThemeSetSourceError>;
/** The renderer's light, black chrome appearance; notifies onUpdated listeners. */
readonly setBlackChrome: (enabled: boolean) => Effect.Effect<void>;
readonly onUpdated: (listener: () => void) => Effect.Effect<void, never, Scope.Scope>;
}
>()("@t3tools/desktop/electron/ElectronTheme") {}
Expand All @@ -38,6 +45,10 @@ type WatchSystemColorScheme = (onChange: (scheme: LinuxColorScheme) => void) =>
export const makeWith = Effect.fn("ElectronTheme.make")(function* (
watchSystemColorScheme: WatchSystemColorScheme | undefined,
) {
// Black chrome is renderer state, not a native theme source, so the service
// keeps it and fans changes out to the same listeners as native updates.
let blackChrome = false;
const blackChromeListeners = new Set<() => void>();
let source: DesktopTheme = Electron.nativeTheme.themeSource;
let systemScheme: LinuxColorScheme = null;
// On Linux, Electron reads the desktop color scheme once and then ignores the settings
Expand All @@ -64,6 +75,7 @@ export const makeWith = Effect.fn("ElectronTheme.make")(function* (

return ElectronTheme.of({
shouldUseDarkColors: Effect.sync(() => Electron.nativeTheme.shouldUseDarkColors),
shouldUseDarkChrome: Effect.sync(() => Electron.nativeTheme.shouldUseDarkColors || blackChrome),
setSource: Effect.fn("ElectronTheme.setSource")(function (theme) {
return Effect.try({
try: () => {
Expand All @@ -73,15 +85,24 @@ export const makeWith = Effect.fn("ElectronTheme.make")(function* (
catch: (cause) => new ElectronThemeSetSourceError({ source: theme, cause }),
});
}),
setBlackChrome: Effect.fn("ElectronTheme.setBlackChrome")(function (enabled) {
return Effect.sync(() => {
if (blackChrome === enabled) return;
blackChrome = enabled;
for (const listener of blackChromeListeners) listener();
});
}),
onUpdated: Effect.fn("ElectronTheme.onUpdated")(function (listener) {
return Effect.acquireRelease(
Effect.suspend(() => {
Electron.nativeTheme.on("updated", listener);
blackChromeListeners.add(listener);
return Effect.void;
}),
() =>
Effect.suspend(() => {
Electron.nativeTheme.removeListener("updated", listener);
blackChromeListeners.delete(listener);
return Effect.void;
}),
);
Expand Down
4 changes: 4 additions & 0 deletions apps/desktop/src/ipc/DesktopIpcHandlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@ import {
pickFolder,
pickProjectFavicon,
pickThemeFiles,
setBlackChrome,
setTheme,
syncHtmlFullscreen,
setWindowButtonsVisible,
showContextMenu,
} from "./methods/window.ts";
import {
Expand Down Expand Up @@ -146,6 +148,7 @@ export const installDesktopIpcHandlers = Effect.fn("desktop.ipc.installHandlers"
yield* ipc.handle(pickProjectFavicon);
yield* ipc.handle(pickThemeFiles);
yield* ipc.handle(setTheme);
yield* ipc.handle(setBlackChrome);
yield* ipc.handle(showContextMenu);
yield* ipc.handle(openExternal);
yield* ipc.handle(readMedia);
Expand All @@ -156,6 +159,7 @@ export const installDesktopIpcHandlers = Effect.fn("desktop.ipc.installHandlers"
yield* ipc.handle(pasteAsText);
yield* ipc.handle(revealWindow);
yield* ipc.handle(syncHtmlFullscreen);
yield* ipc.handle(setWindowButtonsVisible);
yield* ipc.handle(probeRemoteEditors);
yield* ipc.handle(getUpdateState);
yield* ipc.handle(setUpdateChannel);
Expand Down
Loading
Loading