Commit Graph

25 Commits

Author SHA1 Message Date
Pedram Amini
dca51447fd fix(ssh): stabilize SSH remote execution across wizard, file browser, and process manager
- Added extensive DEBUG-level logging for SSH command execution, spawn details, exit codes, and configuration flow
- Improved Wizard SSH remote support:
  - Debounced remote directory validation to reduce excessive SSH calls
  - Fixed git.isRepo() to correctly pass remoteCwd for remote checks
  - Persisted SSH config in SerializableWizardState and validated directories over SSH
  - Ensured ConversationScreen and ConversationSession consistently pass SSH config for remote agent execution
  - Fixed "agent not available" errors by forwarding stdin via exec and enabling stream-json mode for large prompts
- Enhanced remote agent execution logic in ProcessManager with stdin streaming, exec-based forwarding, and useStdin flag
- Improved SSH file browser behavior:
  - Added resolveSshPath() to locate SSH binaries on Windows (Electron spawn PATH issue)
  - Corrected getSshContext() handling of enabled/remoteId states
  - Ensured synopsis background tasks run via SSH instead of local paths
- Added Windows development improvements: dev:win script and PowerShell launcher for separate renderer/main terminals
- Added additional SSH directory debugging logs for remote-fs and wizard flows

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:48:41 +00:00
chr1syy
ab7bf27d03 fix(ssh): stabilize and complete SSH remote execution support across wizard, IPC, and agent detection
- Added full SSH remote support to the wizard, including propagation of SSH config through all phases
- Ensured SSH config flows correctly through IPC bridge (renderer → preload → main)
- Improved agent detection with optional sshRemoteId and remote `which` resolution
- Fixed SSH config transfer during manual agent creation and auto-selection flows
- Added extensive debugging and structured logging for SSH execution, agent availability, and wizard message flow
- Improved stdin/JSON streaming for large prompts and remote execution
- Added input/output JSON stream handling and enhanced logging for SSH transport
- Added sourcing of bash profiles to correctly resolve claude-code binary paths on remote hosts
2026-01-26 12:38:50 +00:00
Raza Rauf
231fe2fd88 chore: format entire codebase with prettier
Run `npm run format` across all TypeScript/TSX files
for consistent code formatting throughout the project.
2026-01-20 02:21:36 +05:00
Pedram Amini
a0ebf02e4a ## CHANGES
- Added per-agent per-day stats breakdown powering richer provider charts 📊
- Upgraded AgentUsageChart to multi-provider lines with query/time toggle 📈
- Normalized cumulative usage events into per-turn deltas for Claude/Codex 🧮
- Fixed context token display to use agent-specific calculation pipeline 🧠
- Reworked session aggregation: distinct session counts plus closed-session averages 🗃️
- Hardened tool execution rendering to ignore non-string inputs safely 🛡️
- Added comprehensive tests preventing React error #31 from tool metadata 🧪
- Refreshed summary cards into cleaner 2×3 grid layout across breakpoints 🧩
- Improved metric card readability by wrapping long agent names instead 📝
- Updated types and IPC contracts to include new `byAgentByDay` payload 🔌
2026-01-18 15:58:49 -06:00
Pedram Amini
df8fbc8324 ## CHANGES
- Compaction now triggers earlier: 2k tokens or 8 exchanges 🎯
- Added extra compaction fallbacks when context gauge resets unexpectedly 🔁
- Read-only tabs now force “return plan in Markdown” instructions 🧾
- Auto Run without worktree automatically runs in read-only/plan mode 🛡️
- ThinkingStatusPill now accepts prefiltered thinkingSessions for speed 
- InputArea precomputes thinking sessions and memoizes command filtering 🚀
- MainPanel memoizes active tab lookup to cut per-keystroke work 🧠
- TerminalOutput memoizes active logs and reduces scroll update frequency 🖥️
- Batched session updates track context high-water mark with explicit reset 🌊
- Wizard adds one-click debug log download right in the conversation UI 🧰
- Leaderboard registration now submits cumulative stats safely for multi-device sync 🏆
- AutoRun prompt now requires a concrete “what I did” synopsis first 🧭
2026-01-10 10:29:15 -06:00
Pedram Amini
b92fa04908 ## CHANGES
- Wizard now auto-continues when AI implies “let me research…” dead-ends 🧠
- Added robust deferred-response phrase detection to keep conversations flowing 🔍
- Introduced “Your turn” indicator when assistant awaits user input 💡
- Updated wizard system prompt to forbid deferred/async promises outright 🚫
- Prevented auto-continue infinite loops with a per-exchange trigger guard 🛡️
- Improved auto-continue UX with delayed send after UI updates ⏱️
- Added full test suite for deferred-response detection patterns 
- Strengthened NewInstanceModal tests with remote directory stat validation 📁
- NewInstanceModal tests now wait for debounced remote path validation 
- Expanded icon mocking to include Loader2 for more complete test coverage 🎭
2026-01-06 09:07:50 -06:00
Pedram Amini
6d062135ca ## CHANGES
- Launch the in-tab Wizard straight from Auto Run with one click! 🪄
- Wizard “show thinking” now displays live tool executions, not just text! 🧰
- Prevent confusing JSON flashes in wizard thinking stream for cleaner UX! 🧼
- Auto-complete wizard after document generation with a helpful summary log! 
- Redesigned document generation view: progress, elapsed time, and drafted files list! 📄
- Auto Run batch processing now fully supports SSH remotes end-to-end! 🔐
- Tab hover menu upgrades: instantly move tabs to first/last position! 🧭
- Keyboard safety: disable Cmd+J mode toggling while an active wizard tab runs! ⌨️
- Session persistence now drops incomplete wizard tabs to avoid broken restores! 💾
- Improved debugging for thinking-chunk streaming with richer ProcessManager logs! 🔎
2026-01-05 12:43:24 -06:00
Pedram Amini
7f1729fcd7 ## CHANGES
- Auto-run stop tooltips now say “stop auto-run” consistently everywhere 🛑
- AutoRun pill shows “AutoRun Stopping…” with warning color feedback 
- Cmd/Ctrl+Shift+K thinking toggle now works globally in wizard modal ⌨️
- ConversationScreen thinking toggle state is lifted to MaestroWizard 📤
- Thinking toggle tests updated to click button, not keyboard shortcut 🖱️
- BatchRunner modal rebranded as “Auto Run Configuration” for clarity 🏷️
- Auto-run prompt placeholder clarifies it’s a system prompt 🧠
- “Run batch processing” copy replaced with clearer “Start auto-run” 🚀
- Batch processor now bypasses debouncing for direct progress updates 
- Stop auto-run requests always honored; extra logging aids debugging 🔍
2026-01-05 12:43:24 -06:00
Pedram Amini
351299bdd1 ## CHANGES
- Wizard now saves generated docs under `Auto Run Docs/Initiation/` for clarity 📁
- Onboarding copy refresh: “Auto Run Playbook” terminology replaces “document” consistently 📝
- Claude parser now extracts and streams extended “thinking” blocks reliably 🧠
- Added full test coverage for thinking, redaction, and tool-use parsing paths 
- Wizard modal gains a real focus trap for rock-solid keyboard navigation ⌨️
- Wizard buttons now show accessible focus rings matching theme colors 🎯
- Phase Review: Escape closes document dropdown before modal closes 🛡️
- Phase Review: cycle multiple generated documents with ⌘/Ctrl+Shift+[ ] shortcuts 🔁
- Directory step: Enter on Browse triggers browse, not accidental “Continue” 🗂️
- Auto Run prompts upgraded with token-efficient task grouping rules and examples 
2026-01-05 12:43:24 -06:00
Pedram Amini
17316babae ## CHANGES
- Toggle AI thinking instantly with ⌘⇧K, plus visible shortcut hint 🧠
- Thinking stream now uses dedicated callback, not fragile delta parsing 🔍
- Wizard Phase Review supports ⌘E/Ctrl+E edit–preview toggling for docs 📝
- Wizard modal stops ⌘E bubbling into app-level Auto Run shortcuts 🛑
- Closing wizard tabs now asks confirmation—progress can’t be restored ⚠️
- Wizard tabs skip closed-tab history, preventing accidental “reopen” attempts 🗂️
- New `hasActiveWizard()` helper cleanly detects active wizard tabs 🧩
- Auto Run write-mode inputs always queue, avoiding file-conflict races 
- Wizard document generation now writes into `Initiation/` subfolder structure 📁
- DocumentEditor shares unified markdown rendering with slugs and link handling 🔗
2026-01-05 12:43:23 -06:00
Pedram Amini
1129fca47d ## CHANGES
- Added `/wizard` inline wizard docs for in-tab Auto Run creation flow 📘
- Inline Wizard now supports streaming “Thinking” with a handy toggle 🧠
- Wizard conversation typing animation upgraded to smooth RAF typewriter 
- Document generation now writes files live via `Write` tool 🚀
- Real-time doc streaming added by watching Auto Run subfolder changes 👀
- Generation UX improved with centered loader, progress text, and cancel button 🛑
- Wizard tabs rename instantly to “Wizard”, then “Wizard: {Project}” 🏷️
- Process Monitor now groups wizard processes with WIZARD/GENERATING badges 🧙
- Context transfer now auto-sends on tab activate for instant injection 🔄
- New session lifecycle stats IPC APIs wired into `maestro.stats` 📊
2026-01-05 12:43:23 -06:00
Pedram Amini
28340282ab ## CHANGES
- Added Claude “prompt too long” detection as recoverable token exhaustion 🧩
- Rebranded wizard output from “action plans” to “Playbooks” everywhere 📘
- AutoRun Edit/Preview controls are now icon-only with clearer titles 🎛️
- Introduced Playbook Exchange button styling and richer tooltip copy 🧺
- Wizard now routes chat input directly into its own conversation stream 💬
- Wizard completion now appends conversation logs and a next-steps summary 🧾
- Wizard captures Claude `session_id` and switches tab for continuity 🔗
- Wizard mode becomes tab-scoped, preventing cross-tab activation leakage 🧭
- Confidence gauge now withholds green until readiness threshold (80+) 🎨
- Document generation shows centered Austin Facts during initial loading 🧠
- Claude agents now run read-only tools for safer Playbook generation 🔒
- Wizard pill shows “Thinking…” spinner and pauses pulse while waiting 
2026-01-05 12:43:22 -06:00
Pedram Amini
43ec590475 ## CHANGES
- Bumped Maestro to v0.14.0 with a fresh release cutover 🚀
- Added self-serve “Resend Confirmation” for leaderboard token recovery 📧
- Wired new `leaderboard:resendConfirmation` IPC handler end-to-end 🧩
- Upgraded registration modal with resend-first flow, manual token fallback 🛟
- Added Quick Actions entry to open the Document Graph instantly 
- Document Graph now persists external-links toggle back into settings 💾
- Document Graph modal now preserves state across closes for continuity 🔒
- React Flow controls are fully theme-styled with dynamic injected CSS 🎨
- Improved graph layouts to reduce external-node overlap in both modes 🧭
- Wizard now detects provider errors and shows recovery hints + “Go Back” 🧠
2025-12-29 18:06:31 -06:00
Pedram Amini
ad4e1c20a8 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Pops unacknowledged badge celebrations when you return, focus, or move mouse 🎖️
- Stops the correct Auto Run session by passing explicit session IDs 🛑
- Auto Run Stop button now targets its own session reliably, everywhere 🧭
- Elapsed Auto Run time now shows true cumulative task work duration ⏱️
- Tracks cumulativeTaskTimeMs in batch state for accurate reporting 📊
- Resets interrupted “reset-on-completion” docs safely, even without backups 🧹
- External links now open in the system browser across the app 🌐
- Markdown/Chat links in Wizard screens open externally for safer navigation 🗺️
- Toast action links launch externally without hijacking in-app clicks 🔔
- Main Auto button got tighter sizing and clearer progress microcopy 🧩
2025-12-25 12:49:08 -06:00
Pedram Amini
72de3b7ed6 ## CHANGES
- No release input was provided, so changes can’t be determined yet. 🔍
- Share the repo link, tags, or commits since last release to proceed. 🚀
2025-12-22 11:43:20 -06:00
Pedram Amini
9857b87473 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Added Aider as a new agent option in the interface 🤖
- Improved agent-specific configuration options in modal dialogs 🔧
- Enhanced playbook dropdown to support longer names dynamically 📏
- Fixed cost tracker widget display for all usage scenarios 💰
- Added back button navigation to the Maestro Wizard interface ⬅️
- Improved markdown generation in wizard document creation flow 📝
- Fixed keyboard shortcut isolation in wizard to prevent conflicts ⌨️
- Enhanced agent output parsing for OpenCode and Codex agents 🔍
- Added YOLO mode argument handling for auto-approval features 
- Renamed "Ungrouped" sections to "Ungrouped Agents" for clarity 📁
2025-12-17 21:43:11 -06:00
Pedram Amini
2ff9db3f9e feat: Wizard UI improvements, preparing plan screen, and unread indicator
- Added pulsing green unread indicator for sessions with new messages
- Enhanced PreparingPlanScreen with Austin facts and file creation animations
- Updated SessionList collapse button to require sessions
- Renamed wizard screen title from "Choose Your AI Assistant" to "Choose Your Provider"
- Updated test assertions to match UI text changes
- Documented unread indicator in README

