Commit Graph

342 Commits

Author SHA1 Message Date
Jeff Emmett 6a14361838 fix: migrate geo shapes with props.text during Automerge load
Geo shapes saved before the tldraw schema change have props.text which is
no longer valid. This causes ValidationError on page reload when shapes are
loaded from Automerge:

  "ValidationError: At shape(type = geo).props.text: Unexpected property"

The migration logic was only in JSON import (CustomMainMenu.tsx), but shapes
loading from Automerge also need migration.

This fix adds the props.text → props.richText migration to the sanitizeRecord
function in AutomergeToTLStore.ts, ensuring geo shapes are properly migrated
when loaded from Automerge, matching the behavior during JSON import.

The original text is preserved in meta.text for backward compatibility with
search and other features that reference it.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 16:25:58 -07:00
Jeff Emmett e69fcad457 fix: preserve coordinates and convert geo shape text during JSON import
- Fix coordinate collapse bug where shapes were resetting to (0,0)
- Convert geo shape props.text to props.richText (tldraw schema change)
- Preserve text in meta.text for backward compatibility
- Add .nvmrc to enforce Node 20
- Update package.json to require Node >=20.0.0
- Add debug logging for sync and import operations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 16:14:23 -07:00
Jeff Emmett ed5628029d fix: use useMemo instead of useState for repo/adapter initialization
Fixed TypeScript error by changing from useState to useMemo for repo and
adapter initialization. This properly exposes the repo and adapter objects
instead of returning a state setter function.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 22:10:55 -07:00
Jeff Emmett f1acd09a4e fix: wait for network adapter to be ready before creating document
Added await for adapter.whenReady() to ensure WebSocket connection is
established before creating the Automerge document. This should enable
the Automerge Repo to properly send binary sync messages when document
changes occur.

Changes:
- Extract adapter from repo initialization to access it
- Wait for adapter.whenReady() before creating document
- Update useEffect dependencies to include adapter and workerUrl

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 22:07:24 -07:00
Jeff Emmett 06aa537e32 fix: restore working Automerge sync from pre-Cloudflare version
Reverted to the proven approach from commit 4dd8b2f where each client
creates its own Automerge document with repo.create(). The Automerge
binary sync protocol handles synchronization between clients through
the WebSocket network adapter, without requiring shared document IDs.

Key changes:
- Each client calls repo.create() to get a unique document
- Initial content loaded from server via HTTP/R2
- Binary sync messages broadcast between clients keep documents in sync
- No need for shared document ID storage/retrieval

This fixes the "Document unavailable" errors and enables real-time
collaboration across multiple board instances.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 21:59:59 -07:00
Jeff Emmett 99466d8c9d fix: simplify Automerge document creation for concurrent access
Removed document ID storage/retrieval logic that was causing "Document unavailable"
errors. Each client now creates its own Automerge document handle and syncs content
via WebSocket binary protocol. This allows multiple boards to load the same room
simultaneously without conflicts.

- Removed /room/:roomId/documentId endpoints usage
- Each client creates document with repo.create()
- Content syncs via Automerge's native binary sync protocol
- Initial content still loaded from server via HTTP

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 21:40:15 -07:00
Jeff Emmett 39d96db3cf fix: add await to repo.find() call
repo.find() returns a Promise<DocHandle>, not DocHandle directly.
Added missing await keyword to fix TypeScript build error.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 21:26:42 -07:00
Jeff Emmett c13c0d18e1 fix: handle concurrent Automerge document access with try-catch
When multiple clients try to load the same room simultaneously, repo.find()
throws "Document unavailable" error if the document isn't in the repo yet.
Wrapped repo.find() in try-catch to create a new handle when document isn't
available, allowing multiple boards to load the same page concurrently.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 21:15:56 -07:00
Jeff Emmett 907b96d480 fix: use proper Automerge URL format for repo.find()
The issue was that repo.find() was creating a NEW document instead of
waiting for the existing one to sync from the network.

Changes:
- Use 'automerge:{documentId}' URL format for repo.find()
- Remove try-catch that was creating new documents
- Let repo.find() properly wait for network sync

This ensures all clients use the SAME document ID and can sync in real-time.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 21:00:18 -07:00
Jeff Emmett afa8d8498e fix: handle Document unavailable error with try-catch in repo.find()
When repo.find() is called for a document that exists on the server but not
locally, it throws 'Document unavailable' error. This fix:

