Commit Graph
217 Commits
Author SHA1 Message Date
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
ZacharyZhang-NYandClaude Opus 5.5 38ee858b27 T39a Theme · Editing passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:02:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d49e02ceee Theme · Editing: segments sized by their labels, a thumb that covers its segment
A segmented control's segments now take their labels' widths first and
share the spare room, so a label ends in an ellipsis only when the whole
strip lacks room. The thumb's insets meet the strip's padding again, and
each segment is measured from its borderless wrapper, so the thumb covers
the chosen segment exactly. Tests hold Comfortable whole at 280px and the
thumb to the chosen segment's bounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:58:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 1860764d95 Theme · Editing: segments that give way, every color named
SegmentedControl's segments now give way when narrow, their labels
ending in an ellipsis, down to twice a control's height each; past
that the strip scrolls as before. The pill's border and padding moved
onto the scrolling strip, and the row inside it takes that floor as its
least width, so the strip scrolls exactly to its last segment. The
palette macro now writes each color's name from its field: Palette and
Syntax gain NAMES and token_mut for every color, the quiet fills too.
Tests press a density segment and each slider, and fit the density
strip in 280px with the text a step and a half larger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:48:07 -04:00
ZacharyZhang-NYandClaude Opus 5.5 3d2bc0f4d6 Theme · Editing: a theme laid open, and an owner's palette per mode
settings::ThemeEditor lays a theme open: density, corners, text size,
high contrast and reduced motion, then twelve colors of the mode shown,
each a swatch that opens a picker beside its hex; each change hands the
owner a whole draft. Theme::set_palette takes an owner's palette per
mode, the colors fading to it when the mode shows; Theme::palette names
the palette the shown mode fades to; Palette::token_mut and
Syntax::token_mut reach a color by its field's name. The gallery's
theme page applies the editor to the whole gallery live, with a way
back to Ely's theme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:31:33 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5f2e6a5cda T38b passes review in round 1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:18:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ec4c15b539 T38a passes review in round 2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:01:08 -04:00
ZacharyZhang-NYandClaude Opus 5.5 c3e8b114ce Interaction · Pointer: handles inside the box, drags from the press
Resizable's grip sits inside the box's lower right corner and its edge
handles lie inside the edges, their lines on the edge; the edges use
layout::resize_edge, a resize_handle whose line shows only while
hovered, since the box draws its own border. A drag now measures from
the handle's press, kept in keyed state, so the edge follows the
pointer from the first move. Tests drag the right edge downward and
the bottom edge sideways, turn the dial without Shift, and draw a band
with Shift over a selection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:58:19 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f513df6aaa Interaction · Pointer: resize, turn, band selection, and gpui's own drag
Resizable sizes a box from its right and bottom edges and a grip at
its corner, within its least and greatest size; the grip is a Tab stop
whose arrows resize a step. Rotatable turns an svg to its angle inside
a ring whose knob a drag moves, Shift snapping to 15 degrees, with the
arrows turning it a notch. SelectionArea selects items with a band
drawn on empty space, a press, Command or Shift to add, and a cursor
the arrows walk with Space to add or drop; Escape clears and
Command-A takes all. The gallery shows gpui's own drag and drop, drag
preview, double press and wheel zoom, with pointers for Sortable,
LongPress and PanZoom; pinch stays blocked, gpui 0.2.2 forwards no
magnify event.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:42:03 -04:00
ZacharyZhang-NYandClaude Opus 5.5 9bde90a492 T37b passes review in round 2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:32:18 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e26b2d1407 Onboarding · Help: articles in a list the keyboard walks, a long address cut
HelpPanel lists its articles in lists::SelectableList: the list is one
stop whose cursor scrolls into view, and Enter or a double press opens
an article, focus going to All articles as before. SelectableList now
activates on Enter's release, armed by its own press, as the palette
and menus pick: an activation that moves focus left the release to
press what took it, here the way back. ContactSupport cuts a long
address in the middle and puts a Copy beside it. The lists tests move
into a folder, the release tests on their own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:28:49 -04:00
ZacharyZhang-NYandClaude Opus 5.5 a066179699 T37a passes review in round 2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:56:30 -04:00
ZacharyZhang-NYandClaude Opus 5.5 973f10a6dc Onboarding · Flows and highlights: focus that holds as the flow turns, a tip that closes
navigation::Wizard keeps one focus handle for Next and Finish, so a
second press on the step before last finishes; Back that reaches the
first step, and a finished step picked by key, hand focus to Next.
Popover::with_opener hands its content a close that gives focus back:
Got it closes the hotspot's tip before the owner hides it, and the
event details close before Edit and Delete run, so focus never lands
on a panel that left the tree. The wizard's count and the setup
checklist's tally name their selectors after their words, and the bar
takes the count's own value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:48:20 -04:00
ZacharyZhang-NYandClaude Opus 5.5 996daed6e4 Onboarding · Flows and highlights: wizard, hotspot, highlight, setup checklist
OnboardingWizard runs a first run on navigation::Wizard without its
numbered steps: "Step 2 of 4" over a bar in as many parts, the step's
title, line and content, Back and Next once ready, Finish last, and
Skip for now. Hotspot pulses on a dot that opens a tip on a press or
Enter, with Got it. FeatureHighlight names something new under a New
badge, with Try it and Not now, and rises in. SetupChecklist counts
first things to do in words and a bar, offers Start on each left, eases
a check in as one gets done, and offers Hide once all are.

