Stale intel reflected commit 01f7456 (pre-Phase-4). Refresh adds the shared-lists
+ SSE subsystem: 21 API endpoints (was 10), lists/sse routes, listEmitter/listAccess/rank
libs, PWA lists surface, 7 new arch decisions, and Phase 4 deps (react-router, @dnd-kit,
fractional-indexing). Canonical filenames preserved; API-SURFACE.md + .last-refresh.json regenerated.
54 lines
1.7 KiB
JSON
54 lines
1.7 KiB
JSON
{
|
|
"_meta": {
|
|
"updated_at": "2026-06-09T18:56:37.176Z",
|
|
"commit": "99f59c3999f4ef992f01ef8f8a38c1d86d2f2a0f",
|
|
"version": 3
|
|
},
|
|
"languages": [
|
|
"TypeScript",
|
|
"SQL"
|
|
],
|
|
"frameworks": [
|
|
"Hono 4.12.23",
|
|
"React 19",
|
|
"Drizzle ORM 0.45.2"
|
|
],
|
|
"tools": [
|
|
"Vite 8.0.16",
|
|
"vite-plugin-pwa 1.3.0",
|
|
"Vitest",
|
|
"drizzle-kit 0.31.10",
|
|
"ESLint",
|
|
"node-cron"
|
|
],
|
|
"build_system": "pnpm workspaces + tsc (api) + vite build (pwa)",
|
|
"test_framework": "Vitest",
|
|
"package_manager": "pnpm 11.5.1",
|
|
"runtime": "Node.js 22 LTS",
|
|
"database": "MariaDB via mysql2 3.22.4",
|
|
"cache": "Redis (ioredis — available in infra; not yet wired; in-memory EventEmitter used for Phase 4 list SSE fan-out)",
|
|
"auth": "Authelia OIDC — authorization_code + PKCE via @hono/oidc-auth 1.8.3",
|
|
"calendar_backend": "Fastmail CalDAV via tsdav 2.2.2 + ical.js 2.2.1",
|
|
"calendar_ui": "@schedule-x/calendar 4.6.0",
|
|
"server_state": "@tanstack/react-query 5.101.0",
|
|
"client_state": "zustand 5.0.14",
|
|
"routing": "react-router 7.17.0 (BrowserRouter, /calendar + /lists + /lists/:listId)",
|
|
"drag_and_drop": "@dnd-kit/core 6.3.1 + @dnd-kit/sortable 10.0.0 (list item reorder)",
|
|
"fractional_rank": "fractional-indexing 3.2.0 (list item ordering — utf8mb4_bin collation in DB)",
|
|
"content_formats": [
|
|
"TypeScript (source)",
|
|
"SQL (Drizzle migrations)",
|
|
"iCalendar / VCALENDAR (CalDAV payloads)",
|
|
"Markdown (planning docs)"
|
|
],
|
|
"infra": {
|
|
"hosting": "Unraid + Docker Compose",
|
|
"networking": "Pangolin/Newt tunnel (no open ports), split-DNS"
|
|
},
|
|
"workspaces": {
|
|
"root": "familysync (pnpm workspace root)",
|
|
"api": "@familysync/api — apps/api",
|
|
"pwa": "@familysync/pwa — apps/pwa"
|
|
}
|
|
}
|