Repository navigation
chore: sync upstream cella v0.14.0 (79ee6cde) - #148
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Syncs upstream cellajs/cella to
79ee6cd(v0.14.0).8 upstream commits since last sync (compare):
716254ffeat(blocknote): description sync redesign, release 1 (feat(blocknote): description sync redesign, release 1 cella#1260)3358022fix(infra): single-VM deploys keep the old VM through the health gate, and hung boots report themselves (fix(infra): single-VM deploys keep the old VM through the health gate, and hung boots report themselves cella#1264)2b06b3erefactor(auth)!: step-up and devices move to queries and operations (refactor(auth)!: step-up and devices move to queries and operations cella#1265)216933frefactor(auth)!: sessions move to their own folder, with queries and operations (refactor(auth)!: sessions move to their own folder, with queries and operations cella#1267)012b75bfix(infra): a deploy clears pointers a failed deploy left before it plans the stack (fix(infra): a deploy clears pointers a failed deploy left before it plans the stack cella#1266)f36f852refactor(auth)!: token reads and writes move to tokens-queries (refactor(auth)!: token reads and writes move to tokens-queries cella#1268)d5c7213fix: release PR checks wait for the edit's activity and preview live generations only (fix: release PR checks wait for the edit's activity and preview live generations only cella#1269)79ee6cdchore(main): release 0.14.0 (chore(main): release 0.14.0 cella#1262)Migration notes: all 98 handled.
Step 2 of
.todos/CELLA_SYNC_BRIEF_20261002.md: cella#1260 (description sync redesign, release 1) and what followed it on cella main. Merged without conflicts. The raak work is in the four sections below.Summary is now block JSON
tasks.summarynow holds the summary block as a one-block BlockNote document, thederiveDocumentoutput, and the client renders it withBlockNoteFullHtml.deriveDescriptionPropsis synchronous and built onderiveDocument(summary, summaryLength and counts), and the server no longer renders HTML withServerBlockNoteEditor.keywordsstays raak's deduplicatedextractKeywordsword list: server task search matches only that column, and the shared derivation caps keywords at 900 characters.20261002120603_task_summary_block_jsonis hand-written SQL that mirrorsfindSummarySource. It writes only changed rows, so a rerun does nothing.tasks, and RLS has not been forced since the 10-rls side effect. Re-forcing RLS the way the July backfills did would block the CDC worker's seq stamps (seen at runtime).clientCacheVersion→v14-summary-block-json.titleFromDocument(summary). Seeds and mocks write block JSON.Client derivation
task/query.tsregistersregisterDescriptionDerivation('task', …)for summary, summaryLength, expandable, the counts and attachments.keywordsas Yjs-owned.extra.Card slot on
useDescriptionSlotand<DescriptionLayers>task/card/preserve-description-height.tsxand the outer wrapper intask-card.tsxare gone.'hover'reason, and only with edit rights.waitingFallbackfades only for editors.Two changes beyond the note's sketch, both found at runtime:
autoFocusonTaskUpdateForm. tiptap's deferred autofocus moved the cursor to the start after the slot had placed it.onEditorReadyruns one frame late. Dev StrictMode remounts the editor view after the ready effect, which dropped the cursor. fix(blocknote): raak's release 1 adoption findings cella#1276 moves this deferral into the hook; remove the wrapper after that sync.Auth notes
Notes 1005, 1022 and 1037 need nothing in raak: no raak code imports or mocks the moved auth internals (typecheck is clean, and no stale
vi.mockpaths remain). They are marked handled.Before deploying
select count(*) from taskson prod first. The backfill is a single UPDATE at about 0.45 ms per row locally, and the new migrate sessionstatement_timeoutis 120 s, so it fits up to roughly 250k tasks.task.updatedactivity (changedFieldssummary) per backfilled row, as the earlier task backfills did.Verification
pnpm checkis clean.pnpm test:core: 482 files and 3,916 tests pass, run on this branch.task/helpers/description.test.ts(4 tests) pins the backend columns toderiveDocument.deriveDocument:Known gap, fix in progress upstream
The field-stamp guard only protects rows that carry a
descriptionstamp, and creates carry none. So the first collaborative edit after a task is created can revert for about 3 s if a stale full-row read (for example, another user's write) lands before the relay saves it. This is reproduced. cellajs/cella#1276 treats a field neither row stamps as unwritten when both rows carrystx.Drift
🤖 Generated with Claude Code