Commit Graph

128 Commits

Author SHA1 Message Date
Jeff Emmett 3e46b85f40 Create task task-054 2025-12-15 18:40:33 -05:00
Jeff Emmett d15eee2ee2 Create task task-053 2025-12-15 18:40:33 -05:00
Jeff Emmett c314edac0c Update task task-052 2025-12-15 14:26:10 -05:00
Jeff Emmett bfacc55486 Update task task-052 2025-12-15 13:32:12 -05:00
Jeff Emmett 5a57965046 Update task task-052 2025-12-15 12:45:46 -05:00
Jeff Emmett 6b84d7109c Create task task-052 2025-12-15 12:23:11 -05:00
Jeff Emmett 00994fd857 Update task task-051 2025-12-14 23:58:34 -05:00
Jeff Emmett 8df3a1a675 Create task task-051 2025-12-14 23:58:28 -05:00
Jeff Emmett e2d9382202 Create task task-050 2025-12-14 13:32:20 -05:00
Jeff Emmett 1136047795 Update task task-017 2025-12-11 07:15:44 -08:00
Jeff Emmett 7309ef9a7f Create task task-049 2025-12-10 14:24:07 -08:00
Jeff Emmett 982157f07d Update task task-048 2025-12-10 14:22:25 -08:00
Jeff Emmett e72813f573 Create task task-048 2025-12-10 14:22:15 -08:00
Jeff Emmett 9c612cb274 Update task task-047 2025-12-10 10:28:27 -08:00
Jeff Emmett c396c1901e Create task task-047 2025-12-10 10:28:22 -08:00
Jeff Emmett 96887c8ba1 Update task task-046 2025-12-08 01:03:18 -08:00
Jeff Emmett b63491f19a Create task task-046 2025-12-08 00:51:43 -08:00
Jeff Emmett 7e2a69d4a5 Create task task-045 2025-12-08 00:48:02 -08:00
Jeff Emmett 1d51352748 Update task task-044 2025-12-08 00:48:02 -08:00
Jeff Emmett 5f9bea85bb Create task task-044 2025-12-07 15:26:04 -08:00
Jeff Emmett fc43e8e803 Update task task-001 2025-12-07 12:50:32 -08:00
Jeff Emmett f5eb29ae74 Update task task-004 2025-12-06 22:43:37 -08:00
Jeff Emmett fa212f90ea Update task task-024 2025-12-06 22:43:25 -08:00
Jeff Emmett e701b04d56 Update task task-024 2025-12-06 22:32:53 -08:00
Jeff Emmett f1c7df5699 Create task task-043 2025-12-06 22:31:37 -08:00
Jeff Emmett a60c2c0899 Update task task-024 2025-12-06 22:21:50 -08:00
Jeff Emmett df117acc94 Update task task-024 2025-12-05 23:22:36 -08:00
Jeff Emmett 76ec56a5f4 Update task task-027 2025-12-05 22:55:21 -08:00
Jeff Emmett b95eb6dc01 Update task task-041 2025-12-05 22:46:57 -08:00
Jeff Emmett eb7498157f Create task task-042 2025-12-05 22:46:50 -08:00
Jeff Emmett 9f5befc729 Update task task-024 2025-12-05 22:40:20 -08:00
Jeff Emmett fe0a96ddad Update task task-018 2025-12-05 22:39:25 -08:00
Jeff Emmett e11eccd34c Update task task-041 2025-12-05 22:38:33 -08:00
Jeff Emmett c00106e2b7 feat: implement user permissions system (view/edit/admin)
Phase 1 of user permissions feature:
- Add board permissions schema to D1 database
  - boards table with owner, default_permission, is_public
  - board_permissions table for per-user permissions
- Add permission types (PermissionLevel) to worker and client
- Implement permission API handlers in worker/boardPermissions.ts
  - GET /boards/:boardId/permission - check user's permission
  - GET /boards/:boardId/permissions - list all (admin only)
  - POST /boards/:boardId/permissions - grant permission (admin)
  - DELETE /boards/:boardId/permissions/:userId - revoke (admin)
  - PATCH /boards/:boardId - update board settings (admin)
- Update AuthContext with permission fetching and caching
  - fetchBoardPermission() - fetch and cache permission for a board
  - canEdit() - check if user can edit current board
  - isAdmin() - check if user is admin for current board
- Create AnonymousViewerBanner component with CryptID signup prompt
- Add CSS styles for anonymous viewer banner
- Fix automerge sync manager to flush saves on peer disconnect

Permission levels:
- view: Read-only, cannot create/edit/delete shapes
- edit: Can modify board contents
- admin: Full access + permission management

Next steps:
- Integrate with Board component for read-only mode
- Wire up permission checking in Automerge sync
- Add permission management UI for admins

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-05 22:27:12 -08:00
Jeff Emmett 037e232b85 Update task task-041 2025-12-05 22:24:37 -08:00
Jeff Emmett 14bf688b60 Create task task-041 2025-12-05 22:17:54 -08:00
Jeff Emmett af6666bf72 Update task task-027 2025-12-05 14:05:24 -08:00
Jeff Emmett d4df704c86 Create task task-040 2025-12-05 13:58:56 -08:00
Jeff Emmett 36ce0f3fb2 Update task task-024 2025-12-04 21:35:10 -08:00
Jeff Emmett e2a9f3ba54 Update task task-024 2025-12-04 21:29:10 -08:00
Jeff Emmett 254eeda94e Update task task-024 2025-12-04 20:01:59 -08:00
Jeff Emmett 857879cb7e Update task task-027 2025-12-04 19:53:01 -08:00
Jeff Emmett 7677595708 Update task task-037 2025-12-04 19:52:54 -08:00
Jeff Emmett 2418e5065f Update task task-024 2025-12-04 19:52:54 -08:00
Jeff Emmett 4a9312fa52 Update task task-024 2025-12-04 19:45:28 -08:00
Jeff Emmett 856bfa8e9b feat: implement binary Automerge CRDT sync and open-mapping module
Binary Automerge Sync:
- CloudflareAdapter: binary sync messages with documentId tracking
- Message buffering for early server messages before documentId set
- Worker sends initial sync on WebSocket connect
- Removed JSON HTTP POST sync in favor of native Automerge protocol
- Multi-client binary sync verified working

Worker CRDT Infrastructure:
- automerge-init.ts: WASM initialization for Cloudflare Workers
- automerge-sync-manager.ts: sync state management per peer
- automerge-r2-storage.ts: binary document persistence to R2
- AutomergeDurableObject: integrated CRDT sync handling

Open Mapping Module:
- Collaborative map component with real-time sync
- MapShapeUtil for tldraw canvas integration
- Presence layer with location sharing
- Privacy system with ZK-GPS protocol concepts
- Mycelium network for organic route visualization
- Conic sections for map projection optimization
- Discovery system (spores, hunts, collectibles, anchors)
- Geographic transformation utilities

UI Updates:
- ConnectionStatusIndicator for offline/sync status
- Map tool in toolbar
- Context menu updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 19:45:02 -08:00
Jeff Emmett 9473a49ebb Update task task-027 2025-12-04 19:42:48 -08:00
Jeff Emmett c93460804d Update task task-005 2025-12-04 19:41:18 -08:00
Jeff Emmett 9db6fde5a5 Update task task-039 2025-12-04 19:41:04 -08:00
Jeff Emmett a347df11a5 Update task task-039 2025-12-04 19:40:55 -08:00