101 Commits

Author SHA1 Message Date
chr1syy
0c9a0dedbf Windows Enhancement and Fixes for 0.15.0-RC (#264)
* refactor: consolidate PATH building logic into shared utilities

- Add buildExpandedPath() and buildExpandedEnv() to shared/pathUtils.ts
- Refactor 5 files to use shared PATH functions, eliminating ~170 lines of duplication
- Fix Windows .NET SDK PATH issue by including dotnet installation paths
- Ensure consistent cross-platform PATH handling across CLI agents, detectors, and process managers

Files changed:
- src/shared/pathUtils.ts (added 2 functions)
- src/cli/services/agent-spawner.ts (refactored 3 functions)
- src/main/utils/cliDetection.ts (refactored 1 function)
- src/main/agent-detector.ts (refactored 1 method)
- src/main/process-manager/utils/envBuilder.ts (refactored 1 function)

* refactor: consolidate PATH building logic into shared utilities

- Add buildExpandedPath() and buildExpandedEnv() to shared/pathUtils.ts
- Refactor 5 files to use shared PATH functions, eliminating ~170 lines of duplication
- Fix Windows .NET SDK PATH issue by including dotnet installation paths
- Ensure consistent cross-platform PATH handling across CLI agents, detectors, and process managers

Files changed:
- src/shared/pathUtils.ts (added 2 functions)
- src/cli/services/agent-spawner.ts (refactored 3 functions)
- src/main/utils/cliDetection.ts (refactored 1 function)
- src/main/agent-detector.ts (refactored 1 method)
- src/main/process-manager/utils/envBuilder.ts (refactored 1 function)

* fix(windows): enable PATH access for agent processes

Remove faulty basename rewriting that prevented shell execution from working properly on Windows. Full executable paths are now passed directly to cmd.exe, allowing agents to access PATH and run commands like node -v and dotnet -h.

- Modified process.ts to keep full paths when using shell execution
- Updated ChildProcessSpawner.ts to avoid basename rewriting
- Fixes ENOENT errors when agents spawn on Windows

Resolves issue where agents couldn't execute PATH-based commands.

fix: add missing lint-staged configuration

Add lint-staged configuration to package.json to run prettier and eslint on staged TypeScript files before commits.

* fix(windows): resolve SSH path detection with CRLF line endings

Fix SSH command spawning failure on Windows by properly handling CRLF line endings from the 'where' command. The issue was that result.stdout.trim().split('\n')[0] left trailing \r characters in detected paths, causing ENOENT errors when spawning SSH processes.

Updated detectSshPath() to use split(/\r?\n/) for cross-platform line ending handling
Applied same fix to detect cloudflared and gh paths for consistency
Ensures SSH binary paths are clean of trailing whitespace/carriage returns
Resolves "spawn C:\Windows\System32\OpenSSH\ssh.exe\r ENOENT" errors when using SSH remote agents on Windows.

* fix: resolve SSH remote execution issues with stream-json and slash commands

- Fix SSH remote execution failing with stream-json input by detecting
  --input-format stream-json and sending prompts via stdin instead of
  command line arguments, preventing shell interpretation of markdown
  content (fixes GitHub issue #262)

- Add sendPromptViaStdin flag to ProcessConfig interface for explicit
  stream-json mode detection

- Implement proper image support in buildStreamJsonMessage for Claude
  Code stream-json format, parsing data URLs and including images as
  base64 content in the message

- Add file existence check in discoverSlashCommands to prevent ENOENT
  errors when agent paths are invalid

- Simplify ChildProcessSpawner stdin handling to ensure images are
  always included in stream-json messages sent via stdin

- Update stream-json message format to use proper {"type": "user_message",
  "content": [...]} structure with text and image content arrays
2026-01-31 17:38:15 -05:00
Pedram Amini
b25419d74e version bump 2026-01-28 20:00:32 -05:00
Pedram Amini
fcd31ff74d fix(factory-droid): address PR #225 review issues
- Remove unrelated husky and lint-staged dev dependencies
- Fix Windows path encoding in session storage (handle backslashes)
- Add debug logging to empty catch blocks for better diagnostics
- Add type guard validation for JSON parsing in output parser
2026-01-27 13:42:16 -06:00
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
Raza Rauf
1c2a8101ee refactor: modularize preload.ts into domain-specific modules with tests 2026-01-22 20:33:55 +05:00
Raza Rauf
491cef67fa chore: address PR review feedback
- Add troubleshooting section for pre-commit hooks in CONTRIBUTING.md
- Make prepare script resilient for CI/Docker: husky || true
- Update .prettierignore to exclude coverage/ and *.min.js
2026-01-20 00:11:22 +05:00
Raza Rauf
dd04429482 Add pre-commit hooks with husky and lint staged 2026-01-19 22:58:29 +05:00
Raza Rauf
9ecf57bf25 added .prettierrc config to ensure consistent formatting 2026-01-16 23:54:27 +05: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
1d34eb6f2b ## CHANGES
- Added multi-document Auto Run progress fields across IPC and WebSocket state 📚
- Web clients now receive aggregated task totals and completions across documents 📈
- Active tab UI docs expanded with screenshot and richer contribution details 🖼️
- Canonical `activeTab` lookup is now memoized to kill repeated O(n) finds 
- Staged images, logs, and prompt tab toggles now reuse memoized `activeTab` 🧠
- Tab-completion suggestions now debounce input only while menu is open ⌨️
- @mention suggestions now debounce filter only while menu is open 🔎
- Disabling worktrees now removes all sub-agents and reports counts 🧹
- Added performance guidance: debounce, throttle, batching, virtualization, parallel IPC 🚀
- Bumped version to 0.14.5 for this release tag 🏷️
2026-01-11 12:20:36 -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
bff79b56fe fix: Windows auto-update filename mismatch (#162)
Add explicit artifactName configuration to NSIS and portable targets
to ensure consistent hyphen-based naming that matches latest.yml manifest.
2026-01-08 09:51:24 -06:00
Pedram Amini
60535a5a3e version bump 2026-01-08 06:16:16 -06:00
Pedram Amini
66b2895d90 ## CHANGES
- Added session lifecycle tracking with created/closed events and durations 🚀
- Introduced `session_lifecycle` SQLite table plus indexes via v3 migration 🗄️
- Expanded stats aggregation with total sessions, per-agent, per-day rollups 📊
- Usage Dashboard gained a new “Sessions” summary card (now six metrics) 🧩
- New IPC endpoints to record sessions and fetch lifecycle history cleanly 🔌
- Session create/close events now fire automatically from the main app flow 🧠
- Old-data cleanup now purges session lifecycle rows for leaner databases 🧹
- Stats collection toggle respected for session-created recording, avoiding noise 🔒
- Updated typings across shared/renderer APIs for new session stats fields 🧾
- Bumped package version to 0.14.1 for this stats upgrade release 🎉
2026-01-02 14:37:38 -06:00
Pedram Amini
34d4b7d23b windows build fixes 2026-01-01 22:20:28 -06:00
Pedram Amini
ae324fa24d fix: upgrade Node.js to v22 for @electron/notarize compatibility
@electron/notarize@3.1.1 requires Node >= 22.12.0, but the workflow was
using Node 20. Updated all setup-node steps to use Node 22.
2026-01-01 22:07:20 -06:00
Pedram Amini
21b2bc4258 MAESTRO: Remove react-force-graph-2d dependency
- Removed react-force-graph-2d from package.json dependencies
- Updated DocumentGraphView.tsx header comment to reflect canvas-based MindMap
- Ran npm install to clean up package-lock.json (16 packages removed)
2025-12-30 13:37:34 -06:00
Pedram Amini
4d67cce6e1 ## CHANGES
- Enforced strict Node versioning with `.npmrc` engine-strict enabled ⚙️
- Declared Node.js >=20 requirement via `package.json` engines field 🚀
- Added early WSL2 environment checks during app startup 🕵️
- Introduced WSL detector utility to identify WSL and cache results 🧠
- Detects `/mnt/<drive>` Windows-mount paths to prevent common breakages 🧭
- Emits clear warnings for WSL mount risks: sockets, Electron, npm, git 🔥
- Added user-friendly WSL warning message with fix steps and docs link 📣
- Expanded installation docs with WSL2 best-practice cloning guidance 📘
- Added troubleshooting playbook for WSL2 errors and proven remedies 🛠️
- Polished File Explorer status bar styling with rounded bordered container 🎨
2025-12-30 04:14:24 -06:00
Pedram Amini
621f60c6cd OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Bumped app version to 0.14.0 with fresh dependency refresh 🚀
- Added <a href="https://www.npmjs.com/package/react-force-graph-2d">react-force-graph-2d</a> for richer graph visualization options 🧠
- DocumentGraph layouts now use two-phase positioning for cleaner clusters 🧭
- External link nodes now sit on periphery/runs below hierarchy, reducing chaos 🪐
- Force layout spacing tuned for better readability and fewer overlaps 📐
- Added fallback grid layout when only external nodes exist 🧩
- SSH remote configs now persist `useSshConfig` and `sshConfigHost` metadata 🔐
- SSH Config host picker now supports filtering + keyboard navigation ⌨️
- SSH remote validation relaxed: username/key optional, leverage ssh-agent defaults 🗝️
- File explorer shows RTL-ellipsized cwd and double-click copies path 🎯
2025-12-30 00:32:06 -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
d52660fca6 fix: remove explicit arch arrays from Linux targets to prevent cross-arch package contamination
Fixes #116 - electron-builder was building both x64 and arm64 packages on each
runner regardless of CLI flags, causing the ARM64 runner's amd64.deb (with ARM
binaries inside) to overwrite the correct x64 package during artifact deduplication.
2025-12-29 14:12:34 -06:00
Pedram Amini
fa62d78b1c ## CHANGES
- Hardened Linux releases with architecture-safe npm caching to prevent cross-contamination 🛡️
- Added Linux-only prebuild cache purges to avoid wrong-arch native binaries 🧹
- Force rebuild native modules per platform, with explicit x64/arm64 env targeting 🧬
- Cleaned node-pty and better-sqlite3 prebuild directories before Linux packaging 🧱
- Added x64 better-sqlite3 binary architecture verification step in CI 🔍
- Improved Auto Run error handling with rich history entries and recovery guidance 🧾
- Added toast notifications for Auto Run errors with friendly titles and details 🔔
- Extended history entry API to track success/failure for better visibility 
- Enhanced Auto Run pause logging with recoverability flags and raw error context 🧰
- Bumped version to 0.13.1 for this release rollout 🚀
2025-12-29 12:46:53 -06:00
Pedram Amini
51fc498420 MAESTRO: Add graph visualization dependencies for Document Graph View
Install reactflow@11.11.4, @dagrejs/dagre@1.1.8, d3-force@3.0.0, and
@types/d3-force@3.0.10 for the upcoming Document Graph visualization
feature in Phase 3 of the Global Stats & Graphing implementation.
2025-12-29 06:19:33 -06:00
Pedram Amini
79531d26a4 MAESTRO: Install recharts and date-fns dependencies for Usage Dashboard
Added recharts v3.6.0 for charting components and date-fns v4.1.0 for
date formatting and manipulation. These are required for the upcoming
Usage Dashboard modal with Recharts visualizations.
2025-12-29 06:19:31 -06:00
Pedram Amini
14db065d11 MAESTRO: Add better-sqlite3 native database module
- Install better-sqlite3@^12.5.0 for SQLite database support
- Add @types/better-sqlite3@^7.6.13 for TypeScript definitions
- Configure electron-rebuild to build both node-pty and better-sqlite3
- Add better-sqlite3 to asarUnpack for proper Electron packaging
- Foundation for upcoming global stats tracking system
2025-12-29 06:16:57 -06:00
Pedram Amini
617bf91033 version bump 2025-12-28 12:56:46 -06:00
Pedram Amini
becfc97f42 merge: resolve conflicts with main (gist publishing + openspec) 2025-12-28 12:50:19 -06:00
Pedram Amini
f7b7f361df version bump 2025-12-28 10:03:27 -06:00
Pedram Amini
d65b8d2c6b ## CHANGES
- Added `dev:prod-data` to develop against real production sessions safely 🧪
- Dev mode now defaults to an isolated `maestro-dev` data directory 🗂️
- App can explicitly opt into production userData via `USE_PROD_DATA=1` 🔀
- Contributor docs now clearly map dev commands to their data directories 📚
- Reduced dev/production database lock conflicts when running side-by-side 🔒
- Tab hover overlay redesigned to look like a clean “open folder” panel 🗃️
- Removed tab title tooltip to streamline the tab interaction feel ✂️
- Toast logging now captures whether audio/TTS notifications were enabled 🎙️
- Toast logs include the exact audio command used for notifications 🧾
- TTS playback now reuses captured audio state for consistent behavior 🔊
2025-12-28 08:51:42 -06:00
Pedram Amini
750ecd4743 ## CHANGES
- Bumped project version to 0.12.2 for this release rollout 🚀
- Added why-did-you-render to spotlight unnecessary React re-renders 🔍
- Initialized dev-only WDYR profiling with hooks and memo tracking 🧪
- Ensured WDYR loads before React for accurate render diagnostics ⏱️
- Refreshed About modal with cleaner creator + Austin side-by-side layout 🧩
- Inserted visual divider to better separate About modal sections 🧱
- Corrected About modal GitHub link targets between repo and profile 🔗
- Updated About modal tests to match the swapped GitHub link behavior 
- Stripped markdown from History list summaries for cleaner previews 🧹
2025-12-28 06:27:33 -06:00
Pedram Amini
282d87b0fb MAESTRO: feat(openspec): add GitHub refresh script and npm command
- Create scripts/refresh-openspec.mjs for build-time prompt updates
- Add refresh-openspec npm script to package.json
- Add extraResources for openspec prompts in all platform builds
- Update bundled prompts with latest from OpenSpec repository
2025-12-28 05:40:56 -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
41213bc6b1 ## CHANGES
- Hardened Linux x64 builds: pre-rebuild native modules and verify node-pty 🐧
- Fixed ARM64 packaging reliability with forced rebuilds and architecture checks 🧬
- Disabled electron-builder npm rebuild on Linux to prevent wrong binaries 🧯
- Added rich tab bulk-close actions with smart, position-aware menu options 🗂️
- Introduced undoable tab close workflow, remembering up to 25 tabs 🔄
- Expanded keyboard shortcuts for tab creation, navigation, and bulk close ⌨️
- Refreshed context management docs to reflect hover-based tab menu overlay 📚
- Upgraded About/Achievements to accept leaderboard registration personalization 🏅
- Shareable achievement cards now include avatar and social handles rendering 🖼️
- Added deep synopsis debugging logs across parser, process manager, and UI 🔍
2025-12-27 14:17:37 -06:00
Pedram Amini
f724ef4c8c ## CHANGES
- Refreshed Maestro tagline across README and package metadata for clarity 
- Reset-on-completion now writes working copies into `Runs/` folder consistently 📁
- Auto Run working-copy IPC handler updated for new `Runs/` directory naming 🧭
- Working-copy relative paths now return `Runs/...` for downstream consumers 🔗
- Preload API docs updated to reflect `Runs/` working-copy location 🧩
- AutoRunner Help Modal now points users to `Runs/` audit-log folder 🪟
- Batch processor tracking/comments updated for `Runs/` audit log behavior 🧾
- Test suite updated to expect `Runs/` working-copy paths reliably 🧪
2025-12-26 10:07:57 -06:00
Pedram Amini
f1712dc9bb ## CHANGES
- Reset-on-completion now uses `/runs/` working copies, preserving originals always 🗂️
- Added `autorun:createWorkingCopy` IPC API with path validation safeguards 🔐
- Web UI now hides thinking/tool logs for cleaner conversations 🧹
- Git worktree directory scans run in parallel for huge speedups 
- Legacy worktree discovery scans only on focus, not constant polling 👀
- Mermaid rendering revamped for safer, smoother SVG insertion flow 🧩
- Mobile session selection updates refs first, avoiding WebSocket race bugs 📡
- Mobile search auto-expands groups containing matches for faster navigation 🔎
- Mobile AI input supports Cmd/Ctrl+Enter submit while Enter adds newline ⌨️
- Auto Run UI simplified: removed “stopping” state visuals, consistent pulsing 🤖
2025-12-26 06:46:08 -06:00
Pedram Amini
b78f9523c4 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Added `rehype-slug` for automatic heading IDs in markdown previews 🔗
- Enabled smooth in-page anchor link navigation across markdown renderers 🧭
- Improved worktree session detection by normalizing paths, avoiding duplicates 🧹
- Broadcast session updates when working directory changes, not just state 📣
- Added “stopping” batch-session tracking and surfaced it throughout the UI 🛑
- Refined Auto Run indicators: STOPPING label, red tint, no pulse 🎛️
- Prevented repeated stop clicks with stricter disabled button behavior 🚫
- Memoized batch-derived flags to cut rerenders from new array references 
- Fixed HMR stale-closure issues via ref-based batch state broadcaster 🧩
- Mermaid diagrams now fully theme-aware using app color variables 🎨
2025-12-26 02:23:05 -06:00
Pedram Amini
93268d3528 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES

- Prompts now compile from Markdown into TypeScript at build-time 🔧
- New `build:prompts` step runs automatically for dev and release builds 🏗️
- Main process stops runtime prompt file I/O for faster, safer startups 
- Group chat prompt access refactored into getter functions for flexibility 🧩
- Added IPC to reset a participant context with session summarization 🔄
- Participant cards now copy agent session IDs with one click 📋
- UI shows context-reset button when participant usage hits 40%+ ⏱️
- History markdown now supports raw HTML rendering via `rehype-raw` 🧪
- History detail supports clickable file links and in-app file previews 🗂️
- Document copy-drag enables reset-on-completion across duplicate filenames 🧷
2025-12-24 12:17:42 -06:00
Pedram Amini
c8b32e7cf8 ## CHANGES
- Input missing—share release notes, commits, or changelog to summarize changes. 🔎
2025-12-23 17:29:25 -06:00
Pedram Amini
203a2d0218 feat: complete spec-kit integration with IPC handlers and update support
- Register spec-kit IPC handlers in main process (was missing)
- Implement actual download/extract for "Check for Updates" button
- Downloaded prompts stored in user data dir, preferred over bundled
- Add spec-kit prompts to extraResources for production builds
- Fix github/spec-kit link to open in system browser
- Add /speckit.help command explaining workflow and Auto Run integration
- Simplify metadata.json (remove redundant commands object)
2025-12-22 23:57:50 -06:00
Pedram Amini
00f10dba41 Merge main into speckit-support and fix conflicts
- Resolved conflicts in package.json (kept both test:performance and refresh-speckit scripts)
- Resolved conflicts in agent-detector.test.ts (kept try/finally pattern for platform restoration)
- Fixed speckit-manager.ts to read prompts from disk instead of using Vite's ?raw imports
- Removed unused extractDescription function and added proper types for GitHub API response
2025-12-22 22:08:58 -06:00
Pedram Amini
b01033aa7e Merge pull request #74 from pedramamini/show-thinking
feat: Show Thinking toggle for real-time AI reasoning display
2025-12-22 22:03:37 -06:00
Pedram Amini
a8edadbdcf feat: add ESLint with TypeScript/React plugins and fix all lint errors
- Add ESLint 9 configuration (eslint.config.mjs) with TypeScript and React hooks plugins
- Add npm run lint:eslint command for code quality checks
- Expand npm run lint to check all three TypeScript configs (renderer, main, cli)
- Update tsconfig.cli.json to include src/prompts and src/types directories

Fix 29 ESLint errors:
- Remove unused updateCliActivity import in batch-processor.ts
- Convert {false && <jsx>} patterns to comments in AutoRun components
- Wrap case block with const declarations in braces (AgentSelectionScreen)
- Fix unused expression pattern in PreparingPlanScreen
- Fix conditional hook calls in FilePreview, OfflineQueueBanner, RecentCommandChips, TerminalOutput
- Add windows-diagnostics.json to PackageContents interface

Update CLAUDE.md and CONTRIBUTING.md with new linting commands and documentation.

Claude ID: 029e8abe-5734-4967-9fb4-c85078c1973d
Maestro ID: 87ffa06e-0ecd-4eb8-b327-dad1ec24f7a9
2025-12-22 21:20:53 -06:00
Pedram Amini
ee54e4ff49 tests pass 2025-12-22 19:37:09 -06:00
Pedram Amini
7182817718 MAESTRO: Add performance tests for thinking stream feature (Phase 6.5)
Created comprehensive test suite for large thinking streams (10-50KB+):
- RAF throttling efficiency tests validating chunk batching
- Large stream handling (10KB, 25KB, 50KB, 100KB+) with performance thresholds
- Memory efficiency tests (buffer clearing, cleanup on unmount)
- UI rendering performance tests
- Chunk batching edge cases (empty, tiny, interleaved multi-tab)
- Stress tests (sustained high-frequency, concurrent sessions)

Added test infrastructure:
- vitest.performance.config.mts for performance test configuration
- npm run test:performance script for running performance tests
2025-12-22 19:03:55 -06:00
Pedram Amini
dd91470fbb version bump 2025-12-22 17:46:24 -06:00
Pedram Amini
3db4fcbb77 version bump 2025-12-22 13:36:34 -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
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
Pedram Amini
b72ae7da08 MAESTRO: audit useModalManager - remove dead hook and stale ARCHITECTURE.md references
Removed dead code:
- useModalManager.ts (136 lines) - never imported by application code
- useModalManager.test.ts (686 lines) - tests for dead hook

The codebase uses useLayerStack + LayerStackContext for modal management
which provides a more sophisticated API (escape delegation, modal vs
overlay distinction, onBeforeClose support, debug APIs, focus traps).

Also removed stale ARCHITECTURE.md references to useFocusManager
(removed in Task 98).
2025-12-21 01:50:53 -06:00
Pedram Amini
53acecf0f2 OAuth enabled but no valid token found. Starting authentication...
Found expired OAuth token, attempting refresh...
Token refresh successful
POST "https://api.anthropic.com/v1/messages": 429 Too Many Requests {"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed your account's rate limit. Please try again later."},"request_id":"req_011CWJa3o6GdjJKgdNY7G8EN"}
2025-12-20 14:29:18 -06:00