Jeff Emmett
14624b1372
Update task task-054
2025-12-15 18:40:44 -05:00
Jeff Emmett
0dab90d6e6
Update task task-053
2025-12-15 18:40:44 -05:00
Jeff Emmett
6e40934db3
Create task task-054
2025-12-15 18:40:33 -05:00
Jeff Emmett
e960f5c061
Create task task-053
2025-12-15 18:40:33 -05:00
Jeff Emmett
eb5698343a
Update task task-052
2025-12-15 14:26:10 -05:00
Jeff Emmett
b680cc7637
Update task task-052
2025-12-15 13:32:12 -05:00
Jeff Emmett
73071eb6f7
Update task task-052
2025-12-15 12:45:46 -05:00
Jeff Emmett
9276d85709
Create task task-052
2025-12-15 12:23:11 -05:00
Jeff Emmett
4a7c6e6650
Update task task-051
2025-12-14 23:58:34 -05:00
Jeff Emmett
78450a9e39
Create task task-051
2025-12-14 23:58:28 -05:00
Jeff Emmett
f06c5c7537
Create task task-050
2025-12-14 13:32:20 -05:00
Jeff Emmett
f277aeec12
Update task task-017
2025-12-11 07:15:44 -08:00
Jeff Emmett
9491c6a5c1
Create task task-049
2025-12-10 14:24:07 -08:00
Jeff Emmett
b5e558d35f
Update task task-048
2025-12-10 14:22:25 -08:00
Jeff Emmett
03280bc9cd
Create task task-048
2025-12-10 14:22:15 -08:00
Jeff Emmett
2e9c5d583c
Update task task-047
2025-12-10 10:28:27 -08:00
Jeff Emmett
12e696e3a4
Create task task-047
2025-12-10 10:28:22 -08:00
Jeff Emmett
354dcb7dea
Update task task-046
2025-12-08 01:03:18 -08:00
Jeff Emmett
aa6201e013
Create task task-046
2025-12-08 00:51:43 -08:00
Jeff Emmett
89289dc5c8
Create task task-045
2025-12-08 00:48:02 -08:00
Jeff Emmett
d54ceeb8e3
Update task task-044
2025-12-08 00:48:02 -08:00
Jeff Emmett
34d7fd71a6
Create task task-044
2025-12-07 15:26:04 -08:00
Jeff Emmett
b525b14dda
Update task task-001
2025-12-07 12:50:32 -08:00
Jeff Emmett
d491d3ea72
Update task task-004
2025-12-06 22:43:37 -08:00
Jeff Emmett
494f2fa025
Update task task-024
2025-12-06 22:43:25 -08:00
Jeff Emmett
23c1705d97
Update task task-024
2025-12-06 22:32:53 -08:00
Jeff Emmett
88e4a034e1
Create task task-043
2025-12-06 22:31:37 -08:00
Jeff Emmett
bb3c531513
Update task task-024
2025-12-06 22:21:50 -08:00
Jeff Emmett
623190fb6a
Update task task-024
2025-12-05 23:22:36 -08:00
Jeff Emmett
bb22ee62d2
Update task task-027
2025-12-05 22:55:21 -08:00
Jeff Emmett
e30dd4d1ec
Update task task-041
2025-12-05 22:46:57 -08:00
Jeff Emmett
fad0c8af9a
Create task task-042
2025-12-05 22:46:50 -08:00
Jeff Emmett
633dfcb294
Update task task-024
2025-12-05 22:40:20 -08:00
Jeff Emmett
9b350a9863
Update task task-018
2025-12-05 22:39:25 -08:00
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