- Wraps repo.find() in try-catch block
- Falls back to creating new handle if document not found
- Allows sync adapter to merge with server state via network

This handles the case where clients join existing rooms and need to sync
documents from the network.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 20:33:31 -07:00
Jeff Emmett e96e6480fe refactor: remove OddJS dependency and fix Automerge sync
Major Changes:
- Fix Automerge "Document unavailable" error by awaiting repo.find()
- Remove @oddjs/odd package and all related dependencies (205 packages)
- Remove location sharing features (OddJS filesystem-dependent)
- Simplify auth to use only CryptoAuthService (WebCryptoAPI-based)

Auth System Changes:
- Refactor AuthService to remove OddJS filesystem integration
- Update AuthContext to remove FileSystem references
- Delete unused auth files (account.ts, backup.ts, linking.ts)
- Delete unused auth components (Register.tsx, LinkDevice.tsx)

Location Features Removed:
- Delete all location components and routes
- Remove LocationShareShape from shape registry
- Clean up location references across codebase

Documentation Updates:
- Update WEBCRYPTO_AUTH.md to remove OddJS references
- Correct component names (CryptoLogin → CryptID)
- Update file structure and dependencies
- Fix Automerge README WebSocket path documentation

Build System:
- Successfully builds without OddJS dependencies
- All TypeScript errors resolved
- Production bundle size optimized

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 20:19:02 -07:00
Jeff Emmett e1f4e83383 fix: implement real-time Automerge sync across clients
- Add document ID coordination via server to ensure all clients sync to same document
- Add new endpoints GET/POST /room/:roomId/documentId for document ID management
- Store automergeDocumentId in Durable Object storage
- Add enhanced logging to CloudflareAdapter send() method for debugging
- Add sharePolicy to Automerge Repo to enable document sharing
- Fix TypeScript errors in useAutomergeSyncRepo

This fixes the issue where each client was creating its own Automerge document
with a unique ID, preventing real-time sync. Now all clients in a room use the
same document ID, enabling proper real-time collaboration.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 19:45:36 -07:00
Jeff Emmett 080e5a3b87 feat: add RunPod AI integration with image generation and enhanced LLM support
Add comprehensive RunPod AI API integration including:
- New runpodApi.ts client for RunPod endpoint communication
- Image generation tool and shape utilities for AI-generated images
- Enhanced LLM utilities with RunPod support for text generation
- Updated Whisper transcription with improved error handling
- UI components for image generation tool
- Setup and testing documentation

This commit preserves work-in-progress RunPod integration before switching branches.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 16:14:39 -07:00
Jeff Emmett 5878579980 feat: rebrand CryptoLogin to CryptID
- Rename CryptoLogin component to CryptID
- Update all imports and usages across the codebase
- Display 'CryptID: username' in user dropdown menu
- Update UI text to reference CryptID branding
- Update Profile component header to show CryptID
- Update component comments and documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 14:09:23 -07:00
Jeff Emmett c972526f45 chore: remove Vercel dependencies and config files
- Remove @vercel/analytics dependency and usage
- Remove vercel CLI dependency
- Delete vercel.json configuration file
- Delete .vercel cache directory
- Site now fully configured for Cloudflare Pages deployment

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 13:35:50 -07:00
Jeff Emmett 87a093f125 fix: use repo.create() instead of invalid document ID format
Change from repo.find('automerge:patricia') to repo.create() because
Automerge requires proper UUID-based document IDs, not arbitrary strings.

Each client creates a local document, loads initial data from server,
and syncs via WebSocket. The server syncs documents by room ID, not
by Automerge document ID.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 05:13:37 -07:00
Jeff Emmett cb6d2ba980 fix: add type cast for currentDoc to fix TypeScript error
Cast handle.doc() to any to fix TypeScript error about missing 'store' property.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 05:04:54 -07:00
Jeff Emmett 44df13119d fix: await repo.find() to fix TypeScript build errors
repo.find() returns a Promise<DocHandle>, so we need to await it.
This fixes the TypeScript compilation errors in the build.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 05:00:04 -07:00
Jeff Emmett ffebccd320 fix: enable production logging for R2 persistence debugging
Add console logs in production to debug why shapes aren't being saved to R2.
This will help identify if saves are:
- Being triggered
- Being deferred/skipped
- Successfully completing

