Commit Graph

78 Commits

Author SHA1 Message Date
Jeff Emmett 0e812be6b1 fix: properly validate tldraw fractional indexing format
The previous validation allowed "b1" which is invalid because 'b' prefix
expects 2-digit integers (10-99), not 1-digit. This caused ValidationError
when selecting old format content.

Now validates that:
- 'a' prefix: 1 digit (a0-a9)
- 'b' prefix: 2 digits (b10-b99)
- 'c' prefix: 3 digits (c100-c999)
- etc.

Invalid indices are converted to 'a1' as a safe default.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 06:30:50 -08:00
Jeff Emmett 38e0d59c87 fix: accept all valid tldraw fractional indices (b1, c10, etc.)
The index validation was incorrectly rejecting valid tldraw fractional
indices like "b1", "c10", etc. tldraw's fractional indexing uses:
- First letter (a-z) indicates integer part length (a=1 digit, b=2 digits)
- Followed by alphanumeric characters for value and jitter

This was causing ValidationError on production for Embed shapes with
index "b1". Fixed regex in all validation functions to accept any
lowercase letter prefix, not just 'a'.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 04:01:35 -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 5a22786195 fix: sanitize shape indices and improve RunPod error handling
- Add index sanitization in Board.tsx to fix "Expected an index key"
  validation errors when selecting shapes with old format indices
- Improve RunPod error handling to properly display status messages
  (IN_PROGRESS, IN_QUEUE, FAILED) instead of generic errors
- Update wrangler.toml with current compatibility date and document
  RunPod endpoint configuration for reference
- Add sanitizeIndex helper function to convert invalid indices like
  "b1" to valid tldraw fractional indices like "a1"

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 20:26:51 -08:00
Jeff Emmett 9dc0433bf2 fix: register FathomNoteShape in customShapeUtils
The FathomNote shape was being created by FathomMeetingsBrowserShape
but wasn't registered with tldraw, causing "No shape util found for
type FathomNote" errors when loading canvases with Fathom notes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 16:22:23 -07:00
Jeff Emmett 25357871d8 fix: handle corrupted shapes causing "No nearest point found" errors
- Add cleanup routine on editor mount to remove corrupted draw/line shapes
  that have no points/segments (these cause geometry errors)
- Add global error handler to suppress geometry errors from tldraw
  instead of crashing the entire app
- Both fixes ensure old JSON data with corrupted shapes loads gracefully

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 22:21:24 -08:00
Jeff Emmett 3738b9c56b feat: fix Holon shape H3 validation + offline persistence + geometry error handling
Holon Shape Improvements:
- Add H3 cell ID validation before connecting to Holosphere
- Extract coordinates and resolution from H3 cell IDs automatically
- Improve data rendering with proper lens/item structure display
- Add "Generate H3 Cell" button for quick cell ID creation
- Update placeholders and error messages for H3 format
- Fix HolonBrowser validation and placeholder text

Geometry Error Fix:
- Add try-catch in ClickPropagator.eventHandler for shapes with invalid paths
- Add try-catch in CmdK for getShapesAtPoint geometry errors
- Prevents "No nearest point found" crashes from corrupted draw/line shapes

Offline Persistence:
- Add IndexedDB storage adapter for Automerge documents
- Implement document ID mapping for room persistence
- Merge local and server data on reconnection
- Support offline editing with automatic sync

Other Changes:
- Update .env.example with Ollama and RunPod configuration
- Add multmux Docker configuration files
- UI styling improvements for toolbar and share zone
- Remove auto-creation of MycelialIntelligence shape (now permanent UI bar)
- Various shape utility minor fixes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 21:36:02 -08:00
Jeff Emmett 144f5365c1 feat: move Mycelial Intelligence to permanent UI bar + fix ImageGen RunPod API
- Mycelial Intelligence UI refactor:
  - Created permanent floating bar at top of screen (MycelialIntelligenceBar.tsx)
  - Bar stays fixed and doesn't zoom with canvas
  - Collapses when clicking outside
  - Removed from toolbar tool menu
  - Added deprecated shape stub for backwards compatibility with old boards

- ImageGen RunPod fix:
  - Changed from async /run to sync /runsync endpoint
  - Fixed output parsing for output.images array format with base64

- Other updates:
  - Added FocusLockIndicator and UserSettingsModal UI components
  - mulTmux server and shape updates
  - Automerge sync and store improvements
  - Various CSS and UI refinements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 23:57:26 -08:00
Jeff Emmett 30e2219551 feat: add Ollama private AI integration with model selection
- Add Ollama as priority AI provider (FREE, self-hosted)
- Add model selection UI in Settings dialog
- Support for multiple models: Llama 3.1 70B, Devstral, Qwen Coder, etc.
- Ollama server configured at http://159.195.32.209:11434
- Models dropdown shows quality vs speed tradeoffs
- Falls back to RunPod/cloud providers when Ollama unavailable

Models available:
- llama3.1:70b (Best quality, ~7s)
- devstral (Best for coding agents)
- qwen2.5-coder:7b (Fast coding)
- llama3.1:8b (Balanced)
- llama3.2:3b (Fastest)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 14:47:07 -08:00
Jeff Emmett 580598295b Merge branch 'mulTmux-webtree' - add collaborative terminal tool
Combines RunPod AI integration (ImageGen, VideoGen) with mulTmux
collaborative terminal functionality.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 04:13:37 -08:00
Jeff Emmett 7eb60ebcf2 feat: update mulTmux terminal tool and improve shape utilities
Updates to collaborative terminal integration and various shape
improvements across the canvas.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 04:08:08 -08:00
Jeff Emmett d784b732e1 Merge branch 'add-runpod-AI-API' - RunPod AI integration with image and video generation 2025-11-26 03:54:54 -08:00
Jeff Emmett 9a53d65416 feat: add video generation and AI orchestrator client
- Add VideoGenShapeUtil with StandardizedToolWrapper for consistent UI
- Add VideoGenTool for canvas video generation
- Add AI Orchestrator client library for smart routing to RS 8000/RunPod
- Register new shapes and tools in Board.tsx
- Add deployment guides and migration documentation
- Ollama deployed on Netcup RS 8000 at 159.195.32.209:11434

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 02:56:55 -08: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 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 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 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 857e94fe6a prevent coordinate reset 2025-11-10 23:01:35 -08:00
Jeff Emmett 96e3f08a7a fix prod I hope 2025-11-10 20:53:29 -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 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 1c50f2eeb0 final update fix old data conversion 2025-11-10 15:38:53 -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 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 947bd12ef3 update tldraw functions for update 2025-09-04 16:58:15 +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