Jeff Emmett
1359283a79
Update task task-041
2025-12-05 22:38:33 -08:00
Jeff Emmett
9d513e37bd
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
8e9f6fbd19
Update task task-041
2025-12-05 22:24:37 -08:00
Jeff Emmett
96abf73e48
Create task task-041
2025-12-05 22:17:54 -08:00
Jeff Emmett
776ea78543
Update task task-027
2025-12-05 14:05:24 -08:00
Jeff Emmett
9df6943c30
Create task task-040
2025-12-05 13:58:56 -08:00
Jeff Emmett
698d3a2c71
Update task task-024
2025-12-04 21:35:10 -08:00
Jeff Emmett
e9fef27f82
Update task task-024
2025-12-04 21:29:10 -08:00
Jeff Emmett
79626b0b0e
Update task task-024
2025-12-04 20:01:59 -08:00
Jeff Emmett
a5148e9f38
Update task task-027
2025-12-04 19:53:01 -08:00
Jeff Emmett
4b2e81a35b
Update task task-037
2025-12-04 19:52:54 -08:00
Jeff Emmett
07425ba15b
Update task task-024
2025-12-04 19:52:54 -08:00
Jeff Emmett
f73e223349
Update task task-024
2025-12-04 19:45:28 -08:00
Jeff Emmett
2dd8f90d5b
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
17250fe056
Update task task-027
2025-12-04 19:42:48 -08:00
Jeff Emmett
be08a49e27
Update task task-005
2025-12-04 19:41:18 -08:00
Jeff Emmett
f81994714b
Update task task-039
2025-12-04 19:41:04 -08:00
Jeff Emmett
b01bfb830d
Update task task-039
2025-12-04 19:40:55 -08:00
Jeff Emmett
6012b3dad9
Update task task-039
2025-12-04 18:45:13 -08:00
Jeff Emmett
682a0bf8d9
Update task task-039
2025-12-04 18:35:47 -08:00
Jeff Emmett
74ddadc5cb
Update task task-039
2025-12-04 18:28:48 -08:00
Jeff Emmett
1d591e4648
Update task task-039
2025-12-04 18:21:01 -08:00
Jeff Emmett
b3be1863ae
Create task task-039
2025-12-04 18:12:01 -08:00
Jeff Emmett
3829ae2c52
Update task task-038
2025-12-04 18:00:58 -08:00
Jeff Emmett
b06d55dfb3
Create task task-038
2025-12-04 18:00:52 -08:00
Jeff Emmett
e341c45c55
Update task task-035
2025-12-04 18:00:10 -08:00
Jeff Emmett
90f2f260f5
Update task task-025
2025-12-04 17:53:08 -08:00
Jeff Emmett
00dd109df7
Update task task-032
2025-12-04 17:42:07 -08:00
Jeff Emmett
9b9d4d2ad9
Update task task-024
2025-12-04 17:41:56 -08:00
Jeff Emmett
0190275066
Update task task-037
2025-12-04 17:41:42 -08:00
Jeff Emmett
0ddadb9358
Update task task-037
2025-12-04 17:01:26 -08:00
Jeff Emmett
03d328ab3a
Update task task-025
2025-12-04 16:54:39 -08:00
Jeff Emmett
e76ad650dd
Create task task-037
2025-12-04 16:49:08 -08:00
Jeff Emmett
8f5da80ed9
Update task task-025
2025-12-04 16:46:41 -08:00
Jeff Emmett
d182d25e8c
Update task task-033
2025-12-04 16:46:28 -08:00
Jeff Emmett
15e77532b9
Create task task-036
2025-12-04 16:45:11 -08:00
Jeff Emmett
3603bdd296
Update task task-035
2025-12-04 16:41:01 -08:00
Jeff Emmett
09e3f68363
Update task task-035
2025-12-04 16:33:48 -08:00
Jeff Emmett
639e25d0d4
Update task task-031
2025-12-04 15:42:51 -08:00
Jeff Emmett
981cd5a61b
Update task task-031
2025-12-04 15:37:16 -08:00
Jeff Emmett
e948a90879
Update task task-030
2025-12-04 15:37:02 -08:00
Jeff Emmett
2ca2d33f94
Create task task-035
2025-12-04 15:36:08 -08:00
Jeff Emmett
f14023764a
Update task task-030
2025-12-04 15:30:25 -08:00
Jeff Emmett
0dff1fa04e
Update task task-029
2025-12-04 15:29:05 -08:00
Jeff Emmett
d1641a0132
Create task task-034
2025-12-04 15:24:43 -08:00
Jeff Emmett
f750e05012
Update task task-025
2025-12-04 15:24:32 -08:00
Jeff Emmett
600fc738f9
Update task task-033
2025-12-04 15:23:14 -08:00
Jeff Emmett
db9593b90d
Update task task-029
2025-12-04 15:21:13 -08:00
Jeff Emmett
aadad1bf84
Update task task-033
2025-12-04 15:01:40 -08:00
Jeff Emmett
2c1d4b36a7
Create task task-033
2025-12-04 13:44:43 -08:00