Claude ID: 207f9996-7530-493f-bb99-96a3bb26c6f7
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
2025-12-11 05:21:34 -06:00
Pedram Amini
e947df56ae # CHANGES
- Added drag-and-drop reordering support for execution queue items 🎯
- Created new PreparingPlanScreen step in wizard workflow 🚀
- Enhanced document selector dropdown for multi-document support 📄
- Improved process monitor UI with two-line layout design 💅
- Fixed queue processing after interrupting running commands 
- Added lightweight session timestamp fetching for activity graphs 📊
- Separated document generation from review in wizard flow 🔄
- Enhanced file creation tracking with retry logic 🔁
- Added visual feedback for drag operations with shimmer effect 
- Fixed tab header layout in right panel interface 🎨
2025-12-11 03:54:13 -06:00
Pedram Amini
0d9ed25145 fix: Wizard UI polish and disk-based document detection fallback
UI improvements:
- Change step 1 title to "Create a Maestro Agent"
- Rename "Project Understanding" to "Project Understanding Confidence"
- Put YOLO flag on its own centered line with padding
- Shorten loading message to fit on two lines

Bug fix:
- Add fallback to read Auto Run documents directly from disk when
  the agent writes files instead of outputting them with markers.
  This fixes an issue where documents appeared on disk but weren't
  shown in the Phase Review UI.