navigation::Wizard now keys its buttons, steps and motion by its own id
and takes on_step and on_finish at render, failing loud without them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:20:45 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ebf8955556 T36c passes review in round 2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:14:12 -04:00
ZacharyZhang-NYandClaude Opus 5.5 2027842769 Account · Billing and team: a meter's name gives way, a month past 12 says so
A Meter's name takes the free width and ends in an ellipsis while its
count stays whole, so a long quota name keeps "9 of 12 seats" inside a
280px box. `expiry` says why it refuses a date, and Expires reads
"There is no month 13." apart from "This date has passed.". Tests now
cover an American Express card's fifteen digits and four-digit code,
the address emptying once an invitation goes, a quota past its limit,
and a prompt with benefits standing as a paywall and one without as a
line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:05:34 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b3ce50ecab TASKS: T36b passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:41:13 -04:00
ZacharyZhang-NYandClaude Opus 5.5 91d939e21e Account · Profile and access: a key's ends stay whole, keys drawn literally
A key's name gives way before its ends, which keep their width. The
ends and a new secret draw through typography::literal. Tests show this
device listing first and the name field emptying after Create.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:38:40 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5f26c8ee1e TASKS: T36a passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:23:11 -04:00
ZacharyZhang-NYandClaude Opus 5.5 fa167cab38 Account · Sign in: tests for each rest and wait
New tests: Sign in waits for a password and rests while busy; Create
account waits for a name; while one provider is on its way the other
takes no press; Send again rests while a link is on its way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:20:37 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e36458e44e Account · Sign in: log in, sign up, providers, a link by email, a second factor
LoginForm takes an email and a password, keeps one signed in on a box,
and signs in on Enter once the address reads and a password is typed;
a failed try says why above Sign in. SignupForm ticks a new password's
rules as they hold and waits for all of them and the terms.
OAuthButtons offer each provider, one spinning while the rest rest.
MagicLinkForm and ForgotPassword send a link to an address and, once
sent, say where it went and offer it again. TwoFactorInput takes a
six-digit code at once and, after one fails, clears the boxes through
forms::PinInput's new attempt, keeping its focus. The Account chapter
splits into sign-in, profile and access, and billing and team.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:12:49 -04:00
ZacharyZhang-NYandClaude Opus 5.5 89a177d021 TASKS: T35 passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:06:34 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6e5a742148 Settings: an accent palette folds inside a narrow box
The accent picker's palette takes what the custom well leaves and folds
its swatches; a test puts twelve presets in a 280px box and asserts
they fold under each other inside it. The settings tests split their
appearance cases into a file of their own. AGENTS says editing takes
the owner's handler itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:03:55 -04:00
ZacharyZhang-NYandClaude Opus 5.5 9a8dbcb92e Settings: controls give way, notices fold, and every edit needs its owner
A settings row's control slot shrinks to the box, so a control's text
wraps and a palette's row folds; the font size's sample wraps in a plain
block. A notice's boxes carry their channel's name and fold under the
kind's name when narrow. canvas::panel::editing takes the owner's
handler itself: the design panels, the structure editor, the index
manager and the privacy, notice and startup settings take theirs at
render and fail loud without one. Apply fails loud if pressed while the
proxy does not read. Tests cover Apply resting on a bad port, the way
back resting at the default size and a box pressed off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:53:08 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4ab478c3c3 TASKS: T34 passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:10:59 -04:00
ZacharyZhang-NYandClaude Opus 5.5 206d89abde Dashboard: a focused tile's Left and Right, and a control's own arrows, tested
The arrows test also moves a focused tile right and back; a new test
focuses a button inside a card and shows its arrows leave the tiles.
A card given for a key with no tile fails loud, in both layouts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:08:44 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e59239a7bb TASKS: T33d passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 11:38:54 -04:00
ZacharyZhang-NYandClaude Opus 5.5 57a3265a57 DB & Dev Tools · Tools and machines: washes paint, strict hex, tested levels
Text fields paint each run's wash before selections and glyphs, so a
Highlight's background shows: the regex tester's matches, a mention's
link and markdown's code. A tile's value gives way and wraps in a narrow
box. Hex and percent escapes take two hex digits and no sign. Tests
cover each WCAG level at its edge, a clean exit's quiet badge, a
stopped container's line without load, and a reading past its limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 11:15:50 -04:00
ZacharyZhang-NYandClaude Opus 5.5 0cf33eea33 TASKS: T33c passes review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 10:53:02 -04:00
ZacharyZhang-NYandClaude Opus 5.5 a8bc4b169c DB & Dev Tools · APIs: a drop inside a folder lands last, tested
The collection's unit test now drops a request into a folder that holds
two, and asserts it lands after them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 10:51:19 -04:00
ZacharyZhang-NYandClaude Opus 5.5 2a87e6cd30 DB & Dev Tools · APIs: a log held at its newest, secrets per environment, moves
WebSocketConsole draws its log through chat::MessageList, so it holds
at the newest message. EnvironmentSelector opens a secret for its own
environment only. CollectionTree takes on_move and devtools::moved
applies a drop; the gallery opens a saved request into the builder and
moves them. Tests cover the builder's refill, Send at rest, Bearer
sign-in, the indented body, the eye, a field's pick path and the log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 10:44:21 -04:00
ZacharyZhang-NYandClaude Opus 5.5 54eb947b34 DB & Dev Tools · Data formats: every YAML escape, keys split outside quotes
Double-quoted text reads all of YAML's escapes, \x, \u and \U among
them; a code that is no character, or a lone backslash at the end,
fails with its line. A map entry splits at the first colon outside
quotes, so a quoted key or list item may hold ": ". TASKS records the
third round and closes the item.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 10:12:20 -04:00