Added Groups/Categories To Changelog Entries
Selection Fields Dev side, organizational structure on the public side.
BLACK MONEY · Operations
Editor-uploaded updates, Cursor agent logs, strategic roadmap, the last three GitHub pushes, and the LifeOS Blueprint — one dossier.
before runthrough
before runthrough. Touches spark threads, articles, changelog, desk shell. 81949 files changed.
View commit →big2
big2. Touches spark threads, articles, desk shell, Sanity studio. 320 files changed.
View commit →massive update
massive update. Touches spark threads, articles, desk shell, Sanity studio. 328 files changed.
View commit →Selection Fields Dev side, organizational structure on the public side.
Also added the live-preview feature.
- + Draft spark thread creates and links a thread to the article - Open spark → opens the full composer - Sync into article pulls latest spark content into the article body - Promote → article sets sourceSparkThread on the article for round-trip linkage
- Full snapshot vs after side-by-side panels - Inline diff with green additions and red strikethrough removals - Note changes and done-state changes
While recording: browser speech recognition fills a live transcript when supported After upload: Transcribe calls /api/desk/media/transcribe (OpenAI Whisper or Groq via OPENAI_API_KEY / GROQ_API_KEY) Audio file is kept; transcript is stored as audioTranscript and shown below the player Promote → article maps transcripts to aside callouts
Removed the Draft / Finalized / Published / To-do dropdown. Every spark has a Done checkbox in the header; checked sparks get strikethrough styling in the editor and preview. Legacy taskDone / lineKind: task data maps into done automatically.
Groups can now contain sparks and sub-groups (recursive nesting). In the composer, each group has + Sub-group alongside + Add spark. Sub-groups indent visually and promote to nested chapter breaks.
Fixed duplicate React keys on /changelog (stable agentLogId keys), slimmed project material GROQ and compare query, capped nav fetch, synced desk material roles with public labels, zone filter a11y, segment error boundaries, and ESLint cleanups.
Split project list vs detail GROQ projections so the registry index no longer POSTs the full portable-text/page-builder query body to Sanity.
Added project editorial spreads, desk presentation editor, page builder sections, phase compare route, filterable index with tag links, public video gallery routes, phase-aware embeds, sitemap phase URLs, and light theme parity.
Rebuilt /projects index, project slug, and phase pages with feathered media, carousels, hero video, presentation body, world/elements, per-project layout controls, and phase portable text.
Removed full-bleed paper textures site-wide. Flat ink-black gradient, whisper grain/dust, faint scanlines. Desk, studio, and cards aligned. Changelog blueprint sidebar scroll fixed.
Server transcription now requests verbose_json from Whisper and stores per-segment start/end timestamps on spark audio.
Audio transcript segments are clickable in the spark composer — selecting a segment seeks the audio player to that timestamp.
Invalid OpenAI keys and missing billing credits now return explicit error messages from /api/desk/media/transcribe.
While recording, Firefox users see that live captions are unavailable and Whisper will transcribe after stop.
A single + FAB appears on desk and public pages for signed-in users — no hotkey required.
Expanded FAB shows ⚡ spark drawer, quick-create glyphs, and ⌂ Desk · ≡ Sparks · ◆ Changelog links.
Spark composer includes a collapsible outline; clicking an item scrolls to that spark or group.
Composer view can filter sparks by done state without mutating thread data.
Bulk actions set or clear the done checkbox on every spark in the thread.
Groups and sub-groups can be collapsed in the composer to reduce visual noise.
Threads support publish scope: all sparks, non-done only, or done only — preview respects the setting.
New deskUpdate object on sparks, groups, threads, changelog entries, and the changelog document.
Desk updates support Desk only · Public (redacted) · Fully public modes; ⟦brackets⟧ render marker-style strikethroughs.
Site changelog editor autosaves like spark threads and articles.
Replace ↑↓-only reordering with drag-and-drop for sparks and groups.
Label speakers on transcripts (requires AssemblyAI, pyannote, or similar — Whisper alone does not diarize).
Starter templates for threads plus AI clustering of related sparks into groups.
Edits in a promoted article push back to the linked spark thread and vice versa.
Embed a live-updating public thread widget inside magazine articles.
Search across threads, transcripts, and version history; “find similar sparks” via embeddings.
Deploy deskUpdate / publishScope schema to production and run npm run sanity:typegen --workspace=frontend.