Commit Graph
248 Commits
Author SHA1 Message Date
ZacharyZhang-NY f90182c638 T48c Docs · Installation passes review 2026-10-01 12:26:00 -04:00
ZacharyZhang-NY f326b6dab6 T48b Docs · Introduction passes review 2026-10-01 12:15:07 -04:00
ZacharyZhang-NY 484bec30e1 T48a Docs · Frame passes review; an id-less heading fails the build, protocol-relative links stay native 2026-10-01 12:08:02 -04:00
ZacharyZhang-NY a52241667f T48a Docs · Frame: a Docs tab, /docs/ and /docs/$page/, Markdown guides with a rail, an on-this-page list, previous and next and code blocks; full Rust samples are compiled examples shown as text 2026-10-01 11:40:50 -04:00
ZacharyZhang-NY 48f344091d T46a Site · Owner's notes pass review; the hero title fits its column 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 8441ee60cd T46a Site · Owner's notes: short story names, aligned icons, a whole city title, tighter story tops, hidden scroll bars, a tablet step at 1024 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 908834465d T46 E2E passes review; T45 closes 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 37ea96721a T45e Site · Local passes review 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 557c8dd2cd T45d Site · Components passes review; Slash leaves a hidden field alone; the review log moves to tasks/reviews.md 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 24687a09fb T45c Site · Home: full screen stops the glide at once, a starting gallery leaves the host's focus alone, a focused frame stays mounted 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY f9c20b251c T45b Site · Iso passes review 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY 8a5ce82119 T45a Site · Stack passes review 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY f67e5c0839 T45a Site · Stack: Vite 8, React 19 and TanStack Router under pnpm; routes, theme, fonts, the manifest 2026-10-01 08:38:05 -04:00
ZacharyZhang-NY ab3f6eb98f T44d Web · Stories passes review 2026-09-29 23:39:50 -04:00
ZacharyZhang-NY 822a58810a T44c Port · Parity passes review 2026-09-29 19:14:18 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d7272e88bd Port · Parity: every page matches gpui 0.2.2's; the rules re-tested
Every page and scripted state was shot with gpui 0.2.2 and with the
port, light and dark, full width and at 280px, judged pair by pair by
agents with skeptics, and every page's log diffed. What differed is
fixed, each with a test that fails without it where the test platform
can show it:

- The gallery's harness takes posted mouse moves (gpui_macos listens
  to a tracking area), posts each drag move twice (it no longer
  replays a held drag), and waits three frames before each shot.
- Rolling digits: a block column, so taffy 0.13 lends the cell no
  baseline, and a line of whole device pixels, since gpui snaps each
  length on its own. DescriptionList's row aligns ends.
- Margins that taffy 0.13 collapses through a plain block: the
  drawer's pull and snap, the stagger and transition rise, the dialog
  and palette rises, the fullscreen dialog's slide.
- An Input keeps room to type in a squeezed row; the field rows drop
  w_full, whose reason was taffy 0.9's.

AGENTS.md's rules that named gpui 0.2.2 or taffy 0.9 were re-tested
against both sources and rewritten, and new ones say what the port
changed. TASKS.md's tags follow: what the new gpui makes possible is
prove. Captions, doc comments and README say what holds now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 10:39:55 -04:00
ZacharyZhang-NYandClaude Opus 5.5 41368430f5 Tasks: the site deploys to Cloudflare through wrangler
The Dokploy line was a misreading; the plan stays as it was.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:28:32 -04:00
ZacharyZhang-NYandClaude Opus 5.5 dc465d7244 T44b Port · Build passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 21:24:24 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f76c3c1280 Port · Calendar: a real exit clears the preview after a key
The calendar's grid clears its preview on leave, and ignores a leave
that follows a key. gpui records the exit a key makes before the
handler runs, so the guard swallowed it and a real exit afterwards
had no change left to report: the stale day stayed the preview. The
grid now listens independently of input, while its days keep the
default, so a key is no leave and a real exit is. A test leaves the
grid after an arrow, a letter and a month key.

shaped()'s doc goes back to its one line; AGENTS.md keeps the why.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:54:25 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e49c93bb6f Tasks: live components on the site; Zed's gpui; Dokploy
The site shows every component running, as gpui-kit.com does, never
a screenshot. gpui 0.2.2 cannot build for the browser, so T44b moves
gpui to Zed's repo at 1a28cff, T44c re-checks every page and rule on
it, and T44d builds the gallery for wasm32 as one story per
component. The screenshot items give way, and the site deploys to
Dokploy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:13:44 -04:00
ZacharyZhang-NYandClaude Opus 5.5 9ef59b01e4 T44a Capture · Roots passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:13:05 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e482bac865 Capture · Roots: the roots round 2 missed
A sweep that read every render found 28 roots still on w_full,
reached by 64 components: the field button under Select and every
picker, the checked and mention fields, the slider track,
NumberInput, Steps, the state views, the agent previews, and every
chart and finance frame. All drop it. LivePreview's size_full becomes
h_full, since its card no longer fills.

Every host of those roots was listed and read, 231 in all. Five
tests that mounted a picker as the window root sit in a size_full
box, the index manager gives its method select a flex_1 box, and the
notification center and the gallery's state frames stack their state
views in a column so they stretch.

Each dropped root carries a debug selector, and six chapter tests
mount 43 components in a padded card whose column is measured by
content, through layout::tests::narrow_width: each root must take the
full 240px. With w_full back on the roots, all six fail.

AGENTS.md names the roots that keep w_full and why: picture frames
that keep a ratio, and rows that hand a text field its share.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 19:34:01 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ca5c967f17 Capture · Roots: the twelve roots round 1 found
Eleven more roots drop w_full: the docked ActionBar, MessageBubble's
three arms, PromptInput, TitleBar, Tabs, the horizontal Divider with
and without a label, DropZone and Playlist. Their hosts in the crate
are blocks or flex columns. The gallery's docked ActionBar sits in an
items_center column, so the demo gives it the width.

