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
Jeff Emmett
abca1ea9d2
Update task task-039
2025-12-04 18:45:13 -08:00
Jeff Emmett
bc1d0421c6
Update task task-039
2025-12-04 18:35:47 -08:00
Jeff Emmett
09de6438c0
Update task task-039
2025-12-04 18:28:48 -08:00
Jeff Emmett
6937bf09b8
Update task task-039
2025-12-04 18:21:01 -08:00
Jeff Emmett
b3a7ff2b0c
Create task task-039
2025-12-04 18:12:01 -08:00
Jeff Emmett
c0f30ea29a
Update task task-038
2025-12-04 18:00:58 -08:00
Jeff Emmett
f28bfd9340
Create task task-038
2025-12-04 18:00:52 -08:00
Jeff Emmett
4da7d4b1e7
Update task task-035
2025-12-04 18:00:10 -08:00
Jeff Emmett
815fc04366
Update task task-025
2025-12-04 17:53:08 -08:00
Jeff Emmett
d279daa9eb
Update task task-032
2025-12-04 17:42:07 -08:00
Jeff Emmett
dcd1ed326b
Update task task-024
2025-12-04 17:41:56 -08:00
Jeff Emmett
565e14ad34
Update task task-037
2025-12-04 17:41:42 -08:00
Jeff Emmett
641a3467a3
Update task task-037
2025-12-04 17:01:26 -08:00
Jeff Emmett
4416286087
Update task task-025
2025-12-04 16:54:39 -08:00
Jeff Emmett
6d963f62f1
Create task task-037
2025-12-04 16:49:08 -08:00
Jeff Emmett
58671a1c0b
Update task task-025
2025-12-04 16:46:41 -08:00
Jeff Emmett
069ba1510c
Update task task-033
2025-12-04 16:46:28 -08:00
Jeff Emmett
c1acf34ccd
Create task task-036
2025-12-04 16:45:11 -08:00
Jeff Emmett
06c9e48999
Update task task-035
2025-12-04 16:41:01 -08:00
Jeff Emmett
2b5a1736d7
Update task task-035
2025-12-04 16:33:48 -08:00
Jeff Emmett
35b5d22c4e
Update task task-031
2025-12-04 15:42:51 -08:00
Jeff Emmett
cd9b36dc21
Update task task-031
2025-12-04 15:37:16 -08:00
Jeff Emmett
47bd1044a1
Update task task-030
2025-12-04 15:37:02 -08:00
Jeff Emmett
d9fac31a7a
Create task task-035
2025-12-04 15:36:08 -08:00
Jeff Emmett
da9467cdac
Update task task-030
2025-12-04 15:30:25 -08:00
Jeff Emmett
686dc7c705
Update task task-029
2025-12-04 15:29:05 -08:00
Jeff Emmett
eadef4ee36
Create task task-034
2025-12-04 15:24:43 -08:00
Jeff Emmett
c42b986e3d
Update task task-025
2025-12-04 15:24:32 -08:00
Jeff Emmett
985221d848
Update task task-033
2025-12-04 15:23:14 -08:00
Jeff Emmett
377b8f0bca
Update task task-029
2025-12-04 15:21:13 -08:00