Commit Graph

21 Commits

Author SHA1 Message Date
02adfd0dbe feat: installable PWA (manifest, icons, minimal service worker)
- public/manifest.webmanifest with any + maskable icons (192/512)
- generated inbox-glyph icons in app palette, apple-touch-icon
- minimal no-cache service worker for installability; registered via client plugin
- head: manifest/icon links, mobile-web-app-capable

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:00:54 +00:00
d4c734737b feat: role-based access via Zitadel project roles
Replace the ALLOWED_USER_IDS sub-allowlist with a Zitadel project role
check: tokens must carry the role from REQUIRED_ROLE (default "user")
in the urn:zitadel:iam:org:project[:id]:roles claim. Roles are granted
per account in Zitadel (project ClaudeDo), where access is now managed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:25:34 +00:00
725f75fdd1 chore: untrack .claude session artifacts 2026-06-10 09:57:43 +00:00
a15e5fb0a5 update 2026-06-10 09:56:41 +00:00
104ffc4f1d feat: compact task rows + bottom-sheet list picker
- Tasks as dense divided rows: title clamps to 2 lines, note to 1;
  tap a row to expand the full text (was: full-height cards → heavy scroll)
- List switcher moved from top chip row into the thumb zone: a "List" pill
  in the dock opens a bottom sheet with all lists (52px rows, active check)
- Masthead title now shows the selected list; compacted header spacing

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:56:41 +00:00
c29f793973 feat: mobile-first redesign (warm notebook aesthetic, thumb-zone capture bar)
- Editorial masthead (Fraunces + Spline Sans), warm paper/ink palette with
  terracotta accent, matching dark mode
- Thumb-zone composer: single capture input + round submit, optional note
  toggle, refocus after add for rapid capture
- Mobile-first CSS: 44-50px touch targets, 16px inputs (no iOS zoom),
  edge-to-edge scroll-snap list chips, safe-area insets, tap-highlight off,
  contained overscroll; desktop as min-width enhancement
- Staggered task-card entrance (reduced-motion aware), themed empty states
- Head: theme-color light/dark, Apple web-app metas, lang attr, font preconnect

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 09:49:45 +00:00
65543cb6ee fix: add PUT /tasks/mirror (array full-replace of desktop Idle backlog)
The desktop pushes its full Idle backlog as a JSON array to /tasks/mirror, not per-task.
Previously /tasks/mirror matched tasks/[id].put.ts (id=mirror) and rejected the array with
400. New static route validates per-element, accepts empty arrays, upserts each as
consumed=true (desktop-owned), deletes consumed=true rows not in the array, and leaves
web-created consumed=false rows untouched. Mirrors PUT /lists.
2026-06-10 09:35:33 +00:00
812048a0b5 fix: bootstrap-gate auth before mount (krypto-kuns pattern); never call API unauthenticated
Root cause: the router-guard adapter let index.vue mount and call the API before
auth resolved, so auth.fetch returned a synthetic 401 (the banner) and the package's
redirect-loop guard could strand the user. Now use the core ZitadelAuth and gate in an
async plugin (Nuxt awaits it before mount), mirroring the working krypto-kuns app.
2026-06-10 08:49:01 +00:00
94ee00b0ff debug: gated auth diagnostics (AUTH_DEBUG) logging jwt claims on 401 2026-06-10 08:38:00 +00:00
e38a9e43af chore: ignore playwright artifacts 2026-06-10 08:25:18 +00:00
ab2f9affd1 fix: commit vendored @kuns/zitadel-auth dist (was excluded by dist/ gitignore) 2026-06-10 08:22:38 +00:00
7331fe75e8 feat: dockerfile (node runtime), startup migration, README, runtime env config 2026-06-10 08:16:45 +00:00
56186a1fea feat: zitadel provisioning script + project-audience scope 2026-06-10 08:07:20 +00:00
f83bb25316 feat: mobile-first web client (login, lists, add task) 2026-06-10 08:01:39 +00:00
285bac4308 feat: list + task endpoints and CORS, verified end-to-end 2026-06-10 07:58:51 +00:00
394bceca5f feat: zitadel token auth middleware 2026-06-10 07:53:42 +00:00
50173a3809 feat: repository layer with tests 2026-06-10 07:52:31 +00:00
63714f5960 feat: db connection and migration 2026-06-10 07:51:00 +00:00
935ff5b757 feat: scaffold nuxt app 2026-06-10 07:49:40 +00:00
42d01f0673 docs: online inbox implementation plan 2026-06-10 07:47:08 +00:00
0f0e7ee7d2 docs: online inbox design spec 2026-06-10 07:44:23 +00:00