13 Commits

Author SHA1 Message Date
Pedram Amini
03d157ee54 perf: improve startup and runtime performance
Tier 1 performance optimizations for snappier app experience:

1. Lazy-load SettingsModal in App.tsx
   - SettingsModal is ~2.6K lines, now only loaded when settings opened
   - Wrapped in Suspense with conditional rendering

2. Add manual chunk splitting to vite.config.mts
   - Split vendor chunks: react, xterm, markdown, syntax, mermaid, charts, flow, diff
   - Enables better browser caching and smaller initial bundle
   - Heavy visualization libs (mermaid ~500KB, recharts ~400KB, etc.) now in separate chunks

3. Cache static files in web server (staticRoutes.ts)
   - index.html, manifest.json, sw.js now read once and cached
   - Eliminates blocking sync file reads on every web request
   - Improves web/mobile interface responsiveness
2026-02-02 20:46:25 -06:00
Kayvan Sylvan
965a049400 fix: make dev server port configurable via VITE_PORT environment variable (#234)
## CHANGES

- Extract dev server port and URL into separate variables
- Add radix parameter to `parseInt` for proper number parsing
- Sync port configuration between Vite config and main process
- Use consistent port parsing with explicit base 10 radix
2026-01-24 05:03:09 -06:00
Kayvan Sylvan
2667cbdd77 Developer Experience Improvements (multi-worktree simultaneous development) (#209)
* docs: add git hash display and configurable dev server port

## CHANGES

- Add `VITE_PORT` env variable to configure dev server port
- Display git commit hash in About modal next to version
- Add `__GIT_HASH__` build-time constant to both Vite configs
- Document running multiple Maestro instances with git worktrees
- Update CONTRIBUTING.md with parallel development instructions

* feat: add configurable ports for dev servers

- Allow VITE_PORT to configure main dev server port
- Update main window to load from configurable port
- Enable VITE_WEB_PORT for web interface dev server
- Add note in CONTRIBUTING.md about port configuration
- Log port usage in development mode

* docs: update CONTRIBUTING.md section and fix React DevTools script initialization

## CHANGES

- Rename "Linting" section to "Linting & Pre-commit Hooks" in table of contents
- Move script variable declaration outside conditional block
- Fix React DevTools script initialization order in index.html

* chore: update `.vscode/settings.json` with new markdownlint config

* fix: disable biome linting. Project uses ESLint

* chore: Update baseline-browser-mapping (>2 months old, warning message on "npm run build:web")

* chore: add .vscode/ to gitignore

* chore: fix gitignore to ignore .cscode/* files properly

* fix

* chore: stop tracking .vscode/ files, respect gitignore

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
2026-01-22 12:14:48 -06:00
Pedram Amini
30868daa0d - Added per-session daily stats aggregation for richer usage analytics 📊
- Agent Usage chart now tracks Maestro sessions, not providers 🎯
- Map session IDs to friendly names in charts and legends 🏷️
- Limit Agent Usage chart to top 10 sessions by queries 🔟
- Toggle Agent Usage chart between query counts and time metrics ⏱️
- Auto Run queries now record stats with accurate `source: auto` 🤖
- Interactive queries detect Auto Run state to tag stats correctly 🧠
- Smarter cumulative token normalization avoids inflated first-event context % 🛡️
- About modal shows dev commit hash alongside app version 🔍
- Group chat history summaries now strip markdown for cleaner reading 🧹
2026-01-22 10:24:25 -06:00
Pedram Amini
181a7f436b ## CHANGES
- Installed React DevTools automatically for Electron development debugging bliss 🧩
- Fixed token aggregation: MAX across models to stop double-counting 🎯
- Corrected Claude context math by excluding cumulative cache-read tokens 📉
- Context usage now reflects latest value, not high-water mark history 🧠
- Preserved lifetime stats by archiving deleted sessions instead of purging 🗄️
- Filtered SSH shell-integration junk from stdout for cleaner logs 🧼
- Hardened terminal/ANSI stripping for iTerm2, VSCode, and OSC sequences 🧹
- Prevented UI freezes: truncate huge syntax-highlight previews and warn users ⚠️
- Skipped expensive token counting for >1MB files to keep previews snappy 🚀
- Mobile web now renders AI responses as rich Markdown with copyable code blocks 📱
2026-01-15 23:32:09 -06:00
Pedram Amini
2f3ce11382 ## CHANGES
- Browse Claude sessions from SSH remotes, not just local storage! 🚀
- Agent sessions IPC now accepts `sshRemoteId` across list/read/search calls 🧩
- Session storage interface upgraded with optional SSH config everywhere 🔐
- Claude session storage reads directories/files/stats remotely via SSH 🛰️
- Session paths now resolve correctly for remote projects using POSIX rules 🧭
- Marketplace playbook imports can write directly to SSH remote Auto Run 📦
- Remote playbook imports gracefully fall back to local when missing/disabled 🪂
- Marketplace modal adds rich keyboard navigation: Cmd+F, paging, home/end ⌨️
- Main panel resize logic ignores bad measurements to prevent UI thrash 🧱
- Production builds now drop all `console.*` (plus debugger) for cleanliness 🧼
2026-01-01 07:16:23 -06:00
Pedram Amini
ec9db781f2 ## CHANGES
- Forced SSH TTY allocation (`-tt` + `RequestTTY=force`) to stop Claude hangs 🧠
- Added dedicated tests guarding critical SSH TTY behavior forever 🛡️
- Deferred remote Git-repo detection until SSH connects, then fetch refs 🔌
- Introduced hourly stats aggregation (`byHour`) for richer analytics 📈
- Shipped new Peak Hours dashboard chart with count/duration toggle 
- Reworked Usage Dashboard layout, adding Peak Hours section navigation 🧭
- Updated Execution Queue UI to “Current Agent / All Agents” wording 🤖
- Clarified queue messaging and processing semantics “per agent” for safety 🔒
- Added “Create New Group” action inside Session context menu submenu 📁
- Enabled dev-only why-did-you-render via Vite alias, excluded from prod 🚀
2025-12-31 19:28:51 -06:00
Pedram Amini
74f6c08f01 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Revamped README with power features, screenshots, and crisp quick-start flow 🚀
- Added prominent User Docs badge linking to full documentation hub 📚
- Documented Auto Run playbooks for batch checklist execution and history tracking 
- Highlighted Git worktrees for parallel agents on isolated branches instantly 🌿
- Showcased Group Chat with moderator AI for coordinated multi-agent discussions 🗣️
- Introduced Remote Access docs for phone control via QR and tunnels 📱
- Documented `maestro-cli` for headless automation with JSONL scripting support 🧰
- Polished Achievement Card visuals: real GitHub logo and brighter trophies 🏆
- Improved Auto Run summaries by avoiding filename-extension sentence splitting ✍️
- Build and dev tweaks: disable npm rebuild and stop watching without HMR 🛠️
2025-12-28 04:04:27 -06:00
Pedram Amini
cebaf5019c wip 2025-12-20 04:34:54 -06:00
Pedram Amini
3f1788d196 perf: Optimize AI input responsiveness and production builds
- Fix AI input lag by using local state for typing, syncing to session
  state only on blur/submit instead of every keystroke
- Add esbuild.drop to strip console.* and debugger in production builds
- Memoize handleInputFocus and handleSessionClick callbacks in MainPanel
- Simplify textarea auto-grow by removing unnecessary RAF scheduling
- Fix AgentSessionsBrowser by changing button to div (nested button issue)
- Restore legacy history filter fallback for entries without sessionId

Claude ID: 33f0f964-5b7f-4240-9e40-8eddcecafe8e
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
2025-12-01 09:38:28 -06:00
Pedram Amini
9aa9982feb build fix 2025-11-27 00:57:26 -06:00
Pedram Amini
0a09e19b0c sync version number to tag/release 2025-11-26 23:31:07 -06:00
Pedram Amini
ca85ff7c48 UX prototype complete 2025-11-23 19:00:08 -06:00