• nightly-20260426 9e2da3b825

    nightly-20260426 Pre-release

    github-actions[bot] released this 2026-04-25 04:46:02 +00:00 | 10 commits to main since this release

    • fix: make task panel saves atomic (#261) (9e2da3b)
    • cal import (#258) (76a3966)
    • settings-sidebar (#260) (fa1fe08)
    • ci: make just the task source of truth (5ab2b81)
    • chore: calendar sidebar (#257) (47e206c)
    • fix: taskpanel savetask fix (#256) (5c6e987)
    • fix: make all-day and due-only events render like normal events (#255) (8b30e09)
    • feat: delete button for accessibility (#254) (75b6ffd)
    • calendar-cleanup (#253) (c4a90d2)
    • chore: popover dark mode coloring and sidebar app logo (#252) (fb91072)
    • Calendar rewrite (#251) (b8aacdb)
    • nit: remove settings popover sidebar item gaurds (#250) (26f9b09)
    • nits (#249) (9022c87)
    • chore: modal annoyance (#248) (966e444)
    • chore: cleaup, next-js and settings page exit (#247) (8b390fd)
    • feat: create settings page, wire up to :h and S, do first UI pass (a2c6457)
    • fix(queue): keep zero-urgency tasks visible (#242) (c441808)
    • fix(sidebar): align kanban label casing (#240) (7440bf2)
    • chore(release): separate app and cli version flows (#238) (0e26375)
    • chore(sync): remove legacy google and task-level sync code (#236) (29756b7)
    • feat(sync): add first-class external task links (#235) (40462b5)
    • fix(events): preserve canonical recurrence and status semantics (#234) (79eee72)
    • fix(product): remove misleading sync surfaces (#233) (b1147f2)
    • fix(settings): remove redundant page eyebrow (#232) (369df12)
    • fix(calendar): align create preview with task duration (#230) (f959c41)
    • fix(reminders): remove custom destination labels from UI (#231) (e705fea)
    • fix(tooling): make biome resolution reliable (#229) (4ac6412)
    • fix(settings): simplify reminder and calendar setup (#227) (b1a93eb)
    • feat(reminders): add Twilio WhatsApp transport (#226) (da9e78e)
    • chore(reminders): drop signal transport support (#225) (dc11ba6)
    • feat(settings): polish centralized settings shell (#224) (bd8d9c4)
    • feat(reminders): add signal-cli transport support (#223) (f97e9b5)
    • fix(reminders): polish proof-of-consent page (#222) (924ecc6)
    • feat(reminders): add delivery history settings UI (#221) (c251508)
    • feat(reminders): expose delivery log API (#220) (c76a98e)
    • feat(reminders): add proof-of-consent page (#218) (f72f457)
    • perf(web): cut rerenders in hot task flows (#217) (cc96134)
    • fix(settings): color only account action prefixes (#215) (c466c0a)
    • fix(settings): make keymaps layout two columns (#214) (1a87c21)
    • feat(reminders): add transport settings UI (#213) (855b5f2)
    • feat(reminders): add endpoint settings UI (#212) (74cabf7)
    • feat(reminders): add quick-view reminder editor (#211) (f7ec91a)
    • chore(web): add render optimization tooling (#210) (db045ce)
    • feat(reminders): dispatch queued reminder deliveries (#208) (40225f2)
    • feat(reminders): add reminder API and worker (#207) (8875f1d)
    • feat(reminders): add delivery queue primitives (#206) (f826bf6)
    • feat(reminders): establish reminder foundations (#205) (97999b5)
    • revert(ci): restore GitHub-hosted runners (#188) (dfa3497)
    • ci: keep delta off GitHub-hosted runners (#186) (0599180)
    • chore(cli): release v0.0.2 [skip ci] (c785696)
    • fix(deploy): remove conflict markers (515b4bb)
    • fix(deploy): reset versioning (2dc4c46)
    • chore(cli): release v0.1.11 [skip ci] (128b136)
    • chore(cli): release v0.1.10 [skip ci] (96e913c)
    • fix(cli): clear stale _auth config, add verbose publish (46ef59d)
    • chore(cli): release v0.1.9 [skip ci] (535537b)
    • fix(cli): improve OIDC debug output (198c3bc)
    • chore(cli): release v0.1.8 [skip ci] (4a94d73)
    • fix(cli): use Node 24 for OIDC trusted publishing (09a5782)
    • chore(cli): release v0.1.7 [skip ci] (3f215fc)
    • fix (dc72f01)
    • fix (45fc5b0)
    • more fixes (edb9020)
    • fix (59d808f)
    • chore(cli): release v0.1.6 [skip ci] (2590821)
    • fix(deploy): fix everything (640d0f5)
    • chore(cli): release v0.1.5 [skip ci] (5c41ef8)
    • fix(deploy): remove env var (7798f3b)
    • fix(deploy): remove env var (23fecce)
    • chore(cli): release v0.1.4 [skip ci] (e4afde4)
    • fix(cli): fix OIDC auth and npm bin entry (283d598)
    • chore(cli): release v0.1.3 [skip ci] (ce0211c)
    • fix(delpoy): remove bun binary and fix npm package structure (f422457)
    • chore(cli): release v0.1.2 [skip ci] (f8279f3)
    • fix(delpoy): rename package (a0a32e1)
    • chore(cli): release v0.1.1 [skip ci] (5c839cf)
    • build(cli): add OIDC trusted publishing and version automation (2f0ba84)
    • doc: cleanup (6a3b856)
    • ci(cli): use npm provenance via OIDC for publish (e900806)
    • build(cli): add distribution pipeline and release workflow (e41aeb4)
    • ci: update lockfile (e0237b3)
    • feat(cli): implement supporting noun commands (dda6949)
    • feat(cli): implement calendar infrastructure commands (8903b67)
    • feat(cli): add shell completion generation (54eac9c)
    • fix(cli): respect XDG Base Directory spec for paths (5bc0c7a)
    • refactor(cli): DRY up duplicate path, config, and status logic (98036ae)
    • fix: biome formatting and exclude cli from root tsconfig (94c4cb0)
    • feat(cli): implement auth commands (f7a488f)
    • docs(cli): add man page and built-in help topics (f79c393)
    • feat(cli): implement task commands (3370001)
    • refactor(calendar): move gcal actions to settings, keep sync as icon menu item (c3ee874)
    • refactor(calendar): move settings out of actions popover (895d5ed)
    • refactor(settings): split into sidebar-navigated section pages (57121cc)
    • feat(api): add REST endpoints for CLI parity (0a9dedf)
    • feat(cli): scaffold entry point and lib modules (3f1bb0a)
    • refactor: DRY auth boilerplate across API routes (94be409)
    • refactor: remove dead code (844cb65)
    • fix(task-detail): replace share arrow with phosphor Copy icon (dfad997)
    • fix: clean up lint errors and stale test (6973d0f)
    • fix(calendar): default conflict resolution to google wins (ad46cd0)
    • fix(calendar): add google calendar suffix to disconnect label (10dc9f9)
    • refactor(status-bar): show timezone only in calendar view (2492c1e)
    • refactor(nlp): hardcode models to haiku-latest and gpt-4o-mini (10af21a)
    • feat(calendar): add edge resize for all-day events (94e17e8)
    • feat(calendar): open create panel on all-day bar empty click (6ca1263)
    • refactor(calendar): remove manual sync option (d607b5e)
    • fix(oauth): request full calendar scope for dedicated delta calendar (d2f8c4b)
    • fix(calendar): use primary calendar instead of creating one (b3e17e6)
    • fix(oauth): link Google account when connecting calendar scope (322208b)
    • fix(calendar): prevent sync infinite loop and retry spam (7f591db)
    • fix: add console.error to all silent server-side catch blocks (d953c8e)
    • feat(calendar): configurable sync interval with status bar feedback (aac575c)
    • feat(status-bar): add per-view contextual info (9c27fd3)
    • feat(calendar): auto-sync Google Calendar on load and periodically (ab8ceed)
    • refactor(queue): replace status sigils with left border color (bbc91ce)
    • fix(nav): prevent default-view redirect when explicitly navigating to queue (a2a8aa7)
    • fix(calendar): restore useEffect deps array size (9ba4631)
    • fix(status-bar): remove date range from calendar idle right (a0ea6a0)
    • feat(status-bar): display client timezone in bottom right (02558a9)
    • refactor: rename section labels to proper technical terms (b7464d2)
    • refactor(calendar): simplify feed management in actions popover (9fbb4ed)
    • refactor(commands): nest calendar commands under :cal (3388ace)
    • fix(calendar): bold blue today number and per-cluster event layout (a82128b)
    • fix(calendar): add subtle column tint for today (0fba9a4)
    • fix(calendar): replace today box/outline with text-only highlight (7c006b7)
    • refactor(sidebar): remove view icons from sidebar menu (73c79da)
    • fix(calendar): split all-day bar visibility and expand controls (e000b37)
    • fix(api): normalize API key test error messages (ad50383)
    • fix(onboarding): gate step advancement on validated API keys (6486d6f)
    • fix(calendar): apply optimistic updates to all-day tasks (f09b917)
    • fix(calendar): apply optimistic updates to all-day tasks (6237f37)
    • fix(calendar): all-day event UX bugs (8d2bcb3)
    • feat(calendar): wire API key test buttons into actions popover (39bf5ee)
    • feat(onboarding): wire API key test buttons into wizard step 2 (543d720)
    • feat(api): add API key test endpoint (3307529)
    • fix(onboarding): stabilize layout and persist API key inputs (049acdd)
    • fix(calendar): optimistic delete on x button, seed script (c54802e)
    • test(settings): fix defaultView assertion after list→queue rename (155da35)
    • fix(task-panel): restore preFill as source of truth for calendar dates (056ad9d)
    • fix(task-panel): let due field override prefilled calendar time (b15f82b)
    • fix(keymaps): display Enter as in vim notation (c0090b9)
    • fix(ui): rename recurrence parsing to recurrence API, remove Opus (c0dcae9)
    • fix(ui): use colorscheme values for status bar text (8d798eb)
    • fix(calendar): apply strikethrough only to event title text (fd575f3)
    • fix(task-panel): remove save and delete buttons (04fdc7c)
    • fix(ui): improve status bar text legibility (a433a21)
    • fix(task-panel): merge location and meeting link into single input (216ee8e)
    • fix(calendar): remove redundant onClick from EventBlock (9baaece)
    • fix(task-panel): clean up quick view layout and styling (46188ec)
    • fix(ui): use darker background for status bar (d1169e2)
    • fix(calendar): suppress click after dragging event blocks (de9c418)
    • fix(ui): use MapPinSimple for location, ArrowClockwise for recurrence (db1d118)
    • feat(calendar): add NLP provider config to actions popover (1a31676)
    • fix(recurrence): handle invalid RRULE strings gracefully (310b074)
    • fix(task-panel): wire recurrence input to NLP parsing endpoint (84ec722)
    • feat(onboarding): add NLP provider selection to step 2 (7826678)
    • feat(settings): add NLP provider configuration UI (e293235)
    • feat(nlp): add recurrence parsing with rrule NLP and LLM fallback (277e6f2)
    • refactor(ui): migrate all icons from lucide-react to phosphor (bce5631)
    • fix(ui): use phosphor icons, center settings page (06139f3)
    • feat(onboarding): add 3-step onboarding wizard (9567691)
    • refactor: deprecate list view type in favor of queue (64bb9f5)
    • refactor(detail): restructure task panel layout and interactions (cc573a1)
    • refactor(keymaps): lock scroll keys, all-day toggle to a, add yy (e09ce78)
    • fix(ui): compressed event alignment and keymap help sizing (10b35d1)
    • feat(calendar): configurable conflict resolution for gcal sync (51dc34d)
    • feat(calendar): cleanup (2fbb66f)
    • feat: calendar event sharing via invite links (ebcb641)
    • fix(calendar): compact layout for short event blocks (f8d65f7)
    • fix(calendar): show geo API key input directly below selected provider (c500047)
    • fix(calendar): resolve popover trigger hydration mismatch (8742a83)
    • fix(ui): popover navigation, queue layout, and calendar tweaks (5685c24)
    • feat(calendar): add management popover with ga keybinding (f9b27dd)
    • fix(calendar): improve event block spacing and font hierarchy (b54e814)
    • refactor(settings): remove keymaps section from settings page (0682faf)
    • fix(settings): replace add passkey row with inline + button (#167) (c83524e)
    • fix(calendar): prevent page-level scrolling on month view (#168) (00d6987)
    • fix(settings): remove redundant logout button (#167) (d9a3daa)
    • fix(keymaps): remove hover effect from help menu key hints (#166) (8087f06)
    • fix(login): show github username, not email (e061a9b)
    • refactor(keymaps): scope help menu and settings to relevant sections (c93b831)
    • fix(keymaps): wire dynamic overrides to all keyboard handlers (#166) (70aa75e)
    • fix(statusbar): prevent infinite re-render loop in setIdle (a7eb6ba)
    • fix(ci): run all steps inside nix develop (9a8a4f4)
    • fix(calendar): persist event creation and add delete button to event blocks (f205995)
    • feat(keymaps): add rebinding UI to help menu (96d1c97)
    • fix(oauth): store provider username instead of display name (7193019)
    • feat(kb): dynamic ui hints (e461c79)
    • feat(keymaps): add configurable keymap settings with storage and UI (85fb472)
    • refactor(keymaps): wire keyboard handlers to central keymap defs (a995c78)
    • feat(statusbar): add idle state with view labels and position info (19910fe)
    • refactor(keymaps): add triggerKey and configurable fields to keymap defs (0e84148)
    • refactor(keymaps): centralize keymap definitions (06708d4)
    • fix(calendar): save on escape in create mode and add delete button (4240506)
    • feat(settings): display provider username in connected accounts (aefacc6)
    • fix(login): add bordered container to login options (4d5ab63)
    • feat(ui): vim-style command bar with tab completion (441623a)
    • feat(calendar): unified actions popover with feed and Google Calendar (0051970)
    • feat(ui): responsive layout for mobile viewports (b4d66d1)
    • refactor(login): redesign login page with vim-style navigation (0c02260)
    • fix(calendar): simplify import/export popover to two buttons (642c231)
    • fix(settings): simplify feed, accounts, and geocoding display (6bcbe9c)
    • feat(settings): add geocoding provider selector with Google Maps support (79402b2)
    • refactor(calendar): consolidate dropdowns, move feed and geocoding to settings (0d4db9e)
    • ci: fixes (cf2eb8c)
    • refactor(calendar): migrate popover feedback to status bar (020531e)
    • refactor(settings): migrate feedback to status bar (fe8a980)
    • feat(ui): wire undo system to status bar (5e688d8)
    • feat(ui): add status bar context and component (808d704)
    • feat(calendar): add geocoding provider selector popover (6b0dc24)
    • fix(ui): color only +/- symbols in settings, combine due and repeat row (f8d39a2)
    • feat(schema): add migration for lat/lon columns (8e7980e)
    • feat(gcal): add incremental oauth for calendar scope (dc80e58)
    • feat(gcal): register sync automation recipe (710faf0)
    • feat(gcal): add sync engine with field-level merge (28f5c61)
    • feat(gcal): add bidirectional event mapper with tests (17309fe)
    • feat(gcal): add google calendar api client (5970850)
    • refactor(geocoding): use photon as default with mapbox upgrade (9b1fa13)
    • feat(schema): add lat/lon columns to tasks table (b3647ed)
    • feat(settings): add integrations section for api key management (4a2bcd0)
    • refactor(settings): restyle connected accounts and simplify invites (e5a103c)
    • fix(ci): add apercu mono pro to font fetch script (b624bfe)
    • fix(calendar): use render prop on PopoverTrigger to avoid nested buttons (d15bc45)
    • fix(keyboard): let browser-native shortcuts pass through handlers (#158) (3acd5a9)
    • refactor(calendar): move ical import/export from settings to calendar view (#156) (71c76aa)
    • feat: remove hints (9ccc32d)
    • fix(keyboard): let browser-native shortcuts pass through handlers (8d94652)
    • refactor(calendar): move feed management from settings to calendar view (8753232)
    • refactor(calendar): move ical import/export from settings to calendar view (86adbbd)
    • fix(settings): remove redundant oauth provider configuration section (b05d1ae)
    • fix: resolve ci failures across codebase (8a470be)
    • refactor(task-panel): convert detail panel to CSS grid property table (c38fc06)
    • fix(caldav): add caching headers, discovery route, and inline disposition (b1b618e)
    • feat(settings): add ical file import section (da0ba2a)
    • feat(calendar): add undo support to dd delete keybinding (78b09bc)
    • fix(detail): proepr dark theme (b1724fd)
    • fix(kanban): move through visible columns (47888e4)
    • feat(login): gitlab login (e0efae1)
    • feat(auth): add GitLab OAuth provider (3efd346)
    • feat: login fixes (7658245)
    • fix: pass db to getEnabledProviders in unlink route (8138960)
    • fix: remove duplicate migration file (b4b3c03)
    • test(oauth): update tests for DB-backed OAuth config (b4ea450)
    • feat(settings): add OAuth providers admin section (884663f)
    • refactor(oauth): read credentials from DB before falling back to env (c320f9a)
    • feat(core): add system-config module for encrypted system settings (5f9556c)
    • feat(db): add systemConfigs table for system-wide key-value storage (1ff8203)
    • feat(auth): replace invite codes with signed URL tokens (be6cfb9)
    • fix: move GlobalKeyboard inside DashboardContent for provider access (b9e7af0)
    • feat(locations): add location and meeting indicators to all views (5031a71)
    • feat(settings): add connected accounts UI for OAuth providers (b4d17e1)
    • fix(schema): correct migration journal timestamps for ordering (b3ad2af)
    • fix(auth): show generic "sign in" when passkey is the only option (effc670)
    • ci: remove cachix-action, use install-nix-action only (555a3c2)
    • ci: switch workflows to Nix with Cachix and secretize deploy config (49eefac)
    • ci: rename workflow files from .yml to .yaml (af708ba)
    • feat(calendar): add recurrence UI for instance editing, deletion, and indicators (7b2d6f7)
    • fix: remove duplicate migration file (3a8d43c)
    • feat(calendar): add CalDAV subscription feed (#141) (52f9099)
    • refactor(undo): execute actions immediately, u reverses (17ebbbc)
    • fix: resolve merge conflicts from parallel agent branches (9b8edc0)
    • fix: remove duplicate migration file from cherry-pick (ccb5fae)
    • fix(ical): fix import ordering and add missing fields to test fixtures (f5ba7b9)
    • test(ical): add parser and import tests (0de879f)
    • feat(ical): add file upload import API route (636ddcc)
    • feat(ical): add import service with deduplication (bdc93b9)
    • feat(ical): add iCal parser (63967cb)
    • build: add node-ical dependency (2daefe6)
    • feat(schema): add externalId and externalSource columns to tasks (18662c7)
    • test: add encryption and integration config tests (b89b4c6)
    • feat(api): add integration config management routes (16f92db)
    • feat(core): add integration config CRUD with encrypted token storage (e3cf18d)
    • feat(schema): add integrationConfigs table (7fd22ca)
    • feat(core): add AES-256-GCM encryption module (8999fbe)
    • feat(location): add client-side result cache to location search (879b571)
    • refactor(location): update hook to use proxy instead of direct Mapbox calls (74c23a8)
    • feat(location): add server-side geocode proxy route (5f6b964)
    • feat(calendar): differentiate drag preview by interaction mode (252ebe6)
    • feat(calendar): improve sub-hour gridline hierarchy (63a59e3)
    • feat(calendar): highlight today in column header (59f496e)
    • feat(calendar): add dot marker to now indicator line (916eb75)
    • refactor(auth): remove password login and registration (37daecb)
    • feat(auth): add 2FA verification gate after OAuth callback (3f285fe)
    • refactor(auth): rewrite login page with OAuth and passkey buttons (539803b)
    • fix(queue): use dynamic row height for keyboard scroll calculations (4bac4b1)
    • refactor(queue): restructure task rows to two-line layout (d81519e)
    • refactor: remove task label field from core, UI, and tests (5b7a0fe)
    • refactor(schema): remove label column from tasks table (eb2f8fb)
    • fix: inline bug fixes for rrule-picker, hydration, and settings (6309a75)
    • fix(pwa): add empty turbopack config for serwist compatibility (845b9b2)
    • fix(pwa): add webworker lib reference to service worker (b7d89bf)
    • feat(pwa): add service worker with basic caching (a86963f)
    • feat(pwa): add meta tags and viewport config for installability (982ec2c)
    • feat(pwa): add web app manifest and icons (df10aba)
    • fix(auth): resolve Biome lint warnings in OAuth files (c10aa3e)
    • feat(auth): add providers discovery endpoint (48009fb)
    • test(auth): add OAuth core module tests (89be33e)
    • feat(auth): add OAuth authorization and callback routes (763cf01)
    • feat(auth): add core OAuth module with GitHub and Google support (dc6b18b)
    • feat(auth): add accounts table for OAuth providers (c91cf9d)
    • fix(ical): sort imports and remove non-null assertions (bc96513)
    • feat(ical): add export API routes for single and bulk events (3f68b7a)
    • feat(ical): add task-to-iCal serializer (8fc75ca)
    • feat(ical): add ProseMirror JSON to plaintext converter (06a12d5)
    • build: add ical-generator dependency (eadced7)
    • feat(calendar): add dd delete keybinding for events (1b32298)
    • refactor(calendar): remove left/right extend handles (629ca3f)
    • fix(calendar): center hour labels on grid lines (8fd47a2)
    • fix(calendar): prevent slot interaction when clicking event blocks (77d341f)
    • fix(keyboard): ensure g. toggle applies across all views (d77a175)
    • fix(keyboard): support operator+count+motion sequences in kanban (965786e)
    • fix(navigation): preserve calendar view mode and anchor in jump list (08bc094)
    • fix(settings): prevent key hints overflow on narrow viewports (8521041)
    • fix(settings): add dismiss for recovery codes display (1061d43)
    • refactor: rename QuickCreatePreFill to TaskPreFill (9349950)
    • fix: resolve all biome lint errors and format violations (e3b1e4f)
    • feat(calendar): distribute multi-day events and wire handleEventExtend (4089bdb)
    • feat(calendar): side-drag interaction and TimedEntry-based grid (f5f35b6)
    • feat(calendar): add multi-day utilities and event-block continuation support (c7c09c1)
    • feat(location): replace Photon with Mapbox Geocoding v6 (d41a057)
    • test: update `buildDayPreFill` test for startAt fix (df0c074)
    • feat(recurrence): wire strategy dialog for delete in all views (36d7d66)
    • feat(recurrence): strategy dialog, RRULE picker, task panel integration (7eaa320)
    • feat(recurrence): add remaining 5 server actions (5d4a90d)
    • feat(recurrence): add `rruleToText` and `buildRRule` utilities (302df1d)
    • refactor: replace CreateTaskDrawer with split panel (f240123)
    • fix(detail): code block dark theme, Apercu Mono, metadata footer (02397f7)
    • fix(calendar): restore keymaps, fix month pre-fill, add click preview (77d0922)
    • feat(recurrence): add materializeInstanceAction and editRecurringInstanceAction (e278080)
    • refactor(calendar): remove cursor system and clean up event block (7e2a14b)
    • feat(recurrence): full RFC 5545 recurrence expansion and editing (500b1c6)
    • feat(calendar): 4-edge event drag and post-merge UI fixes (bd2af36)
    • feat: login cleanups (5c275f0)
    • misc bugfixes (2601d9a)
    • feat: v0.1 polish — priority removal, calendar fixes, panel layout, security (#122) (67b14f4)
    • feat(auth): replace OAuth with WebAuthn, TOTP, and settings view (#121) (f39c40b)
    • refactor: unified split-panel detail view replacing modal and popover (628255d)
    • fix(ui): lowercase delta branding and favicon (2e1ad31)
    • build: add react-grab dev dependency (58a2caa)
    • feat(undo): delayed execution with cancel-on-undo (cf41b04)
    • fix(keyboard): delete motion composition and g. toggle across views (6f9f646)
    • fix(calendar): month navigation day clamping and ref cleanup (5dba95f)
    • fix(calendar): week time grid now-line, scroll, and perf fixes (b34f5c7)
    • fix(calendar): stop event click propagation in week and month grids (d85b588)
    • feat(auth): invite code system with OAuth gating and login UI overhaul (34dbb71)
    • feat: implement v0.1.0 features (03d66a5)
    • fix(ui): rebind kanban status keys to w/i/b/x move, W/I/B/X jump (#111) (c743584)
    • fix(ui): use outline for today's calendar day cell border (#109) (5f242c9)
    • feat(ui): quick create popover for calendar (#108) (fab6d64)
    • fix(ui): remove calendar nav buttons (#107) (be14243)
    • fix(ui): kanban H/L works with v single-select, not just V (#106) (4a79f70)
    • fix(ui): preserve selection, scroll, keymap, toggle cleanup (#105) (7b99ce7)
    • feat(ui): jump list, alt buffer, vim notation, empty states (#104) (65e091e)
    • fix(ui): add hover:bg-accent/50 to calendar hour blocks and day cells (#103) (32c8d07)
    • fix(ui): calendar bugs, hour cursor, global w/m, gg/G (#102) (55e2c45)
    • feat(ui): calendar time grid, e key, kanban count, keymap fixes (#101) (d67095f)
    • fix(ui): restore hjkl after search, Escape clears search (#100) (b9dbfea)
    • feat(core): add calendar time fields to task schema (#99) (89e89dd)
    • feat(core): add label field for sub-category tagging (#98) (054c2d6)
    • fix(core): don't block task when dependency is already resolved (#97) (fcc69cc)
    • docs: strip README to title and screenshot (#96) (4e93a83)
    • fix(ui): remove delete confirmation prompt (#94) (fbd546a)
    • feat(ui): vim-style count buffer for motions and operators (#89) (66dfbc1)
    • refactor(ui): unified operator system, rnu default, gutter fixes (#87) (b37db90)
    • feat(ui): v select, line numbers, calendar key refactor (#86) (a9b14cb)
    • fix(ui): match kanban column hints to sidebar hint style (#85) (e6e244c)
    • fix(ui): kanban column keys p/i/b/w instead of 1-4 (#84) (ce29b70)
    • feat(ui): keyboard overhaul, search, bottom drawer, bug fixes (#83) (27000f9)
    • feat(ui): kanban H/L in visual mode, hide empty columns (#65) (b30965a)
    • fix(ui): g? help panel works from queue view (#60) (7d35916)
    • feat(ui): detail view overhaul, tiptap links + task lists, delete confirm (#59) (6e8260b)
    • refactor(ui): remove category creation from sidebar (#57) (48c7223)
    • feat(ui): g? keymap help panel, persistent category input (#56) (10d4abf)
    • fix(ui): use-keyboard visual mode infinite loop (#55) (222e39b)
    • fix(ui): kanban visual mode infinite loop, sidebar transition speed (#54) (6c5454c)
    • fix(ui): add space after # in category display (#53) (66a25a7)
    • feat(ui): prefix categories with # in queue and kanban views (#52) (d376ea9)
    • fix(ui): sidebar toggle to minus key, inline category creation (#51) (3adca5c)
    • fix(ui): sidebar default collapsed, borderless editor, tighter spacing (#50) (7a19e4e)
    • feat(ui): hide urgency scores, borderless editor, sidebar collapsed (#49) (559e57f)
    • feat(ui): inline editing in queue view, remove checkboxes (#48) (ac38f3c)
    • docs + ci: self-hosting guide, release workflows (#47) (11584ee)
    • refactor(ui): replace status icons with text labels in queue view (#46) (9435372)
    • fix(ui): sidebar categories hydration mismatch (#45) (569f86e)
    • feat(ui): urgency row colors, kanban visual mode, category + button (#43) (677a1dc)
    • feat(ui): calendar hjkl navigation, kanban column shortcuts (#42) (7f11caa)
    • fix(ui): restore lost changes, add github_dev recipe (#41) (72696df)
    • fix(ui): password stars instead of dots, H/L swaps kanban columns (#39) (58ddecc)
    • fix(ui): shiki light/dark, calendar polish, category combobox, sizing (#40) (ad587e6)
    • refactor(ui): DD/MM/YYYY dates, remove settings page, Sunday week start (#38) (76f1ed3)
    • fix: resolve biome lint and formatting errors (aa2ce78)
    • fix(vim): extract isInputFocused, fix empty-list guards and gg/G (b3353aa)
    • feat(ui): revamp app components and add shiki syntax highlighting (e98b710)
    • refactor(ui): terminal aesthetic design system overhaul (df6cee3)
    • feat(auth): add OAuth login for GitHub, Google, and GitLab (#30) (7f07210)
    • fix(ui): uppercase view shortcuts, fix overlay blur and sidebar toggle (#29) (608fb48)
    • feat(auth): add per-user task isolation (#27) (47500d1)
    • refactor: replace task detail sidebar with overlay, add vim multi-select (#26) (2810761)
    • Update README.md (1dd0c27)
    • feat: user settings, date+time due, recurrence groundwork (94f2f10)
    • feat: rework task creation — date picker, category combobox, toasts (6eb57e2)
    • fix: skip rate limiting in dev, fix login hydration mismatch (5fb7684)
    • fix(deploy): set DATABASE_URL for production migrations (c766ff7)
    • fix(deploy): add safe.directory for git ownership check (298896c)
    • feat: category colors with hex picker, fix scheduler crash (5f86497)
    • refactor: self-hosting cleanup, lazy DB init, SVG favicon (b716ec4)
    • docs: trim README, remove .ai-docs reference (a43043c)
    • refactor: code quality audit — error handling, type safety, dead code (acb2995)
    • fix(ui): restore delta text in serif font matching symbol (822e2a9)
    • fix(ui): center delta symbol, align queue columns (20c8185)
    • fix(automation): skip inaccessible repos instead of failing (4fa1f26)
    • fix(ui): use actual midnight.nvim palette — neutral grays, no blue tint (37bc8da)
    • fix(ui): enlarge sidebar logo, match foreground color (f66dbb7)
    • fix(ui): restore delta text label in sidebar header (4dcfb37)
    • refactor(ui): strip search/filter bar, align list columns (49b3f5c)
    • refactor(ui): keyboard-driven interface, fix delta logo, improve calendar (76d83ae)
    • fix(ui): resolve nested button hydration error in calendar (fa6f334)
    • feat(core): add urgency-ranked queue view (62fb201)
    • docs: trim README to self-hosting guide (debb60c)
    • ci: add @vitest/coverage-v8 dependency (7379f3b)
    • ci: parallelize jobs, add coverage, fix deploy secret (f173cef)
    • fix: remove deprecated middleware, fix CI build, add README (158aa80)
    • fix(ui): center kanban board and add demo seed script (8069cca)
    • feat: security hardening, Tiptap editor, search/filters, logout (b437d28)
    • fix(ui): polish login, kanban, calendar, and dark mode theme (d4093df)
    • feat: add integration tests, automation engine, and CLI client (fc56152)
    • feat(ui): add login, kanban, calendar, and vim keybindings (7f91e48)
    • feat(deploy): add standalone build, deploy script, and CI deploy job (b544c19)
    • feat(ui): add web UI with sidebar layout, task list, and midnight theme (a5bbef6)
    • feat: initial commit (a1a1da9)
    • feat(api): implement REST API routes with auth middleware (c84a35c)
    • feat(auth): implement user accounts, sessions, and API keys (0ef4a74)
    • feat(core): implement task CRUD, recurrence, and DAG engine (212a74e)
    • feat: scaffold project (a9a32a9)
    Downloads