Session: f323ef3f-406d-4dd5-b31d-410de2117e17
2025-12-11 01:48:12 -06:00
Pedram Amini
318cb85988 feat: Add existing Auto Run Docs detection and security fixes
- Add ExistingAutoRunDocsModal that detects previous wizard sessions
- Allow users to continue planning from existing docs or start fresh
- Support reading existing docs and passing them to the AI for context
- Add path traversal sanitization for AI-generated filenames (security fix)
- Add proper cleanup on unmount for ConversationScreen and PhaseReviewScreen
- Add rate limiting guard for send button to prevent double-sends
- Update HistoryHelpModal with simplified styling
- Add Texas Flag SVG component for Austin Facts display

Security improvements address PR #19 review comments:
- sanitizeFilename() prevents directory traversal attacks
- conversationManager.endConversation() called on unmount
- phaseGenerator.abort() called on unmount
- isSendingRef prevents race conditions from rapid clicking

Session: 207f9996-7530-493f-bb99-96a3bb26c6f7
2025-12-11 01:31:58 -06:00
Pedram Amini
4aa5398b9f OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
I'd be happy to help you create a clean update summary for a GitHub project! However, I don't see any input provided after "INPUT:" in your message.

Could you please share the changelog, commit history, or release notes that you'd like me to summarize? Once you provide that information, I'll create an exciting CHANGES section with 10-word bullets and relevant emojis as requested.
2025-12-11 01:10:23 -06:00
Pedram Amini
d6212233b1 MAESTRO: Add screen reader announcements for wizard accessibility
- Create ScreenReaderAnnouncement component with ARIA live regions
  for accessible notifications using toggle technique
