Commit Graph

149 Commits

Author SHA1 Message Date
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
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
Jeff Emmett bb6a930730 Update task task-028 2025-12-04 13:44:04 -08:00
Jeff Emmett f5e665eecc Update task task-028 2025-12-04 13:34:28 -08:00
Jeff Emmett f9c955e275 Update task task-028 2025-12-04 13:24:44 -08:00
Jeff Emmett bca3c5c68d Update task task-028 2025-12-04 13:12:44 -08:00
Jeff Emmett 35659fbfbb Create task task-032 2025-12-04 13:12:10 -08:00
Jeff Emmett 3502081f1d Create task task-031 2025-12-04 13:12:10 -08:00
Jeff Emmett 82d20dd9c7 Create task task-030 2025-12-04 13:12:10 -08:00
Jeff Emmett 30ecacb4ca Create task task-029 2025-12-04 13:12:09 -08:00
Jeff Emmett 48320ac4e2 Create task task-028 2025-12-04 13:12:06 -08:00
Jeff Emmett 7d74bf2ad9 Create task task-027 2025-12-04 13:06:11 -08:00
Jeff Emmett cf083c8b62 Update task task-025 2025-12-04 12:51:27 -08:00
Jeff Emmett 28dfbaf565 Create task task-026 2025-12-04 12:48:09 -08:00
Jeff Emmett f4ad474814 Update task task-025 2025-12-04 12:43:47 -08:00
Jeff Emmett d094c2b398 Update task task-001 2025-12-04 12:35:25 -08:00
Jeff Emmett d5e612ba7c Update task task-025 2025-12-04 12:28:49 -08:00
Jeff Emmett 64d07bdcab Update task task-001 2025-12-04 12:27:04 -08:00
Jeff Emmett 8f2026ef9c Update task task-001 2025-12-04 12:25:53 -08:00
Jeff Emmett 990974f7d0 Create task task-025 2025-12-04 12:25:35 -08:00
Jeff Emmett 48818816c4 Create task task-024 2025-12-04 06:30:57 -08:00
Jeff Emmett 717c7de7ea Merge main, resolve conflict taking remote 2025-12-04 15:04:22 +01:00
Jeff Emmett 12f41ded44 Update backlog tasks from server 2025-12-04 15:02:54 +01:00
Jeff Emmett 5e176f761f Update task task-018 2025-12-04 04:27:37 -08:00
Jeff Emmett 808d9e0d40 Update task task-017 2025-12-04 04:27:35 -08:00
Jeff Emmett 0ed1864ec0 Update task task-001 2025-12-04 04:13:56 -08:00
Jeff Emmett 5c58dc6579 Update task task-001 2025-12-04 04:09:47 -08:00
Jeff Emmett dbb0fb841e chore: clean up duplicate task-016 files
Removed auto-generated duplicates that were overwritten.
Correct tasks are now task-018 and task-019.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 04:04:57 -08:00
Jeff Emmett 4ff3ea5eee Update task task-015 2025-12-04 04:03:00 -08:00
Jeff Emmett d941ea937e Update task task-018 2025-12-04 04:02:57 -08:00
Jeff Emmett 458d933a1d Update task task-017 2025-12-04 04:02:50 -08:00
Jeff Emmett 9c15d7e048 Create task task-019 2025-12-04 04:02:22 -08:00
Jeff Emmett a9cb298979 Create task task-018 2025-12-04 04:02:21 -08:00
Jeff Emmett 99b34ba748 Create task task-016 2025-12-04 04:01:02 -08:00
Jeff Emmett d68883e1ba Create task task-017 2025-12-04 04:00:59 -08:00
Jeff Emmett fcd7e489e5 Create task task-016 2025-12-04 04:00:57 -08:00
Jeff Emmett ff10ea3f5b Create task task-016 2025-12-04 04:00:55 -08:00
Jeff Emmett b06559362a Create task task-015 2025-12-04 04:00:53 -08:00
Jeff Emmett 60c4a6e219 Update task task-014 2025-12-04 03:47:40 -08:00
Jeff Emmett 8eaa87acb6 Create task task-014 2025-12-04 03:46:50 -08:00
Jeff Emmett d605d25e6e Create task task-high.02 2025-12-03 22:35:50 -08:00
Jeff Emmett dbad316f85 Create task task-high.01 2025-12-03 22:34:45 -08:00
Jeff Emmett 846816b1aa Add production Traefik labels for jeffemmett.com
- Add router rules for jeffemmett.com and www.jeffemmett.com
- Keep staging.jeffemmett.com for testing
- Preparing for migration from Cloudflare Pages to Docker deployment

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 22:34:34 -08:00
Jeff Emmett 2aeb2b0c34 Update task task-013 2025-12-03 22:29:46 -08:00
Jeff Emmett 3b0a05d78a Create task task-013 2025-12-03 22:29:30 -08:00
Jeff Emmett 8e77b84807 Update task task-012 2025-12-03 22:29:14 -08:00
Jeff Emmett b183a4f7ea Add backlog tasks from worktrees and feature branches
- task-002: RunPod AI API Integration (worktree: add-runpod-AI-API)
- task-003: MulTmux Web Integration (worktree: mulTmux-webtree)
- task-004: IO Chip Feature (worktree: feature/io-chip)
- task-005: Automerge CRDT Sync
- task-006: Stripe Payment Integration
- task-007: Web3 Integration
- task-008: Audio Recording Feature
- task-009: Web Speech API Transcription
- task-010: Holon Integration
- task-011: Terminal Tool
- task-012: Dark Mode Theme

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 21:56:54 -08:00
Jeff Emmett 696d6f24bb Create task task-001 2025-12-03 15:42:13 -08:00