Jeff Emmett
4306cd6646
feat: add terminal tool with tmux integration
...
Add interactive terminal windows to canvas dashboard with tmux session management and SSH proxy support.
## Features
- **TerminalShape**: Resizable terminal windows on canvas
- **SessionBrowser**: UI for managing tmux sessions (list, attach, create)
- **TerminalContent**: xterm.js-based terminal renderer with WebSocket streaming
- **TerminalProxy**: SSH connection pooling and tmux command execution
- **Collaboration Mode**: Read-only by default, owner can enable shared input
- **Pin to View**: Keep terminal fixed during pan/zoom
## Implementation
Frontend Components:
- src/shapes/TerminalShapeUtil.tsx - Terminal shape definition
- src/tools/TerminalTool.ts - Shape creation tool
- src/components/TerminalContent.tsx - xterm.js integration with WebSocket
- src/components/SessionBrowser.tsx - tmux session management UI
- Registered in Board.tsx and CustomToolbar.tsx
Backend Infrastructure:
- worker/TerminalProxy.ts - SSH proxy with connection pooling
- terminal-config.example.json - Configuration template
Documentation:
- TERMINAL_SPEC.md - Complete feature specification (19 sections)
- TERMINAL_INTEGRATION.md - Backend setup guide with 2 deployment options
## Dependencies
- @xterm/xterm ^5.5.0 - Terminal emulator
- @xterm/addon-fit ^0.10.0 - Responsive sizing
- @xterm/addon-web-links ^0.11.0 - Clickable URLs
- ssh2 ^1.16.0 - SSH client for backend
## Next Steps
See TERMINAL_INTEGRATION.md for:
- Backend WebSocket server setup on DigitalOcean droplet
- SSH configuration and security hardening
- Testing and troubleshooting procedures
## Notes
- Backend implementation requires separate WebSocket server (Cloudflare Workers lack PTY support)
- Frontend components ready but need backend deployed to function
- Mock data shown in SessionBrowser for development
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 20:48:15 -07:00
Jeff Emmett
7e09d22843
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
2cc7c52755
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
dd190824d2
refactor: move wrangler config files to root directory
...
Moved wrangler.toml and wrangler.dev.toml from worker/ to root directory to fix Cloudflare Pages deployment. Updated package.json scripts to reference new config locations. This resolves the "Missing entry-point to Worker script" error during Pages builds.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 19:17:54 -07:00
Jeff Emmett
693d38eb7d
fix: move wrangler.dev.toml to worker/ directory to fix Pages deployment
...
Cloudflare Pages was detecting wrangler.dev.toml at root level and
switching to Worker deployment mode (running 'npx wrangler deploy')
instead of using the configured build command ('npm run build').
Changes:
- Move wrangler.dev.toml to worker/ directory alongside wrangler.toml
- Update all package.json scripts to reference new location
- Simplify .cfignore since all wrangler configs are now in worker/
This allows Pages to use the correct build command and deploy the
static site with proper routing for /contact and /presentations.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 18:43:34 -07:00
Jeff Emmett
8c9eaa1d2b
chore: remove Vercel dependencies
...
- Remove @vercel/analytics package
- Remove vercel CLI package
- Site uses Cloudflare Pages for deployment
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 17:52:32 -07:00
Jeff Emmett
9b7cde262a
fix: move Worker config to separate file for Pages compatibility
...
Move wrangler.toml to worker/wrangler.toml to separate Worker and Pages configurations.
Cloudflare Pages was trying to read wrangler.toml and failing because it contained
Worker-specific configuration (Durable Objects, migrations, etc.) that Pages doesn't support.
Changes:
- Move wrangler.toml → worker/wrangler.toml
- Update deploy scripts to use --config worker/wrangler.toml
- Pages deployment now uses Cloudflare dashboard configuration only
This resolves the deployment error:
"Configuration file cannot contain both 'main' and 'pages_build_output_dir'"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 04:14:40 -07:00
Jeff Emmett
822b979864
update package.json, remove cloudflare worker deployment
2025-11-10 12:46:49 -08:00
Jeff Emmett
f8e4647e1a
everything working in dev
2025-11-10 11:06:13 -08:00
Jeff Emmett
719a4eb918
automerge, obsidian/quartz, transcribe attempt, fix AI APIs
2025-09-21 11:43:06 +02:00
Jeff Emmett
8385e30d25
separate worker and buckets between dev & prod, fix cron job scheduler
2025-09-04 15:12:44 +02:00
Jeff Emmett
1d1b64fe7c
update env vars
2025-09-01 20:47:22 +02:00
Jeff Emmett
0c980f5f48
Merge branch 'auth-webcrypto'
2025-08-25 16:11:46 +02:00
Jeff Emmett
125e565c55
shared piano in progress
2025-08-23 16:07:43 +02:00
Jeff Emmett
5eb5789c23
add in gestures and ctrl+space command tool (TBD add global LLM)
2025-07-29 16:02:51 -04:00
Jeff Emmett
15fa9b8d19
implemented collections and graph layout tool
2025-07-29 14:52:57 -04:00
Jeff Emmett
c5e606e326
auth in progress
2025-04-17 15:51:49 -07:00
Shawn Anderson
4364743555
Revert "update wrangler"
...
This reverts commit b0beefe516 .
2025-04-16 13:05:52 -07:00
Jeff-Emmett
b0beefe516
update wrangler
2025-04-08 15:32:37 -07:00
Jeff-Emmett
b11aecffa4
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
536e1e7a87
update wrangler
2025-02-08 17:57:50 +01:00
Jeff-Emmett
7805a1e961
working llm util
2025-01-23 22:38:27 +01:00
Jeff-Emmett
fdb96b6ae1
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
1783d1b6eb
added scoped propagators (with javascript object on arrow edge to control)
2025-01-21 23:25:28 +07:00
Jeff-Emmett
7b1fe2b803
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
2d562b3e4c
videochat tool update
2024-12-08 18:13:47 -05:00
Jeff Emmett
a9a23e27e3
fix vitejs plugin dependency
2024-12-08 14:01:30 -05:00
Jeff Emmett
cee2bfa336
update package engine
2024-12-08 13:58:40 -05:00
Jeff Emmett
5924b0cc97
update jspdf package types
2024-12-08 13:54:58 -05:00
Jeff Emmett
ce50026cc3
PrintToPDF integration
2024-12-08 13:31:53 -05:00
Jeff Emmett
75c769a774
fix dev script
2024-12-07 22:49:39 -05:00
Jeff Emmett
5d8781462d
npm
2024-12-07 22:48:02 -05:00
Jeff Emmett
b2d6b1599b
bun
2024-12-07 22:23:19 -05:00
Jeff Emmett
c81238c45a
remove deps
2024-12-07 22:15:05 -05:00
Jeff Emmett
78e396d11e
cleanup
2024-12-07 21:42:31 -05:00
Jeff Emmett
b700846a9c
fixing production env
2024-12-07 12:52:20 -05:00
Jeff Emmett
b0a3cd7328
remove copy file creating problems
2024-11-27 12:25:04 +07:00
Jeff Emmett
d1a8407a9b
swapped in daily.co video and removed whereby sdk, finished zoom and copylink except for context menu display
2024-11-27 10:39:33 +07:00
Jeff Emmett
100b88268b
CRDTs working, still finalizing local board state browser storage for offline board access
2024-11-25 16:18:05 +07:00
Jeff Emmett
202971f343
checkpoint before google auth
2024-11-21 17:00:46 +07:00
Jeff Emmett
4e2103aab2
fix mobile embed
2024-10-19 16:20:54 -04:00
Jeff Emmett
0d7ee5889c
fixing video
2024-10-18 20:59:46 -04:00
Jeff Emmett
7e16f6e6b0
hi
2024-10-18 14:43:31 -04:00
Jeff Emmett
900833c06c
Fix live site
2024-10-17 16:21:00 -04:00
Jeff Emmett
9d5d0d6655
big mess of a commit
2024-10-16 11:20:26 -04:00
Jeff Emmett
a6eb2abed0
fixed?
2024-08-29 21:20:33 +02:00
Jeff Emmett
1c38cb1bdb
multiplayer
2024-08-29 21:15:13 +02:00
Jeff Emmett
932c9935d5
multiplayer
2024-08-29 20:20:12 +02:00
Jeff Emmett
d087b61ce5
board commit
2024-08-10 01:43:09 -04:00
Jeff Emmett
9d73295702
oriomimicry
2024-08-09 23:14:58 -04:00