Commit graph

3 commits

Author SHA1 Message Date
Claude
b49f8ac8f5
Wire BookNest to real bookmarks API, removing mock data
Bookmarks, categories, favorites, quick access, recently added, link
health, and category breakdown are now all derived from real backend
data instead of hardcoded arrays. Adds an Add Bookmark modal (with
inline new-category creation) and a working favorite toggle, both
backed by the existing /api/bookmarks endpoints. Adds
createBookmarkCategory/updateBookmark to the API client.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbJV5nm8KPVH1oNJYKpnoF
2026-06-18 19:33:26 +00:00
Claude
5c1fc911c9
Wire Settings Integrations to real backend API
Replaces mock integration data in Settings.tsx with live calls to
api.listIntegrations/createIntegration/updateIntegration/testIntegration.
Also fixes apiFetch sending Content-Type: application/json on bodyless
requests, which made Fastify reject Test Connection calls with 400.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbJV5nm8KPVH1oNJYKpnoF
2026-06-18 19:26:48 +00:00
Claude
e2793b06fe
Add enrollment, login, and auth-gated routing to the frontend
- New AuthContext drives app state (loading/needs-setup/enrolling/
  logged-out/logged-in) by checking GET /api/system/setup-status and
  GET /api/auth/me on load; JWT stored in localStorage
- Enrollment page: step 1 creates the admin account via POST /api/setup,
  step 2 lets you connect integrations (or skip) before entering the app
- Login page for returning sessions; TopBar's Sign Out now calls
  logout() instead of being a dead link
- Verified end-to-end in a browser: fresh setup -> connect/skip ->
  dashboard, reload persists the session, sign out -> login -> back in

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbJV5nm8KPVH1oNJYKpnoF
2026-06-18 19:13:27 +00:00