Logs added:
- 💾 When persistence starts
-  When persistence succeeds
- 🔍 When shape patches are detected
- 🚫 When saves are skipped (ephemeral/pinned changes)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 04:56:32 -07:00
Jeff Emmett 11c61a3d1c fix: remove ImageGen references to fix build
Remove ImageGenShape import and references from useAutomergeStoreV2.ts
to fix TypeScript build error. ImageGen feature files are not yet committed.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 04:17:49 -07:00
Jeff Emmett 4dd8b2f444 fix: enable real-time multiplayer sync for automerge
Add manual sync triggering to broadcast document changes to other peers in real-time.
The Automerge Repo wasn't auto-broadcasting because the WebSocket setup doesn't use peer discovery.

Changes:
- Add triggerSync() helper function to manually trigger sync broadcasts
- Call triggerSync() after all document changes (position updates, eraser changes, regular changes)
- Pass Automerge document to patch handlers to prevent coordinate loss
- Add ImageGenShape support to schema

This fixes the issue where changes were being saved to Automerge locally but not
broadcast to other connected clients until page reload.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 04:00:31 -07:00
Jeff Emmett fa6a9f4371 fix custom shape type validation errors
Add case normalization for custom shape types to prevent validation errors when loading shapes with lowercase type names (e.g., "chatBox" → "ChatBox"). The TLDraw schema expects PascalCase type names for custom shapes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 03:13:07 -07:00
Jeff Emmett 298183cd33 prevent coordinate collapse on reload
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 03:03:39 -07:00
Jeff Emmett 783a8702f9 update obsidian shape deployment 2025-11-12 16:23:08 -08:00
Jeff Emmett 03c834779b fix cloudflare deployment glitches 2025-11-11 22:47:36 -08:00
Jeff Emmett 6464440139 deployment fix 2025-11-11 22:42:38 -08:00
Jeff Emmett 453a190768 update cloudflare errors 2025-11-11 22:38:24 -08:00
Jeff Emmett de59c4a726 pin object, fix fathom, and a bunch of other things 2025-11-11 22:32:36 -08:00
Jeff Emmett 356f7b4705 coordinate fix 2025-11-11 01:08:55 -08:00
Jeff Emmett 5b40c8e862 fix coords 2025-11-11 00:57:45 -08:00
Jeff Emmett 6a70c5b538 remove coordinate reset 2025-11-11 00:53:55 -08:00
Jeff Emmett 8f00732f54 fix coordinates 2025-11-10 23:54:54 -08:00
Jeff Emmett 8e3db10245 preserve coordinates 2025-11-10 23:51:53 -08:00
Jeff Emmett 8bcbf082c5 shape rendering on prod 2025-11-10 23:36:12 -08:00
Jeff Emmett eb4dafaf9b fix coordinates 2025-11-10 23:25:44 -08:00
Jeff Emmett 0bea258d39 preserve coordinates 2025-11-10 23:17:16 -08:00
Jeff Emmett 7b15c9af4a fix coordinates 2025-11-10 23:04:52 -08:00
Jeff Emmett 857e94fe6a prevent coordinate reset 2025-11-10 23:01:35 -08:00
Jeff Emmett 5a8bfa41d2 update x & y coordinates 2025-11-10 22:42:52 -08:00
Jeff Emmett d090142a70 fix prod 2025-11-10 22:27:21 -08:00
Jeff Emmett 96e3f08a7a fix prod I hope 2025-11-10 20:53:29 -08:00
Jeff Emmett e27dacc610 update dev and prod shape render 2025-11-10 20:16:45 -08:00
Jeff Emmett 333159b0da fix prod shape render 2025-11-10 20:05:07 -08:00
Jeff Emmett d64ba711b8 update prod shape render 2025-11-10 19:54:20 -08:00
Jeff Emmett 7151cc1419 update prod 2025-11-10 19:44:49 -08:00
Jeff Emmett d006fd4fb1 fix shape rendering in prod 2025-11-10 19:42:06 -08:00
Jeff Emmett be6b52a07f fix shape deployment in prod 2025-11-10 19:26:44 -08:00
Jeff Emmett f4e962fc45 fix prod deployment 2025-11-10 19:23:15 -08:00
Jeff Emmett 1b36b19c4d update for prod 2025-11-10 19:21:22 -08:00
Jeff Emmett d65c37c405 update production shape loading 2025-11-10 19:15:36 -08:00
Jeff Emmett ae90f4943d updates to production 2025-11-10 18:57:04 -08:00
Jeff Emmett face742eef fix cloudflare 2025-11-10 18:48:39 -08:00
Jeff Emmett 664d0ca9c5 update for shape rendering in prod 2025-11-10 18:43:52 -08:00
Jeff Emmett c44056cf79 fix production automerge 2025-11-10 18:29:19 -08:00
Jeff Emmett 061b3871fe fix prod 2025-11-10 18:10:55 -08:00
Jeff Emmett 59562e07c5 final automerge errors on cloudflare 2025-11-10 18:01:36 -08:00
Jeff Emmett 7584ea7a11 fix final bugs for automerge 2025-11-10 17:58:23 -08:00
Jeff Emmett 2d0ae80e50 shape viewing bug fixed 2025-11-10 15:57:17 -08:00
Jeff Emmett e2fcd755ad update automerge bug fix 2025-11-10 15:41:56 -08:00
Jeff Emmett 1c50f2eeb0 final update fix old data conversion 2025-11-10 15:38:53 -08:00
Jeff Emmett f250eb3145 update automerge 2025-11-10 14:44:13 -08:00
Jeff Emmett d2fd1c0fac fix typescript errors 2025-11-10 14:36:30 -08:00
Jeff Emmett 55f10aeb2b update to prod 2025-11-10 14:24:17 -08:00
Jeff Emmett 6a870f8c67 update worker 2025-11-10 14:18:23 -08:00
Jeff Emmett 7d8bd335fc update to fix deployment 2025-11-10 13:41:17 -08:00
Jeff Emmett abfbed50e1 final updates to Automerge conversion 2025-11-10 13:34:55 -08:00
Jeff Emmett 8a45c16b5c update package.json, remove cloudflare worker deployment 2025-11-10 12:46:49 -08:00
Jeff Emmett 4894f1e439 latest update to fix cloudflare 2025-11-10 11:51:57 -08:00
Jeff Emmett 256dfa2110 more updates to get vercel and cloudflare working 2025-11-10 11:48:33 -08:00
Jeff Emmett 3df4b5530b update to fix vercel and cloudflare errors 2025-11-10 11:30:33 -08:00
Jeff Emmett 3c72aecb80 update more typescript errors for vercel 2025-11-10 11:22:32 -08:00
Jeff Emmett 8d5b41f530 update typescript errors for vercel 2025-11-10 11:19:24 -08:00
Jeff Emmett e727deea19 everything working in dev 2025-11-10 11:06:13 -08:00
Jeff Emmett afb92b80a7 Update presentations page to have sub-links 2025-10-08 14:19:02 -04:00
Jeff Emmett a2e9893480 automerge, obsidian/quartz, transcribe attempt, fix AI APIs 2025-09-21 11:43:06 +02:00
Jeff Emmett 5d8168d9b9 fixed shared piano 2025-09-04 17:54:39 +02:00
Jeff Emmett 947bd12ef3 update tldraw functions for update 2025-09-04 16:58:15 +02:00
Jeff Emmett 5fe28ba7f8 update R2 storage to JSON format 2025-09-04 16:26:35 +02:00
Jeff Emmett 6cb70b4da3 update tldraw functions 2025-09-04 15:30:57 +02:00
Jeff Emmett 38566e1a75 separate worker and buckets between dev & prod, fix cron job scheduler 2025-09-04 15:12:44 +02:00
Jeff Emmett ab32ef62ed fix worker url in env vars for prod 2025-09-02 14:28:11 +02:00
Jeff Emmett 9342249591 debug videochat 2025-09-02 13:26:57 +02:00
Jeff Emmett ce0ae690fc fix video chat in prod env vars 2025-09-02 00:43:57 +02:00
Jeff Emmett 0599cc149c fix zoom & videochat 2025-09-01 09:44:52 +02:00
Jeff Emmett 9baa5968c0 fix vercel errors 2025-08-25 23:46:37 +02:00
Jeff Emmett dfd6e03ca2 Merge branch 'auth-webcrypto' 2025-08-25 16:11:46 +02:00
Jeff Emmett 59444e5f03 fix vercel deployment errors 2025-08-25 07:14:21 +02:00
Jeff Emmett 18690c7129 user auth via webcryptoapi, starred boards, dashboard view 2025-08-25 06:48:47 +02:00
Jeff Emmett 2db320a007 shared piano in progress 2025-08-23 16:07:43 +02:00
Jeff Emmett af2a93aa1a fix gesturetool 2025-07-29 23:01:37 -04:00
Jeff Emmett 6c7bf3b208 fix gesturetool for vercel 2025-07-29 22:49:27 -04:00
Jeff Emmett af52e6465d working auth login and starred boards on dashboard! 2025-07-29 22:04:14 -04:00
Jeff Emmett 71a6b29165 add in gestures and ctrl+space command tool (TBD add global LLM) 2025-07-29 16:02:51 -04:00
Jeff Emmett bc831c7516 implemented collections and graph layout tool 2025-07-29 14:52:57 -04:00
Jeff Emmett ea66699783 update spelling 2025-07-29 12:46:23 -04:00
Jeff Emmett 75d5829596 update presentations and added resilience subpage 2025-07-29 12:41:15 -04:00
Jeff Emmett e2f66a786d update presentations page 2025-07-27 17:52:23 -04:00
Jeff Emmett e2cec8a04a update contact page with calendar booking & added presentations 2025-07-27 16:07:44 -04:00
Jeff Emmett 39294a2f0c auth in progress 2025-04-17 15:51:49 -07:00
Shawn Anderson ef0ec789ab Revert "updated website copy, installed locked-view function (coordinates break when locked tho), trying to get video transcripts working"
This reverts commit db4ae0c766.
2025-04-16 13:05:57 -07:00
Shawn Anderson 1dcb1823e6 Revert "Update Daily API key in production env"
This reverts commit a4c258a1a3.
2025-04-16 13:05:55 -07:00
Shawn Anderson 2ce19aa4cb Revert "update website main page and repo readme, add scroll bar to markdown tool"
This reverts commit a6b9f8430f.
2025-04-16 13:05:50 -07:00
Jeff Emmett a6b9f8430f update website main page and repo readme, add scroll bar to markdown tool 2025-04-15 22:35:02 -07:00
Jeff-Emmett a4c258a1a3 Update Daily API key in production env 2025-04-08 14:39:29 -07:00
Jeff-Emmett db4ae0c766 updated website copy, installed locked-view function (coordinates break when locked tho), trying to get video transcripts working 2025-04-08 14:32:15 -07:00
Jeff-Emmett 12d26d0643 Fixed asset upload CORS for broken links, updated markdown tool, changed keyboard shortcuts & menu ordering 2025-03-19 17:24:22 -07:00
Jeff-Emmett b9addbe417 Markdown tool working, console log cleanup 2025-03-15 14:57:57 -07:00
Jeff-Emmett 4e83a577f0 lock & unlock shapes, clean up overrides & context menu, make embed element easier to interact with 2025-03-15 01:03:55 -07:00
Jeff-Emmett 36a8dfe853 hide broadcast from context menu 2025-03-05 18:06:22 -05:00
Jeff-Emmett 65bf72537f camera initialization fixed 2025-02-26 09:48:17 -05:00
Jeff-Emmett f57db13887 prompt shape working, fix indicator & scroll later 2025-02-25 17:53:36 -05:00
Jeff-Emmett 08b63c5a12 LLM prompt tool operational, fixed keyboard shortcut conflicts 2025-02-25 15:48:29 -05:00
Jeff-Emmett be011f25f6 changed zoom shortcut to ctrl+up & ctrl+down, savetoPDF to alt+s 2025-02-25 15:24:41 -05:00
Jeff-Emmett bfc8afd679 Fix context menu with defaults 2025-02-25 11:38:53 -05:00
Jeff-Emmett f22f5b1a6c video fix 2025-02-16 11:35:05 +01:00
Jeff-Emmett 4380a7bdd6 working video calls 2025-02-13 20:38:01 +01:00
Jeff-Emmett 6d0ef158a4 deploy embed minimize function 2025-02-12 18:20:33 +01:00
Jeff-Emmett 1fcfddaf07 Fix localstorage error on worker, promptshape 2025-02-11 14:35:22 +01:00
Jeff-Emmett f739b1f78a fix llm prompt for mobile 2025-02-08 20:29:06 +01:00
Jeff-Emmett 62fb60420b Fixed API key button placement & status update 2025-02-08 19:30:20 +01:00
Jeff-Emmett 795c44c6c0 reduce file size for savetoPDF 2025-02-08 19:09:20 +01:00
Jeff-Emmett c2abfcd3e3 Clean up tool names 2025-01-28 16:38:41 +01:00
Jeff-Emmett 8664e847cc llm edges 2025-01-23 22:49:55 +01:00
Jeff-Emmett ff95f95f2f working llm util 2025-01-23 22:38:27 +01:00
Jeff-Emmett a0e73b0f9e slidedeck shape installed, still minor difficulty in keyboard arrow transition between slides (last slide + wraparound) 2025-01-23 14:14:04 +01:00
Jeff-Emmett 2590a86352 added scoped propagators (with javascript object on arrow edge to control) 2025-01-21 23:25:28 +07:00
Jeff-Emmett 3d51785ecd expand board zoom & fixed embedshape focus on mobile 2025-01-18 01:57:54 +07:00
Jeff-Emmett e193789546 implemented basic board text search function, added double click to zoom 2025-01-03 10:52:04 +07:00
Jeff-Emmett 6f5ee6a673 removed padding from printtoPDF, hid mycrozine template tool (need to fix sync), cleaned up redundancies between app & board, installed marked npm package, hid markdown tool (need to fix styles) 2025-01-03 09:42:53 +07:00
Jeff-Emmett eaab214e54 updated EmbedShape to default to drag rather than interact when selected 2024-12-29 22:50:20 +07:00
Jeff Emmett dd66b20819 add debug logging for videochat render 2024-12-16 17:12:40 -05:00
Jeff Emmett 5a876ab13c update Daily API in worker, add debug 2024-12-16 17:00:15 -05:00
Jeff Emmett e0684a5520 added TODO for broadcast, fixed videochat 2024-12-16 16:36:36 -05:00
Jeff Emmett d6ab873ec9 fix local IP for dev, fix broadcast view 2024-12-14 14:12:31 -05:00
Jeff Emmett a9dd23d51b adding broadcast controls for view follow, and shared iframe state while broadcasting (attempt) 2024-12-12 23:37:14 -05:00
Jeff Emmett 5351482354 adding selected object resizing with ctrl+arrows 2024-12-12 23:22:35 -05:00
Jeff Emmett 2cbcdf2e01 default embed proportions 2024-12-12 23:00:26 -05:00
Jeff Emmett 1e688c8aa5 remove markdown element from menu until fixed. Added copy link & open in new tab options in embedded element URL 2024-12-12 20:45:37 -05:00
Jeff Emmett d8bc094b45 create frame shortcut dropdown on context menu 2024-12-12 20:02:56 -05:00
Jeff Emmett 93f8122420 leave drag selected object for later 2024-12-12 19:45:39 -05:00
Jeff Emmett a784ad4f41 adding arrow key movements and drag functionality on selected elements 2024-12-12 18:05:35 -05:00
Jeff Emmett d3f7f731a1 added URL below embedded elements 2024-12-12 17:09:00 -05:00
Jeff Emmett 98066f7978 fix map embed 2024-12-10 12:28:39 -05:00
Jeff Emmett 647d89a70c updated medium embeds to link out to new tab 2024-12-09 20:19:35 -05:00
Jeff Emmett 7a1093b12a fixed map embeds to include directions, substack embeds, twitter embeds 2024-12-09 18:55:38 -05:00
Jeff Emmett 2d763c669a videochat working 2024-12-09 03:42:44 -05:00
Jeff Emmett baf1efce43 fix domain url 2024-12-08 23:14:22 -05:00
Jeff Emmett e947d124ce logging bugs 2024-12-08 20:55:09 -05:00
Jeff Emmett a70cf846c3 turn off cloud recording due to plan 2024-12-08 20:52:17 -05:00
Jeff Emmett dc3bcdaad6 video debug 2024-12-08 20:47:39 -05:00