Repository navigation
Conversation
…ng, presence Step 2 of documentation/plans/board-flagship.md: no UI, checked by examples/board/scripts/check-server.mjs (pnpm check:server). Co-Authored-By: Claude <noreply@anthropic.com>
…rd elements Step 3 of documentation/plans/board-flagship.md. The document renders the board; the client adopts those elements and holds the source open. Co-Authored-By: Claude <noreply@anthropic.com>
…r-list errors Step 4 of documentation/plans/board-flagship.md. Every write is an optimistic store write held with until() for its acknowledgement on the board's stream; a refused write undoes itself and reports in its list. Co-Authored-By: Claude <noreply@anthropic.com>
Step 5 of documentation/plans/board-flagship.md. One FLIP effect for a local move, a remote move and a refused write going back. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
A stopgap, in one commit so it can be reverted alone: a moved element loses focus today. Comes out when the runtime keeps focus on a move. Co-Authored-By: Claude <noreply@anthropic.com>
Step 6 of documentation/plans/board-flagship.md. Pointer events: a lifted row follows the pointer, the row it would land before makes room, and the drop is the same write a keyboard move makes. Checked with a mouse; touch and edge scrolling are not. Co-Authored-By: Claude <noreply@anthropic.com>
Step 7 of documentation/plans/board-flagship.md. Drag (step 6) is checked with a mouse, including a drop into a full list going back; touch and edge scrolling are not. Co-Authored-By: Claude <noreply@anthropic.com>
Step 8 of documentation/plans/board-flagship.md. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
|
Size (brotli, eager entry chunk)
|
Coverage Report for CI Build 38346430941Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage remained the same at 77.429%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will not alter performance
|
useContext needs no null check, so the two wrappers that added one go; the provider's value is created inline; a fixed class with a conditional one is the array form; <Show> hands its value to its child; an <Errored> boundary at the root. Co-Authored-By: Claude <noreply@anthropic.com>
A refusal becomes a 409 in one place, wrapInvocation in server-config.ts, so the nine server functions call the store directly. The list markup is inline in the board view, which removes a component and its render prop. The identity context is used directly, and the status hook is set where the source is called. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Requested by Ryan
Summary
Adds
examples/board, the first example for the client-owned, persistent corner of the examples grid: a shared board of lists and cards that several tabs drag at once. The grid plan had this corner empty apart fromroom's/livetest bed.The server sends data only. One
liveserver function yields the whole board on every change, and the browser reconciles it by id into an optimistic store. What the example sets out to show:until()for its acknowledgement in the live value itself: the row for a create, and for a write to an existing row its client-minted mutation id in a bounded per-clientappliedlist. A refused or unconfirmed write undoes itself.Also adds
documentation/plans/board-flagship.md(the plan, its decisions, and what was measured) and updates theboardentry inexamples-grid-plan.md. The commits follow the plan's build steps and each one runs.Known gaps:
moveBefore()and not detaching what is re-inserted) #3997. Keyboard moves restore focus with one commented line, in its own commit (examples(board): keep focus on a card moved by keyboard) so it can be reverted alone.HTTPS=0).chatthis example's twin;chatis still the earlier streaming demo.No public API changes.
How did you test this change?
From
examples/board:pnpm check: 20 server checks with no UI (ordering keys, applied ids out of order, another tab overwriting the same card, the card limit, archive, retries, a restart with the file store), then a build, then a scan confirming none of six server-only strings is in the client bundle.pnpm typecheckand Prettier on the example's sources.By hand and by script in Chromium 152, dev build, two tabs, with
BOARD_SLOWdelaying writes:CHAOS_EVERY=1500there are no DOM mutations to the board on reconnect, an open editor keeps focus and draft, and six consecutive writes land.Not run: the repository-wide
pnpm test. This PR adds an example and two plan documents and touches no package source.🤖 Generated with Claude Code