Commit Graph

1366 Commits

Author SHA1 Message Date
Pedram Amini
76912f4f6b MAESTRO: Add Show Thinking toggle pill to InputArea (Phase 4)
- Import Brain icon from lucide-react for the toggle button
- Add tabShowThinking, onToggleTabShowThinking, and supportsThinking props
  to InputAreaProps interface
- Add toggle pill after Read-Only button using accentText color styling
- Add handler in App.tsx for toggling tab.showThinking state
- Pass props through MainPanel to InputArea
- Add supportsThinkingDisplay to renderer's AgentCapabilities interface
  to match main process capability definition
2025-12-22 18:32:45 -06:00
Pedram Amini
e3f8beae45 MAESTRO: Add thinking-chunk IPC event for streaming AI reasoning (Phase 3)
Implement the IPC infrastructure for Show Thinking feature:
- Emit 'thinking-chunk' event in process-manager.ts when partial text events arrive
- Forward thinking-chunk events to renderer via index.ts
- Add onThinkingChunk handler to preload.ts process API
- Add TypeScript interface declaration for onThinkingChunk

This enables the renderer to receive real-time streaming content from AI agents
(Claude Code, OpenCode, Codex) for display when the tab's showThinking setting
is enabled. The renderer decides whether to display based on per-tab settings.
2025-12-22 18:25:23 -06:00
Pedram Amini
58dcb73f22 MAESTRO: Add defaultShowThinking setting and wire up to tab creation (Phase 2)
- Add defaultShowThinking state and setter to useSettings.ts
- Add settings UI with Brain icon in SettingsModal.tsx
- Add showThinking option to CreateTabOptions interface
- Update createTab() to accept and apply showThinking
- Wire up all createTab call sites to pass defaultShowThinking:
  - App.tsx (3 locations)
  - useMainKeyboardHandler.ts (Cmd+T new tab)
  - useRemoteIntegration.ts (remote new tab)
  - useAgentSessionManagement.ts (resume session)
- Pass defaultShowThinking through hook dependencies
2025-12-22 18:21:02 -06:00
Pedram Amini
217524125b MAESTRO: Add supportsThinkingDisplay capability and thinking types (Phase 1)
- Add supportsThinkingDisplay to AgentCapabilities interface
- Set capability to true for claude-code, codex, and opencode agents
- Set capability to false for terminal, gemini-cli, qwen3-coder, and aider
- Add 'thinking' to LogEntry.source type for thinking content entries
- Add showThinking field to AITab interface for per-tab toggle state
- Update agent-capabilities test to include new capability
2025-12-22 18:10:13 -06:00
Pedram Amini
fb5cff244e windows compat issue 2025-12-22 15:34:29 -06:00
Pedram Amini
5830d130b6 windows support 2025-12-22 15:26:18 -06:00
Pedram Amini
5bc2a1254c Windows support take 3 2025-12-22 15:17:48 -06:00
Pedram Amini
5e48750d48 show agent names instead of branch names as worktree items 2025-12-22 15:09:12 -06:00
Pedram Amini
1ca72f2ef6 ## CHANGES
- No release notes or commit details were provided to summarize changes. 🔍
- Share the previous and current release tags to generate accurate bullets. 🏷️
- Paste the GitHub compare URL so I can extract major upgrades. 🔗
- Provide merged PR titles since last release to build highlights. 📋
- Include changelog excerpt if available for clean summarization. 🧾
- Tell me target audience and tone, and I’ll tailor wording. 🎯
- Confirm release date range to avoid missing important work. 🗓️
- If private repo, paste git log summary for reliable extraction. 🛡️
- I can return exactly ten 10-word bullets once input arrives. 
- Ready when you are—drop details and I’ll write it. 🚀
2025-12-22 15:03:37 -06:00
Pedram Amini
3db4fcbb77 version bump 2025-12-22 13:36:34 -06:00
Pedram Amini
b288e0b0c6 all tests passing 2025-12-22 13:18:33 -06:00
Pedram Amini
4c57256f95 OCD get status notifications to align 2025-12-22 12:33:49 -06:00
Pedram Amini
edd0099903 fix: build ARM64 Linux on native runner for node-pty compatibility
The previous cross-compilation approach from x64 to ARM64 doesn't work
for native modules like node-pty. electron-builder cannot properly
cross-compile native C/C++ modules - the ARM64 binaries still contained
x86 code.

