Commit Graph

424 Commits

Author SHA1 Message Date
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 f726bac67a Merge main into feature/open-mapping, resolve conflicts 2025-12-04 06:51:35 -08:00
Jeff Emmett dd4861458d Merge branch 'main' into feature/open-mapping 2025-12-04 06:50:37 -08:00
Jeff Emmett 7ef0533a8f chore: remove open-mapping files (should be on feature branch) 2025-12-04 06:45:27 -08:00
Jeff Emmett 2747113348 feat: add open-mapping collaborative route planning module
Introduces a comprehensive mapping and routing layer for the canvas
that provides advanced route planning capabilities beyond Google Maps.

Built on open-source foundations:
- OpenStreetMap for base map data
- OSRM/Valhalla for routing engines
- MapLibre GL JS for map rendering
- VROOM for route optimization
- Y.js for real-time collaboration

Features planned:
- Multi-path routing with alternatives comparison
- Real-time collaborative waypoint editing
- Layer management (basemaps, overlays, custom GeoJSON)
- Calendar/scheduling integration
- Budget tracking per waypoint/route
- Offline tile caching via PWA

Includes:
- TypeScript types for routes, waypoints, layers
- React hooks for map instance, routing, collaboration
- Service abstractions for multiple routing providers
- Docker Compose config for backend deployment
- Setup script for OSRM data preparation

Backlog task: task-024

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 06:39:26 -08:00
Jeff Emmett 48818816c4 Create task task-024 2025-12-04 06:30:57 -08:00
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 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 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 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 f424d1c481 fix: improve Multmux terminal resize handling
- Add ResizeObserver for reliable resize detection
- Use requestAnimationFrame for smoother fit operations
- Apply full-size styles to xterm elements after fit
- Hide tags to maximize terminal area
- Fix flex layout for proper container sizing
- Add error handling for fit operations during rapid resize

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 03:54:51 -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 53a7e11e4c feat: add custom system prompt support to LLM utility
- Allow passing full system prompts (>100 chars) or personality IDs
- Auto-detect prompt type based on length
- Pass custom prompts through provider chain with retry logic

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 03:16:13 -08:00
Jeff Emmett ee0e34c5bf feat: improve Markdown tool toolbar UX
- Increase default width from 500px to 650px to fit full toolbar
- Add fixed-position toggle button (top-right) that doesn't move between states
- Remove horizontal scrollbar with overflow: hidden
- Add right padding to toolbar for toggle button space
- Tighten toolbar spacing (gap: 1px, padding: 4px 6px)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 03:00:48 -08:00
Jeff Emmett 499534e6da feat: refine Mycelial Intelligence prompt for concise, action-focused responses
- Shorten system prompt to emphasize brevity (1-3 sentences)
- Add explicit "never write code unless asked" instruction
- Include good/bad response examples for clarity
- Focus on suggesting tools and canvas actions over explanations
- Remove verbose identity/capability descriptions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 02:39:05 -08:00
Jeff Emmett b438c33ae2 Replace CLAUDE.md symlink with actual file for Docker compatibility
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 02:29:06 -08:00
Jeff Emmett 411994d9a4 fix: make Markdown tool dark mode reactive to theme changes
- Replace useMemo with useState + MutationObserver for isDarkMode detection
- Add MDXEditor's built-in 'dark-theme' class for proper toolbar/icon theming
- Theme now switches instantly when user toggles dark/light mode

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 22:57:25 -08:00
Jeff Emmett 045a2baef8 Fix Traefik routing - use single service for multiple routers
Traefik cannot auto-link routers when multiple services are defined.
Fixed by using a single service (canvas) that both routers explicitly
reference via the .service label.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 22:52:41 -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 c128d67b9f Fix npm peer dependency conflict with --legacy-peer-deps 2025-12-03 22:06:09 -08:00
Jeff Emmett aa6d160aea Add Docker configuration for self-hosted deployment
- Dockerfile: Multi-stage build with Vite frontend, nginx for serving
- nginx.conf: SPA routing, gzip, security headers
- docker-compose.yml: Traefik labels for staging.jeffemmett.com

Backend sync still uses Cloudflare Workers (jeffemmett-canvas.jeffemmett.workers.dev)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 22:03:25 -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
Jeff Emmett c5784cfd5a feat: standardize tool shapes with pin functionality and UI improvements
- Add pin functionality to ImageGen and VideoGen shapes
- Refactor ImageGen to use StandardizedToolWrapper with tags support
- Update StandardizedToolWrapper: grey tags, fix button overlap, improve header drag
- Fix index validation in AutomergeToTLStore for old format indices
- Update wrangler.toml with latest compatibility date and RunPod endpoint docs
- Refactor VideoGen to use captured editor reference for consistency

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:14:51 -08:00