- Unread messages now show iPhone-style red notification badge 🔴
- Badge overlaps top-right corner of status indicator beautifully 📍
- Removed separate pulsing green dot for cleaner interface ✨
- Unified notification system across all session view modes 🎯
- Red badge provides better visibility than previous green dot 👁️
- Consistent positioning using absolute CSS for perfect alignment 📐
- Badge appears only on non-active sessions with unread messages 💬
- Smaller 1.5px size creates subtle yet noticeable alert 🎪
- Updated README to reflect new red badge notification style 📝
- Cleaner visual hierarchy with single indicator per session 🧹
Reorder menu items so "About Maestro" appears at the bottom of the
hamburger menu in both expanded and collapsed sidebar modes.
Claude ID: f67864c5-6863-496d-9e9a-28d745977704
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add Discord icon button next to Globe in About Modal header
- Add "Join Discord" option to Command K quick actions menu
- Both link to https://discord.gg/86crXbGb
Claude ID: f67864c5-6863-496d-9e9a-28d745977704
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add Globe icon to About Modal header linking to runmaestro.ai
- Add "Maestro Website" menu item in hamburger menus (both expanded and collapsed sidebar)
- Add "Off" option for toast notifications to disable them entirely
- Fix SettingsModal memo comparator that prevented prop updates
- Simplify AgentSessionsBrowser escape handling (single Escape closes modal)
- Fix TabSwitcherModal "All Named" filter to only show tabs with custom names
- Update Leaderboard "Active" badge styling for better contrast
Claude ID: f67864c5-6863-496d-9e9a-28d745977704
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
Add a third filter option to the Tab Switcher modal that shows all
starred sessions (both open tabs and closed sessions) for the current
project. The modal now cycles through three modes with Tab key:
Open Tabs → All Named → Starred.
Changes:
- Add 'starred' to ViewMode type
- Add filtering logic for starred sessions (open + closed)
- Add Starred button pill with star icon and count
- Update placeholder, empty state, and footer text for starred mode
- Update Tab key cycling to include all three modes
- Add 4 new tests for starred mode functionality
Claude ID: 472a496d-f767-49dc-8074-a08d20d2b550
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
The AboutModal now has two "GitHub" text elements (author profile and
project repo link), so tests updated to use getAllByText and select
the appropriate link by index.
- Add Discord community badge with logo to README
- Persist "Ungrouped" folder collapsed state across sessions via useSettings
- Update SessionList tests with new ungroupedCollapsed props
- Add community-data/ to .gitignore
Claude ID: c7150d1e-52ea-43e1-8bdf-4504bbee752e
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
The sidebar minimum width is 256px, but the threshold for hiding
the status text was set to 200px, making the responsive behavior
never trigger. Changed threshold to 280px so text hides when the
sidebar is resized near its minimum width.
Added test cases to prevent future regression.
When the unread filter was toggled off, the tab list expanded but the
scroll position wasn't adjusted to keep the active tab visible. This
fix adds showUnreadOnly to the useEffect dependency array so the
scroll-to-active-tab logic runs when the filter changes.
Claude ID: a64eea9f-c7e7-40ae-ae35-1c13f6e9b118
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add useThrottle.ts with useDebouncedValue and useThrottledCallback hooks
- Throttle scroll handlers in TerminalOutput and HistoryPanel (16ms/60fps)
- Throttle ResizeObserver in MainPanel using requestAnimationFrame
- Debounce search query filtering in TerminalOutput (150ms)
- Add ANSI-to-HTML conversion cache (500 entries LRU) in TerminalOutput
- Optimize activity graph updates in AgentSessionsBrowser to prevent
re-renders during pagination
Could you please share the changelog, commit history, or release notes that you'd like me to summarize? This could include:
- Git commit messages
- Pull request descriptions
- A changelog file
- Release notes
- Or any other documentation about what changed since the last release
Once you provide that information, I'll create an exciting CHANGES section with clean, 10-word bullets and relevant emojis as requested!
- Add sessionsForValidation memo (only computed when NewInstanceModal open)
- Add hasNoAgents memo (only recomputes on session count change)
- Conditionally render MaestroWizard only when wizardState.isOpen
- Conditionally render TourOverlay only when tourOpen
- Prevents ~11k lines of wizard code hooks/effects from running when closed
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.
- Added DebugWizardModal component for jumping directly to wizard review phase 🔧
- Implemented EmptyStateView for cleaner first-run experience with no agents 🎨
- Added default prompt for image-only messages to infer user intent 🖼️
- Fixed Alt+key shortcuts on macOS by using e.code instead of e.key 🍎
- Enhanced document selector UI to match Auto Run panel styling 📄
- Added elapsed time tracking to document generation progress screen ⏱️
- Improved keyboard navigation with global ⌘E for edit/preview toggle ⌨️
- Made tour progress dots clickable to navigate between past steps 🔵
- Fixed batch processor session reference to handle newly created sessions 🐛
- Updated tour steps to focus on essential features and keyboard shortcuts 🚀
- 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
- Wrap GitDiffViewer, GitLogViewer, SettingsModal with React.memo
- Add stable useCallback refs for onClose handlers in App.tsx
- Add useMemo for gitViewerCwd to prevent inline computation
- SettingsModal uses custom comparator for key props (isOpen, theme, activeThemeId)
Prevents unnecessary re-renders when Auto Run file watching triggers
App.tsx state updates.
- Added isResuming prop to PhaseReviewScreen for resume session handling
- Auto-create Auto Run folder when starting file watcher
- Added disk-based document detection when agent writes files directly
- Updated ProcessMonitor test assertions to match session name prefix format
Claude ID: 207f9996-7530-493f-bb99-96a3bb26c6f7
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Added listDocs and readDoc to autorun mock (phaseGenerator disk fallback)
- Updated wizard title assertions from 'Select Your Agent' to 'Create a Maestro Agent'
- Updated conversation screen text assertion to 'Project Understanding Confidence'
Claude ID: 207f9996-7530-493f-bb99-96a3bb26c6f7
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
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
- Logger now extends EventEmitter and emits 'newLog' events
- Added IPC channel 'logger:newLog' to forward logs to renderer
- Added onNewLog subscription API in preload
- LogViewer subscribes to real-time updates and displays newest first
- Updated LogViewer test mock to include onNewLog method
Claude ID: 207f9996-7530-493f-bb99-96a3bb26c6f7
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- 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
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.
- Remove filter that skipped files/directories starting with '.'
- Users can now see and reference hidden files like .meta, .env, .gitignore
- Keep existing filters for node_modules and __pycache__
- Update tests to verify hidden files are included
Fixes#17
Co-authored-by: Pedram Amini <pedramamini@users.noreply.github.com>
New tabs now automatically save synopsis entries to history by default,
improving discoverability of the history feature for new users.
- Change defaultSaveToHistory initial state from false to true in useSettings.ts
- Change saveToHistory fallback default from false to true in tabHelpers.ts
- Update corresponding test expectations
Claude ID: 28738afd-df74-4afa-bec4-9719d4360acf
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add Wand2 icon button next to "+ New Agent" with tooltip "Get started with AI wizard"
- Make hamburger menu position responsive: left-aligned when sidebar < 300px,
right-aligned otherwise to prevent overflow
- Keep minimum sidebar width at 256px to contain header elements
Claude ID: 545ca79b-d919-4e72-8030-8c9b70ca8c5c
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
The "Rendered more hooks than during the previous render" error occurred
because useCallback was defined after the early return statement. React
hooks must always be called in the same order on every render.
Claude ID: 545ca79b-d919-4e72-8030-8c9b70ca8c5c
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add tour:action event listeners in App.tsx for right panel control
(setRightTab, openRightPanel, closeRightPanel)
- Add tour:action event listeners in SessionList.tsx for hamburger menu
(openHamburgerMenu, closeHamburgerMenu)
- Add data-tour attributes to panel content areas (files-panel, history-panel)
- Update tour step selectors to target full panels instead of tab buttons
- Rename "New Project Wizard" to "New Agent Wizard" throughout UI
- Update wizard subtext to "Get started with AI"
- Update CLAUDE.md documentation to reflect naming changes
Claude ID: 545ca79b-d919-4e72-8030-8c9b70ca8c5c
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Created 91 unit tests covering all WizardContext functionality
- Tests cover: initial state, lifecycle, navigation, validation,
agent/directory/conversation/phase state, tour preferences,
completion, and state persistence
- Edge case tests for rapid changes, unicode, boundary values, etc.
- Uses vi.mocked() pattern consistent with project test conventions
- All 236 wizard tests pass
Add comprehensive onboarding analytics that stores all data locally (no external
telemetry) to track wizard and tour usage patterns:
- New OnboardingStats interface with 19 metrics covering:
- Wizard stats: start/completion/abandon/resume counts, duration tracking
- Tour stats: start/completion/skip counts, steps viewed tracking
- Conversation and phase generation metrics
- 8 tracking functions in useSettings.ts:
- recordWizardStart/Resume/Abandon/Complete
- recordTourStart/Complete/Skip
- getOnboardingAnalytics for computed completion rates
- Integration with MaestroWizard and TourOverlay components
- 24 new tests verifying all analytics functions
All analytics are stored locally only - respects user privacy.