This fix:
- Adds a native ARM64 Linux build job using ubuntu-24.04-arm runner
- Separates x64 and ARM64 Linux builds to run on their native architectures
- Uses explicit --x64 and --arm64 flags for electron-builder
- Updates artifact handling for separate x64 and ARM64 uploads

Reference: https://github.com/electron-userland/electron-builder/issues/7608

Fixes #66
2025-12-22 12:08:09 -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
82b4f05f9b fix: prevent wizard from unexpectedly exiting edit mode
Track previous document index with a ref to detect actual document
switches. Only reset to preview mode when the user actually changes
documents, not when the generatedDocuments dependency triggers the
useEffect during normal editing operations.

Fixes #68
2025-12-22 10:50:41 -06:00
Pedram Amini
450d05407c ## CHANGES
- Added Auto Run folder docs into @mention completion suggestions automatically 🚀
- Fetches Auto Run tree asynchronously, updating suggestions when paths change 
- Skips redundant Auto Run fetching when already inside project tree 🔍
- Tags suggestions with source metadata for clear project-versus-autorun distinction 🏷️
- Displays “Auto Run” badge in suggestion list for instant recognition 
- Extends suggestion typing to include optional source field everywhere 
- Converts Auto Run document nodes into markdown filenames and paths consistently 📝
- Traverses nested Auto Run folders recursively to surface all docs fast 🧭
- Improves resilience by silently handling missing Auto Run folders safely 🛡️
- Prevents stale updates using cancellation guard during async fetching 🧯
2025-12-22 10:04:47 -06:00
Pedram Amini
3cf7b23cb7 ## CHANGES
- Updated Discord invite everywhere to new community link for joining! 🚀
- About modal now opens the refreshed Discord invite correctly instantly! 
- Quick Actions “Join Discord” now routes to updated server invite! 🔗
- Bookmark toggle hidden for worktree child sessions to prevent confusion! 🧩
- Collapsed session pills now subdivide segments for worktree parents/children! 🎛️
- Collapsed bookmarks palette now shows only parents, with segmented worktrees! 📌
- Collapsed group palette simplified using reusable segmented pill renderer! 🧱
- Collapsed ungrouped palette now uses segmented pills for clearer status! 🧭
- Unread indicators now appear only on last worktree segment pill! 🔴
- Hover tooltips now work per worktree segment for better visibility! 👀
2025-12-22 09:34:46 -06:00
Pedram Amini
3c01dd34f2 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Worktree sessions now inherit auto-run folder path from parents automatically. 🚀
- Sidebar visual ordering now nests worktree children directly under parents. 🎉
- Bookmarks, groups, and ungrouped lists now exclude worktree children clutter. 
- Collapsed group and ungrouped palettes now include worktree child indicators. 🔥
- Worktree expand/collapse UI redesigned with sleek clickable drawer bands. 🚀
- Expanded worktree children now render inside styled drawer with handle. 🎨
- Session context menu adds delayed-hover group mover submenu usability boost. 🧠
- Bookmark and move-to-group actions disabled for worktree child sessions. 
- Git status widget “View Full Diff” button upgraded with icon. 🧾
- Git tooltip panel widened and reorganized: branch, origin, status rows. 🌟
2025-12-22 09:02:07 -06:00
Pedram Amini
72db61b482 ## CHANGES
- Real-time worktree discovery replaces polling with efficient chokidar watchers! 👀
- Renderer instantly receives `worktree:discovered` events for new worktrees found! 
- Worktree watchers are session-scoped, safely started, stopped, and replaced! 🧹
- Smart debounce prevents event floods when directories appear rapidly! ⏱️
- App now restores worktree sub-agent sessions automatically after restart! 🔄
- Saving worktree config now scans and spawns missing child sessions! 🚀
- Creating a worktree now actually runs `git worktree` setup! 🛠️
- New worktree sessions inherit parent agent configuration for consistency! 🧬
- Sidebar worktree badge is clickable to expand and reveal children! 🧷
- GitHub CLI auth checks now cache results, slashing subprocess calls! 🏎️
2025-12-22 01:45:39 -06:00
Pedram Amini
9a47830cb9 ## CHANGES
- No release notes or commit details were provided to summarize. 📝
- Share the latest tag, previous tag, or commit range to compare. 🔎
- Paste merged PR titles or a changelog draft for ten-word bullets. 📌
- Provide repository link and release dates to identify major upgrades. 🗓️
- Include breaking changes, new features, and fixes you consider important. 🚀
2025-12-22 01:17:00 -06:00
Pedram Amini
0a6c87c9ab ## CHANGES
- Added Git Worktrees for truly parallel, conflict-free multi-agent development! 🌳
- Introduced Worktree sub-agents nested under parents for clean organization! 🌿
- Built WorktreeConfigModal to manage base paths and watching behavior! ⚙️
- Added one-click Pull Request creation for worktree child sessions! 🔀
- Integrated Create PR actions into sidebar context menus and shortcuts! ⌨️
- Updated git status dropdown with “Configure Worktrees” and PR actions! 🧩
- Reworked Auto Run guidance to promote worktree sessions for parallelism! 🚀
- Removed Auto Run’s embedded worktree UI, simplifying batch runner flow! 🧹
- Simplified playbooks by dropping stored worktree settings entirely! 📓
- Polished tab starring safety by blocking stars on unsaved tabs! 
2025-12-22 00:59:40 -06:00
Pedram Amini
99949bd577 Merge pull request #64 from petersilberman/enhance-work-tree-exp
feat: worktree auto-discovery and custom Claude command support
2025-12-22 00:12:02 -06:00
Pedram Amini
e3f82d763e OCD on the left panel with vertically aligning components 2025-12-21 21:24:25 -06:00
Pedram Amini
427840c7f3 ## CHANGES
- Upgraded group chat exports to true GitHub-flavored Markdown rendering! 🚀
- Added `marked` dependency and configured GFM plus line-break handling! 
- Exported messages now support tables, blockquotes, rules, and strikethrough! 🔥
- Code formatting improved: inline code and fenced blocks render correctly! 🧠
- Image embedding revamped: replaces references with base64 before parsing! 🖼️
- New branded export header with Maestro icon, tagline, and links! 🎉
- Export title now reads “Maestro Group Chat Export” for clarity! 🏷️
- Footer attribution updated to <a href="https://runmaestro.ai" target="_blank">runmaestro.ai</a> for consistency! 🌐
- Markdown styling massively enhanced: headings, lists, tables, and code look great! 🎨
- AutoRunLightbox tests updated for portal backdrop and higher z-index! 
2025-12-21 20:32:10 -06:00
Peter Silberman
e5468dd3ee feat: worktree auto-discovery and custom Claude command support
Worktree Features:
- Auto-detect directories containing git worktrees and create grouped agents
- Periodic scanner (30s) discovers new worktrees in watched directories
- Track removed worktree paths to prevent re-discovery
- Bulk delete worktree groups with all agents (trash icon on 🌳 groups)
- Wire SessionList delete through App.tsx for proper cleanup