- Support polite and assertive politeness levels per WCAG 2.1
- Add useAnnouncement hook for convenient announcement management
- MaestroWizard: Announce step changes when navigating
- AgentSelectionScreen: Announce detection completion and selection
- DirectorySelectionScreen: Announce validation results and errors
- ConversationScreen: Announce AI thinking, confidence, ready status
- PhaseReviewScreen: Announce generation start, success, and errors
- Add 10 unit tests for ScreenReaderAnnouncement component
2025-12-10 04:30:50 -06:00
Pedram Amini
71d3167054 MAESTRO: Standardize wizard screen padding, spacing, and typography
- Unified keyboard hints styling across all wizard screens using consistent
  mt-4 margin, flex gap-6 layout, and theme.colors.border for kbd elements
- ConversationScreen: Fixed kbd background from bgMain to border to match
  other screens, updated margin from mt-3 to mt-4
- PhaseReviewScreen: Replaced simple text hints with styled kbd-based hints
  matching AgentSelectionScreen and DirectorySelectionScreen patterns
- PhaseReviewScreen: Standardized header/footer padding from px-4 py-3 to
  px-6 py-4 for visual consistency with ConversationScreen sections
- PhaseReviewScreen: Updated content area and error margins to use px-6
2025-12-10 03:59:52 -06:00
Pedram Amini
e2e0a98dd8 MAESTRO: Implement ConversationScreen.tsx for wizard project discovery
Full implementation of the third wizard screen featuring:
- AI Terminal-like chat interface with message bubbles
- Confidence progress bar (0-100%) with red-yellow-green gradient
- Typing indicator with animated bouncing dots
- Initial question display before first interaction
- Integration with conversationManager for agent communication
- Error handling with retry options
- Keyboard support: Enter to send, Shift+Enter for newline, Escape to go back
- "Let's Get Started!" transition prompt when ready=true and confidence>80
- Auto-resizing textarea input with Send button
- Conversation history stored in WizardContext
2025-12-10 02:26:34 -06:00
Pedram Amini
f740a9b782 MAESTRO: Implement MaestroWizard orchestrator for onboarding wizard
- Created MaestroWizard.tsx main orchestrator component that renders
  the appropriate screen based on current step from WizardContext
- Added step indicator with numbered circle and progress dots
- Integrated with LayerStack for Escape key handling
- Added fade-in/slide-up animations for modal transitions
- Added WIZARD modal priority (760) to modalPriorities.ts
- Created placeholder screen components (AgentSelectionScreen,
  DirectorySelectionScreen, ConversationScreen, PhaseReviewScreen)
  for module compilation - full implementations pending
2025-12-10 01:36:43 -06:00