AspectRatio keeps w_full, and AGENTS.md says why: taffy 0.9 follows a
ratio from a set width, not from a stretch, and without one the image
gallery's tiles and the ratio demo collapsed.

Every page and scripted state was shot again at full width and at
280px and compared with the shots from before T44a. Nothing collapsed
or shrank. The mail reader's attachments now wrap side by side, as
their row asks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 16:30:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5779daef82 Capture · Roots: roots drop w_full; hosts give the width
145 component roots drop w_full, the early returns included. Three
field rows keep it, Input, InputGroup and TagInput: stretched without
a width, taffy 0.9 laid the field's flex_1 share at no width in the
template picker at 280px, and the placeholder drew nothing. Container
keeps it, since mx_auto needs a width to fill.

Hosts that relied on a root's width now give it: MessageList boxes
each row at the list's width, the splash gives its bar the column's,
and test stages that mount a component as the window's root sit in a
size_full box. Tests hold a narrow row across the list and the splash
bar across its column; each goes red without its fix.

The gallery gains --narrow <px>, which lays each page in a padded
card at that width and shoots it without its script. The page
header wraps: the title takes the room and the theme switcher drops
below, where a long summary used to push it past the edge. A file
panel step waits for the panel to become key instead of a fixed
pause, which lost a race in a capture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 13:07:22 -04:00
ZacharyZhang-NYandClaude Opus 5.5 486f618ecc Tasks: split T44 into three
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 09:12:25 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d0fbfd1a4e T43c Tooling · Catalogs passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 09:10:55 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e5910068e5 T43b Tooling · Inspection passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 08:05:26 -04:00
ZacharyZhang-NYandClaude Opus 5.5 a0d93eb35f T43a Tooling · Workbench passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 06:46:24 -04:00
ZacharyZhang-NYandClaude Opus 5.5 989eaf29b8 Tasks: split T43 into three
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 06:03:22 -04:00
ZacharyZhang-NYandClaude Opus 5.5 264b552fd4 T42g Misc · Export and import passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 06:03:05 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b7c8629ea7 T42f Misc · Web passes review
in_view names its types in place and the non-macOS branch reads its fields, so builds off macOS stay free of warnings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 05:07:35 -04:00
ZacharyZhang-NYandClaude Opus 5.5 45e128e069 T42e Misc · Terms and notices passes review
A test walks Shift-Tab round the cookie banner past the resting Necessary switch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 04:25:31 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4d21b15219 T42d Misc · Asking and learning passes review
The poll's mark and its row's selector share one binding.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 03:24:15 -04:00
ZacharyZhang-NYandClaude Opus 5.5 19a5295ed8 T42c Misc · Codes and checks passes review
Tests now hold focus in the field after an answer and a passed captcha with no Tab stop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 02:22:34 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8648f5eed1 Tasks: the website's home page, components page and Cloudflare deploy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 01:40:15 -04:00
ZacharyZhang-NYandClaude Opus 5.5 854f44ed6c T42b Misc · Numbers passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 01:14:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 87b0effafb T42a Misc · Time passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 00:30:00 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7cce4ab3fc Tasks: split T42 into seven
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:44:24 -04:00
ZacharyZhang-NYandClaude Opus 5.5 52a98bf676 T41c Maps · World passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:42:16 -04:00
ZacharyZhang-NYandClaude Opus 5.5 811a187a3e T41b Maps · Layers passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 23:01:43 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f5909f6e43 T41a Maps · View passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 22:20:08 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8da3edbeda Tasks: split T41 into view, layers and world
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 20:57:30 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7e32d2c294 T40b a11y passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 20:52:32 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ff8f4ba84f T40a i18n passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 19:40:34 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8c3ff2c584 Tasks: split T40 into i18n and a11y
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:26:52 -04:00
ZacharyZhang-NYandClaude Opus 5.5 215b1d49ae T39c Theme · Platform passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:25:40 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ba865710a7 Theme · Platform: a title bar in three parts, buttons at the window's rem
A title bar lays out a start, a title and an end. In the centered styles
the start and end grow alike from nothing, their padding inside them, so
a short title sits at the bar's center and a long one gives way before
whatever stands at either end; on Windows the title, or a spacer when
there is none, takes the free width before the buttons. Caption buttons
take the bar's height at the window's own rem. Tests keep an untitled
Windows bar's buttons at its end, a long Linux title before the round
buttons, a short title centered, and the buttons inside a bar at rem 8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:20:20 -04:00
ZacharyZhang-NYandClaude Opus 5.5 815aed304d Theme · Platform: caption buttons of their own height, titles that give way
Windows caption buttons take the bar's height less its hairline, a new
token, instead of their row's, so they keep their height beside caps
that wrap below them. A title bar's title is an Ellipsis: on Windows it
takes the free width before the buttons and gives way; a centered title
sits inset past the lights on both sides. The controls never shrink.
Tests hold a long Windows title's close button inside a 280px bar and
wrapped caps inside their row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:04:05 -04:00
ZacharyZhang-NYandClaude Opus 5.5 53578e0525 T39b Theme · Importing passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:34:16 -04:00
ZacharyZhang-NYandClaude Opus 5.5 106faca970 Theme · Importing: a long name gives way, four-digit colors read
A read theme's name is an Ellipsis that gives way beside its mode badge,
so a long name keeps the badge inside a 280px box. parse_hex reads #rgba
as VS Code does, each digit doubled, so a theme with a four-digit color
reads. Tests hold the badge inside the box and read #0008 as black at
0x88 alpha.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:32:21 -04:00