Custom Claude Commands:
- Discover custom commands from .claude/commands/ directories
- Merge custom commands with built-in agent commands
- Run both discovery methods in parallel for faster loading
2025-12-21 21:20:54 -05:00
Pedram Amini
41680af24a ## CHANGES
- Cloudflared cache clearing now resets installed and path caches reliably! 🧹
- Cache reset leaves cloudflared path null after failed detection attempts! 🔒
- Claude-code session renames now call `window.maestro.claude.updateSessionName` correctly! ✍️
- RenameSessionModal updated to use Claude rename API for claude-code! 🧠
- Tab switcher now syncs named tabs via Claude session renaming! 🔁
- Remote tab rename persists names through Claude-code integration pathway! 🌐
- Agent sessions API expanded with `setSessionName` for safer naming! 🏷️
- Agent sessions origins fetching added via new `getOrigins` method! 🧭
- AutoRunLightbox now renders via portal with ultra-high z-index! 🪟
- Save buttons now use black text for better contrast readability! 🎨
2025-12-21 20:14:29 -06:00
Pedram Amini
29462a7ec0 ## CHANGES
- Enhanced pagination logs now include cursor, indices, and nextCursor details! 🧾
- Improved observability for session paging with richer runtime diagnostics everywhere! 🔍
- Added ref tracking to prevent duplicate auto-pagination trigger loops! 🛑
- Prevented infinite background loading when session count stops increasing! 🔁
- Auto-load logic now guards against no-op loads for stability gains! 🧠
- Background session loading remains seamless while protecting UI render timing! 
- Introduced session-length change detection before attempting further loads again! 📈
- Reset pagination trigger tracking when switching project path or agent id! 🔄
- Improved reliability of full-session background fetch for search and stats! 📚
- Reduced unnecessary pagination calls, keeping the renderer performant and responsive! 🚀
2025-12-21 18:44:44 -06:00
Pedram Amini
55dc0e4d8e refactor: centralize gh CLI detection with caching
Follow-up to PR #63 - addresses code duplication and adds caching:

