Commit Graph

9 Commits

Author SHA1 Message Date
Pedram Amini
138ba5aeb4 MAESTRO: Add rate limiting for web interface endpoints
- Install @fastify/rate-limit package
- Configure rate limiting with sensible defaults:
  - 100 requests/minute for GET endpoints
  - 30 requests/minute for POST endpoints (more restrictive)
- Add RateLimitConfig interface for configuration
- Apply rate limiting to all /web/* routes
- Add /web/api/rate-limit endpoint to check current limits
- Skip rate limiting for /health endpoint
- Custom error response with retry-after information
- Support for X-Forwarded-For header for proxied requests
2025-11-27 02:55:51 -06:00
Pedram Amini
0835672ce0 feat: Add session naming with search and improve macOS code signing
- Add user-defined session names stored with Claude session origins
- Display session names in AgentSessionsBrowser with tag icon
- Add "Named only" filter to quickly find named sessions
- Include session names in search across title and content modes
- Sync session names when renaming sessions in the sidebar
- Fix macOS code signing with ad-hoc signatures in release workflow
- Fix electron-builder CLI syntax (--config.extraMetadata)
- Improve lightbox navigation with context-aware image arrays
- Fix GitLogViewer search input focus handling
- Improve AI command prompt display with multi-line clamp

Claude ID: 24a6cdd6-27a7-41e0-af30-679cc2ffe66b
Maestro ID: 5a166b38-b7e9-47f0-a8ff-0113c65f2682
2025-11-27 01:59:49 -06:00
Pedram Amini
94c9bc90a4 fix: Resolve macOS and Linux build failures in release workflow
- Use Python 3.11 for macOS builds (Python 3.12+ removed distutils module needed by node-gyp)
- Add author email to package.json (required for Linux .deb package maintainer field)
2025-11-26 22:38:52 -06:00
Pedram Amini
35cce4d88a MAESTRO: Add Mermaid diagram rendering to Markdown viewers
Integrated the mermaid package to render diagrams in fenced code blocks
marked as `mermaid`. Both FilePreview and Scratchpad components now
support Mermaid diagrams with proper theme detection and DOMPurify
sanitization for security.
2025-11-26 15:58:28 -06:00
Pedram Amini
874df58133 feat: virtualize terminal output and improve shell command handling
- Add react-virtuoso for virtualized log scrolling in TerminalOutput
- Fix shell spawning by removing -i flag to avoid zle/readline errors
- Filter iTerm2/VSCode shell integration sequences from output
- Simplify runCommand session ID handling (no -terminal suffix)
- Add delete command functionality for shell command history
- Enhance FilePreview search with match navigation and count display
- Narrow GitStatusWidget tooltip for better UX
- Memoize LogItem component for render performance
2025-11-25 14:13:36 -06:00
Pedram Amini
6b1f885f1e feat: add advanced git diff viewer with file tabs and syntax highlighting
- Add GitDiffViewer component with tabbed interface for multi-file diffs
- Integrate react-diff-view for proper diff parsing and rendering
- Add keyboard shortcuts: Cmd+Shift+D to open diff, Cmd+Shift+[/] to navigate tabs
- Display addition/deletion statistics per file and overall
- Theme-aware diff colors with proper syntax highlighting
- Parse git diff output into separate file sections with gitDiffParser utility
- Update default shortcuts: Cmd+B → Opt+Cmd+← for sidebar, Cmd+\ → Opt+Cmd+→ for right panel
- Add hover tooltips showing file changes and diff stats in GitStatusWidget
- Improve modal z-index to ensure diff viewer appears above other elements

Dependencies:
- diff@8.0.2 - Core diff parsing and manipulation
- react-diff-view@3.3.2 - React components for rendering diffs
2025-11-24 15:47:15 -06:00
Pedram Amini
4d90f8650e feat: implement dual-process architecture with ANSI terminal rendering
Major architectural improvement where each session now runs two processes
simultaneously (AI agent + terminal), enabling seamless mode switching
without process restarts.

Changes:
- Dual-process model: each session spawns both AI agent and terminal processes
- Session type updated: replaced single `pid` with `aiPid` and `terminalPid`
- Process routing: sessionIds now use `-ai` and `-terminal` suffixes
- Input routing: directs input to correct process based on `inputMode`
- ANSI rendering: terminal output now displays ANSI escape codes with theme-aware colors
- Terminal filtering: bash prompts automatically filtered for cleaner output
- Session restoration: detects and fixes corrupted sessions with mismatched inputMode/toolType
- Agent serialization: strips non-serializable `argBuilder` functions before IPC
- Dependencies: added ansi-to-html and dompurify for secure ANSI rendering

Documentation updates:
- Updated README.md and CLAUDE.md to reflect dual-process architecture
- Added new features to Recent Features section
- Updated tech stack with new dependencies
2025-11-24 01:50:23 -06:00
Pedram Amini
bb3d47617c cleanups and minor fixes 2025-11-23 21:44:14 -06:00
Pedram Amini
ca85ff7c48 UX prototype complete 2025-11-23 19:00:08 -06:00