- Add isGhInstalled(), getGhPath(), resolveGhPath() to cliDetection.ts
- Follow existing cloudflared pattern with caching
- Replace duplicated detection logic in checkGhCli and createPR handlers
- Both handlers now use resolveGhPath() for consistent behavior

This reduces code duplication (~34 lines removed) and improves
performance by caching the gh CLI path after first detection.
2025-12-21 18:43:29 -06:00
Pedram Amini
cbb541c60b Merge pull request #63 from oliveiraantoniocc/fix/gh-detection-improved
fix: Platform-aware GitHub CLI detection with expanded PATH support
2025-12-21 18:41:22 -06:00
Pedram Amini
bdaac9b0ef OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Added generic agent session origins store supporting Codex, OpenCode, others! 🚀
- Introduced IPC handlers to fetch origins, rename, and star sessions! 🔥
- Exposed new preload APIs for cross-agent origins, naming, starring! 
- Updated UI to persist names/stars per agent, not Claude-only! 🎉
- AgentSessionsModal now loads starred sessions from correct per-agent origins! 🌟
- AgentSessionsBrowser now renames and stars sessions via generic origins! 💪
- Session pagination now merges metadata from per-agent origins automatically! 
- OpenCode sessions now fall back to global project for discovery! 🧭
- Global OpenCode sessions now filter by directory, matching project paths! 🎯
- SessionItem right-side indicators reordered: git dirty before bookmark toggle! 🧩
2025-12-21 18:36:56 -06:00
copilot-swe-agent[bot]
f53f5599f4 feat: apply auto-detection to createPR handler for consistency
Co-authored-by: oliveiraantoniocc <411161+oliveiraantoniocc@users.noreply.github.com>
2025-12-21 23:53:03 +00:00
copilot-swe-agent[bot]
d6e19e8e71 feat: improve GitHub CLI detection with platform-aware auto-detection
- Add platform-specific command detection (where/which)
- Use expanded environment for PATH resolution
- Handle Windows multi-path output by taking first match
- Export getExpandedEnv() from cliDetection.ts for reuse
- Add proper fallback when detection fails

Addresses review comments from PR #59

Co-authored-by: oliveiraantoniocc <411161+oliveiraantoniocc@users.noreply.github.com>
2025-12-21 23:50:38 +00:00
copilot-swe-agent[bot]
5a506a6d67 Initial plan 2025-12-21 23:46:57 +00:00
Pedram Amini
706fae7482 ## CHANGES
- Windows shell detection now prioritizes PowerShell first, improving reliability. 🪟
- Windows `sh` and `bash` commands now map to `bash.exe`. 🧩
- About modal tests now match Hands-on Time text more robustly. 
- Execution Queue Browser now advertises drag-and-drop reordering in helper text. 🧷
- Codex session cache bumped to v3 for improved previews. 🗃️
- Session previews now skip markdown-style system context headers automatically. 🧹
- Agent sessions stats now compute locally for non-Claude agents. 📊
- Claude stats subscription now keys off `agentId`, not toolType. 🔌
- Sessions now merge origin, name, and starred metadata during pagination. 🔄
- Group chat exports now embed markdown images cleanly using images map. 🖼️
2025-12-21 17:35:44 -06:00
Pedram Amini
9eef7b7728 ## CHANGES
- Bumped Codex session cache version to refresh improved previews! 🚀
- Skips system/environment context tags when building first-message previews! 
- Adds robust system-context detection for cleaner session list summaries! 🧹
- Improves first user-message capture, avoiding noisy XML-like metadata! 🎯
- Refines CWD extraction flow, reusing parsed text more efficiently! 
- Resets aggregate stats when agentId changes, not just cwd! 🔄
- Simplifies total token display layout with cleaner inline computation! 🧠
- Shows tokens and context percentage together for faster readability! 👀
- Enhances tab naming across Claude, OpenCode, and Codex session IDs! 🏷️
- Adds smart session-id truncation fallbacks for consistent tab labels! 
2025-12-21 17:08:31 -06:00
Pedram Amini
b8908defa8 ## CHANGES
- Added session_meta support with payload-based metadata for richer sessions! 🚀
- Preserved legacy metadata parsing while prioritizing new payload timestamps! 🔄
- Project path now read from session_meta cwd, reducing guesswork! 🧭
- Extract text now includes output_text parts for complete transcripts! 📝
- Session IDs now reliably resolve from payload.id or legacy fallback! 🆔
- Codex parser now captures function_call tool invocations as messages! 🛠️
- Codex now records function_call_output results for end-to-end tool traces! 📦
- OpenCode storage now models worktree projects, time, and summaries! 🧩
- OpenCode project detection improved via normalization, subdirectory, and hash matching! 🎯
- OpenCode previews prefer first assistant reply; timestamps converted from Unix! ⏱️
2025-12-21 17:00:45 -06:00
Pedram Amini
fe09d53572 ## CHANGES
- Session previews now prefer first assistant reply over user prompt! 🚀
- Fallback to first user message when assistant response missing. 🛟
- Claude session parser stops scanning once assistant preview found. 
- Codex parser captures assistant previews across message and payload formats. 🔎
- Agent message completions now populate assistant-first preview correctly. 🤖
- First-message preview now uses unified `previewMessage` selection logic. 🧠
- Timestamp handling stays accurate while improving preview meaningfulness. ⏱️
- Message counting remains intact while preview extraction gets smarter. 📊
- Preview slicing now consistently applies to assistant-first chosen text. ✂️
- Session list previews become more informative, reducing system-context noise. 🎯
2025-12-21 16:29:08 -06:00
Pedram Amini
39825d8d25 ## CHANGES
- Share release-to-release project evolution once you provide repository data. 🚀
2025-12-21 16:22:20 -06:00
Pedram Amini
a20e7b6200 MAESTRO: handle inline code block parsing 2025-12-21 16:13:09 -06:00
Pedram Amini
5df0edbc8a ## CHANGES
- Added Windows-path truncation coverage so session lists display correctly everywhere 🪟
- Improved code-fence language parsing to support C++ mapping to cpp 🧠
- Refined About modal stats copy with clearer “Hands-on Time” labeling ⏱️
- Simplified mobile connection timeout typing for safer browser compatibility 🔧
- Centralized haptic triggering into shared constants for cleaner reuse 📦
- Upgraded haptics detection to verify vibrate is an actual function 📳
- Tuned input-mode toggle haptics to a crisp light vibration duration 🎚️
- Strengthened interrupt button feedback with consistent strong haptic pulses 🛑
- Removed redundant default export bundle from CommandInputButtons module 🧹
- Expanded test suite to catch edge cases across platforms and languages 
2025-12-21 16:09:13 -06:00
Pedram Amini
c7c1c8f4d6 ## CHANGES
- Crash reporting now runs only in production, keeping development logs spotless. 🚀
- Renderer Sentry initialization skips local dev servers, eliminating hot-reload noise. 🔇
- TTS stdin now catches EPIPE errors, preventing unexpected crashes during playback. 🛡️
- ProcessManager stdin error handling added, logging EPIPE without taking down sessions. 🧰
- Closing tabs now respects “unread-only” filtering, choosing the next unread tab. 
- Keyboard shortcut tab-closing now passes unread-only state for consistent navigation. ⌨️
- MainPanel Git log opening is now optional-safe, avoiding undefined callback crashes. 🔒
- Mobile session path truncation now supports Windows separators for cleaner display. 🪟
- Mobile haptics centralized via shared triggerHaptic helper, simplifying feedback logic. 📳
- Code block parsing now supports richer language tags, trimmed for accurate highlighting. 📝
2025-12-21 16:06:49 -06:00
Pedram Amini
6752439611 MAESTRO: harden mobile connect retry cleanup 2025-12-21 15:59:57 -06:00
Pedram Amini
60cfea1106 MAESTRO: add web hook tests and cleanup 2025-12-21 15:53:49 -06:00
Pedram Amini
1d42e40932 MAESTRO: refine mobile web hooks 2025-12-21 15:47:56 -06:00
Pedram Amini
28b198bd9f ## CHANGES
- Sessions hook now notifies consumers immediately when sessions update 🎉
- Added test ensuring `onSessionsChange` receives updated session payloads 
- `useSessions` preserves client-side flags while still broadcasting updates 🚀
- Codex sessions directory logic clarified via dedicated platform-aware helper 🗂️
- OpenCode storage path now correctly supports Windows `%APPDATA%` locations 🪟
- Auto Runner reset now restores original documents using automatic backups 🔄
- Interrupted Auto Run restores reset-document backups before proceeding safely 🛡️
- Execution Queue footer now highlights drag-and-drop reordering capability 🧩
- Wizard tour copy updated to reference Settings → General location 🧭
- Storage directory comments upgraded with clear per-platform path documentation 📚
2025-12-21 15:40:40 -06:00
Pedram Amini
981c36d5f4 MAESTRO: Harden pull-to-refresh color parsing 2025-12-21 15:36:58 -06:00
Pedram Amini
9a02f6c181 MAESTRO: refactor web app entrypoint 2025-12-21 15:32:23 -06:00
Pedram Amini
b2a4d27fbe ## CHANGES
- Added Auto Run document backups for reliable reset-on-completion workflows. 🔄
- Restored reset documents from backups, then deleted backup automatically. ♻️
- Added recursive cleanup to delete all `.backup.md` files quickly. 🧹
- Hardened backup IPC with traversal blocking and folder path validation. 🛡️
- Exposed new backup APIs in preload and Maestro typings. 🔌
- Batch processor now creates backups before processing reset-enabled documents. 🚀
- Interruptions now restore in-progress reset docs, then clean remaining backups. 🧯
- Group chat export now renders using the user’s current theme colors. 🎨
- Removed embedded JSON from chat exports, focusing on polished HTML. 
- Exported chats now support richer markdown, links, and embedded images. 📝
2025-12-21 15:25:26 -06:00
Pedram Amini
b4265499da ## CHANGES
- Terminal agent now defaults to PowerShell on Windows, bash elsewhere! 🚀
- PATH expansion is now platform-aware, including rich Windows install locations! 🎯
- PATH parsing now uses `path.delimiter`, fixing Windows semicolon separation! 🛠️
- Terminal PTY sessions set Windows-friendly HOME, USER, and SHELL values! 
- Base terminal PATH now includes Windows System32 and Git commands reliably! 🧩
- Command runner defaults to platform-appropriate shell, boosting cross-platform usability! 🌍
- `runCommand` adds Windows-specific environment variables for better subprocess behavior! 🔧
- Shell detection now lists Windows shells: PowerShell, pwsh, cmd, WSL! 🔎
- Windows shell detection maps IDs to `.exe` binaries before `where` lookup! 🧠
- Cloudflared CLI detection now searches Windows paths like Scoop/Chocolatey/npm! 🛰️
2025-12-21 15:09:12 -06:00
Pedram Amini
09b7a613b3 fix: ARM64 Linux build crashes (#54)
- Add asarUnpack for node-pty so native module is extracted outside ASAR
- Add missing system dependencies (libdrm2, libgbm1, libasound2) to deb
- Add missing dependencies (libdrm, mesa-libgbm, alsa-lib) to rpm
2025-12-21 12:25:31 -06:00