Conversation
pedramamini
commented
Dec 14, 2025
- feat: add custom theme with live preview and import/export
- refactor: extract system prompts to centralized markdown files
- MAESTRO: add session isolation tests for Auto Run (Task 1.1)
- MAESTRO: add content sync race condition tests for Auto Run (Task 1.2)
- MAESTRO: add save timing and path correctness tests for Auto Run (Task 1.3)
- MAESTRO: add useAutoRunHandlers hook unit tests (Task 2.1)
- MAESTRO: add useAutoRunImageHandling hook unit tests (Task 2.2)
- MAESTRO: add useAutoRunUndo hook unit tests (Task 2.3)
- MAESTRO: add AutoRunExpandedModal component unit tests (Task 3.1)
- MAESTRO: add AutoRunSearchBar component unit tests (Task 3.2)
- MAESTRO: add AutoRunLightbox component unit tests (Task 3.3)
- MAESTRO: add AutoRun.test.tsx coverage expansion (Task 3.4)
- MAESTRO: add Auto Run IPC handler unit tests (Task 4.1)
- MAESTRO: expand autorun-watcher.test.ts coverage (Task 4.2)
- MAESTRO: add autorun-folder-validation.test.ts (Task 4.3)
- MAESTRO: add Auto Run + Batch Processing integration tests (Task 5.1)
- MAESTRO: add Auto Run + RightPanel integration tests (Task 5.2)
- MAESTRO: add Auto Run + Session List integration tests (Task 5.3)
- MAESTRO: add E2E test infrastructure and Auto Run setup wizard E2E test (Task 6.1)
- MAESTRO: add Auto Run editing E2E tests (Task 6.2)
- MAESTRO: add Auto Run batch processing E2E tests (Task 6.3)
- MAESTRO: add Auto Run session switching E2E tests (Task 6.4)
- MAESTRO: add Auto Run large document performance tests (Task 7.1)
- MAESTRO: add Auto Run many documents performance tests (Task 7.2)
- MAESTRO: add Auto Run rapid user interactions performance tests (Task 7.3)
- MAESTRO: add Auto Run memory leak detection performance tests (Task 7.4)
- fix: sync Auto Run draft content between panel and expanded modal
- fix: exclude sleep/suspend time from Auto Run elapsed time
- perf: reduce idle CPU usage with event-driven and activity-gated polling
Add a fully customizable theme option to the settings theme picker: - New CustomThemeBuilder component with mini UI preview showing all 13 colors - Initialize from any existing theme as a starting point - Color pickers for each theme property (bgMain, accent, textMain, etc.) - Export theme to JSON file / Import from JSON file - Custom theme persists across app restarts via useSettings - Tab key navigation cycles through all themes including custom Claude ID: fa8f6ebc-92e4-49e3-acfa-ef202e664cf0 Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
Move all built-in prompts from inline code to separate .md files in src/prompts/
for easier editing without code changes. Prompts use {{TEMPLATE_VARIABLES}} that
are substituted at runtime using the central substituteTemplateVariables function.
Changes:
- Add src/prompts/ directory with 7 prompt files (wizard, AutoRun, etc.)
- Add index.ts for central exports using Vite ?raw imports
- Add esbuild plugin in build-cli.mjs to support ?raw imports for CLI
- Update wizardPrompts.ts and phaseGenerator.ts to use central substitution
- Update CLAUDE.md documentation with new prompt location references
- Add TypeScript declaration for *.md?raw imports in global.d.ts
Claude ID: 38553613-f82f-4ce1-973e-fa80d42af3da
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
Create AutoRunSessionIsolation.test.tsx with 18 tests covering: - Session switching content isolation (editing in Session A doesn't affect Session B) - Document switching within same session - contentVersion force sync behavior for file watcher events - Save/Revert with session context - Dirty state tracking per session - Rapid session switching - Focus management on session switch - Imperative handle with sessions (isDirty, save) - Folder path isolation per session All tests pass. This addresses the "No tests for session switching content isolation" gap identified in Testing-II.md Phase 1 Task 1.1.
Created AutoRunContentSync.test.tsx with 25 tests covering: - Async content load protection (5 tests) - Local edit state protection during async updates (3 tests) - contentVersion force sync behavior (4 tests) - Dirty state and save consistency (4 tests) - Edge cases including unicode, long content, whitespace (6 tests) - Saved content state reset on context change (3 tests) These tests ensure that: - Local edits are preserved when content prop changes without session/document change - contentVersion changes force content sync (file watcher scenario) - Dirty state tracks correctly across session/document switches - Race conditions between typing and async prop updates are handled
…k 1.3) Created AutoRunBlurSaveTiming.test.tsx with 26 tests covering: - Save writes to correct session path (4 tests) - Unsaved changes discarded on session switch (3 tests) - savedContent state prevents duplicate saves (4 tests) - Save clears dirty state (3 tests) - Edge cases for save timing (5 tests) - Save during batch run lock (2 tests) - Save with missing required props (2 tests) - savedContent state reset behavior (3 tests) This completes Phase 1 of the Auto Run testing improvement plan with a total of 69 tests across 3 test files.
Created comprehensive test coverage for useAutoRunHandlers.ts with 52 tests: - handleAutoRunContentChange (5 tests): state updates only, no file writes - handleAutoRunModeChange (4 tests): edit/preview mode switching - handleAutoRunStateChange (2 tests): atomic scroll/cursor position updates - handleAutoRunSelectDocument (5 tests): document loading with version tracking - handleAutoRunRefresh (8 tests): document list reload and notifications - handleAutoRunCreateDocument (8 tests): file creation and selection - getDocumentTaskCount (8 tests): unchecked task regex parsing - handleAutoRunFolderSelected (6 tests): folder setup with auto-select - handleStartBatchRun (3 tests): batch run initiation - handleAutoRunOpenSetup (1 test): setup modal handling - Handler memoization (2 tests): stable references and updates All tests pass including 9130 total project tests.
Add comprehensive test coverage for the useAutoRunImageHandling hook with 53 tests covering: - Image loading via useEffect (6 tests) - Clipboard paste handling (8 tests) - Manual file upload (7 tests) - Image removal and markdown cleanup (7 tests) - imageCache behavior (4 tests) - Lightbox operations (9 tests) - State management (3 tests) - Handler memoization (2 tests) - Edge cases (3 tests)
Created comprehensive test coverage for the useAutoRunUndo hook with 40 tests: - pushUndoState (7 tests): push when content differs, skip when equals last snapshot, null selectedFile handling, textarea cursor position usage, redo stack clearing, explicit content/cursor, lastUndoSnapshotRef update - handleUndo and handleRedo (8 tests): undo/redo cycling, empty stack handling, multiple sequential undos/redos, null selectedFile handling - maxStackSize limit enforcement (2 tests): 50-entry limit, oldest entry discarding - resetUndoHistory (3 tests): lastUndoSnapshotRef update, fresh snapshots after reset, preserve existing history stacks - Cursor position restoration (4 tests): restore on undo, restore on redo, missing textarea ref handling, undefined selectionStart handling - scheduleUndoSnapshot (5 tests): 1000ms debounce delay, cancel pending on new schedule, cursor position from scheduled snapshot, cleanup on unmount, cleanup on document change - Per-document undo history isolation (3 tests): separate undo stacks, separate redo stacks, preserve history across document switches - Edge cases (5 tests): empty content, very long content, special characters, rapid push/undo operations, lastUndoSnapshotRef update on undo/redo - Handler memoization (2 tests): stable references, update on dependency change - lastUndoSnapshotRef exposure (2 tests): external access, external modification This completes Phase 2 of the Auto Run testing improvement plan.
Add comprehensive test coverage for AutoRunExpandedModal with 65 tests covering: - Basic rendering (title, AutoRun component, Edit/Preview/Run buttons) - Mode controls (Edit/Preview switching via AutoRun ref) - Batch run state (Run/Stop/Stopping buttons, disabled states) - Locked state during batch run (disabled Edit button, preview mode) - Dirty state detection and Save/Revert buttons - Close functionality (close button, Collapse button, backdrop click) - Layer stack integration (Escape key handling) - Focus management (auto-focus on mount) - Keyboard shortcuts display - Theme colors application - Modal structure verification - Image upload button states - Dirty state polling (100ms interval) - Accessibility attributes - Edge cases (undefined props)
Add comprehensive test coverage for the AutoRunSearchBar component with 81 tests covering: - Basic Rendering: search input, icons, close button, theme styling - Search Query Input Handling: onChange callback, special characters, unicode - Auto-Focus: useEffect focus behavior via ref - Match Count Display: empty/whitespace queries, "No matches" state, positioning - Navigation Buttons: visibility, click handlers, disabled/enabled states - Keyboard Navigation: Enter (next), Shift+Enter (prev), default prevention - Escape Key: close callback, propagation, query independence - Close Button: click handler, styling, visibility - Component Layout: flex layout, padding, rounded corners - Input/Button Styling: CSS classes, hover states, transitions - Edge Cases: long queries, large counts, rapid events, newlines - Handler Callback Stability: useCallback behavior, prop updates - Accessibility: input type, button titles with shortcuts - Theme Variations: light/dark theme colors
Add comprehensive test coverage for the AutoRunLightbox component with 79 tests: - Basic Rendering (10 tests): lightbox display, image src, buttons, external URLs - Navigation Buttons Rendering (3 tests): visibility based on image count - Image Navigation via Buttons (5 tests): next/prev, wrap-around, propagation - Keyboard Navigation (6 tests): Arrow keys, external URL handling - Escape Key - Close (3 tests): close on Escape, default prevention - Delete Key (6 tests): Delete/Backspace keys, external URL protection - Delete Button Click (5 tests): delete callback, navigation after delete - Copy to Clipboard (7 tests): copy, "Copied!" indicator, timeout, error handling - Backdrop Click (2 tests): close on backdrop, prevent close on image click - Close Button (2 tests): close callback, propagation - Bottom Info Display (8 tests): filename, position, hints - Focus Management (1 test): auto-focus for keyboard events - Image/Button/Overlay Styling (8 tests): CSS classes verification - Edge Cases (8 tests): empty list, long filename, special chars, data URLs - Memoization (1 test): React.memo verification - Accessibility (3 tests): alt text, button titles, tabIndex - Icon Sizes (2 tests): navigation and action icon dimensions - Delete After Navigation (2 tests): navigation state after delete
Adds ~70 new tests across 7 describe blocks covering previously untested AutoRun component paths: - Document Tree Prop Rendering (6 tests) - hideTopControls Prop Behavior (10 tests) - Template Autocomplete Integration (9 tests) - Mermaid Diagram Rendering in Preview (14 tests) - Content Versioning and External Changes (5 tests) - Task Count Display (8 tests) - Expand Button Behavior (4 tests) AutoRun.test.tsx now has 166 total tests (163 passing, 3 skipped).
Create autorun-ipc.test.ts with 88 tests covering: - autorun:listDocs - file list with tree structure, filtering, sorting - autorun:readDoc - markdown reading, path validation, error handling - autorun:writeDoc - write operations, subdirectory creation, security - autorun:listImages - image listing by document prefix, extension filtering - autorun:saveImage - timestamp naming, base64 decoding, extension validation - autorun:deleteImage - file deletion, path validation, security checks - autorun:deleteFolder - recursive deletion, safety checks Tests also cover: - Path traversal attack prevention - validatePathWithinFolder helper function - scanDirectory recursive scanning - Full document lifecycle integration - Image attachment workflow integration - Concurrent operations handling - Special filenames (spaces, unicode, special chars) - Large data handling (big files, many files) - Error recovery scenarios
Added 48 new tests to autorun-watcher.test.ts covering: - IPC Message Emission on File Change (9 tests) - Window-Specific Event Routing (8 tests) - Watcher Error Handling (18 tests) - Edge Cases and Boundary Conditions (13 tests) Total test count: 26 -> 74 tests
Add comprehensive test coverage for Auto Run folder validation: - 76 tests covering folder path validation, directory traversal prevention, path normalization, subfolder scanning, hidden file filtering, and symlink handling - Completes Phase 4 of Testing-II plan (238 total tests)
Add comprehensive integration tests covering the interaction between AutoRun component and batch processing. Tests verify: - Batch run locks editing (readonly, cursor-not-allowed, keyboard disabled) - Mode transitions (switches to preview during batch, restores after) - Task checkbox updates during batch run - Stop button cancels batch run - Run button disabled when agent is busy/connecting - Image upload disabled during batch run - Imperative handle methods work during batch run - State transitions from idle→running→stopping→stopped
Created src/__tests__/integration/AutoRunRightPanel.test.tsx with 31 tests covering: - Tab Switching State Management (8 tests): unsaved content behavior, external content changes via contentVersion, mode preservation, cursor position, dirty state, document selection, rapid tab switching - Panel Resize Content Preservation (6 tests): content during width resize, collapse/reopen, mode during resize, scroll position, min/max width handling - Expanded Modal Panel Sync (5 tests): content sync, mode changes, contentVersion updates, toggleAutoRunExpanded ref method - Focus Management (2 tests): AutoRun focus on tab switch, focusAutoRun ref method - State Persistence Across Tab Visibility (4 tests): unmount/remount behavior, saved content persistence, session change while on different tab - Edge Cases (5 tests): null session, empty content, very long content, special characters, unicode - Batch Run State Integration (2 tests): progress display on non-autorun tabs, locked editor during batch run Tests document the expected behavior where AutoRun uses local content state for responsive typing that is NOT auto-synced to parent. Users must save changes before switching tabs to persist them.
Add comprehensive integration tests for Auto Run and Session List interaction in AutoRunSessionList.test.tsx (26 tests): - Session Selection (7 tests): session switching loads correct Auto Run content, preserves document selection, handles groups and different folder paths, graceful unconfigured session handling - Session Deletion (5 tests): deleting active session switches to next with correct Auto Run, non-active and in-group deletion - Group Filtering (7 tests): collapsing/expanding groups, filtering sessions, drag-and-drop between groups - Bookmarks (2 tests): bookmarking preserves state, selection works - Edge Cases (4 tests): empty/long/unicode content, concurrent ops This completes Phase 5 of the Auto Run testing improvement plan with 103 integration tests total across 3 test files.
…st (Task 6.1) - Install Playwright dependencies (@playwright/test, electron-playwright-helpers) - Create playwright.config.ts for Electron E2E testing - Add e2e/fixtures/electron-app.ts with Electron launch fixtures and helpers - Create e2e/autorun-setup.spec.ts with 24 tests (13 active, 11 skipped pending dialog mocking): - Wizard Launch: keyboard shortcut, agent selection screen, Escape to close - Agent Selection Screen: Claude Code display, other agents, project name, keyboard navigation - Directory Selection Screen: (skipped - requires dialog mocking) - Document Creation Flow: (skipped - requires full wizard flow) - Wizard Navigation: step indicators, button states, Back navigation - Exit Confirmation: (skipped - requires dialog mocking) - Accessibility: keyboard-only navigation, focus management - Add npm scripts: test:e2e, test:e2e:ui, test:e2e:headed - Update .gitignore with e2e-results/, playwright-report/, test-results/
Created e2e/autorun-editing.spec.ts with 34 tests covering: - Typing in edit mode (6 tests) - Checkbox toggling (3 tests) - Image paste and attachment (5 tests - skipped, need mocking) - Mode switching (5 tests) - Save and revert (3 tests) - Search functionality (4 tests) - Document selector (3 tests) - Template variables (2 tests) - Expanded modal (3 tests) - Accessibility (3 tests) Also expanded e2e/fixtures/electron-app.ts with 10 new Auto Run helper functions.
Add comprehensive E2E tests for batch processing functionality: - Run button behavior (5 tests) - Batch runner modal (5 tests) - Task completion updates (5 tests, 2 skipped) - Stop button behavior (4 tests - skipped) - Editing lock during batch run (4 tests - skipped) - Mode management (3 tests - skipped) - Image upload state (2 tests - skipped) - Multi-document support (5 tests - skipped) - Progress display (3 tests - skipped) - Accessibility (3 tests) - Error handling (3 tests - skipped) Also add 10 batch processing helper functions to e2e/fixtures/electron-app.ts.
Add comprehensive E2E tests for session switching with Auto Run: - Session content preservation (4 tests): Display different content, preserve unsaved edits warning, restore content on round-trip, handle rapid switching - Session document independence (5 tests): Different document lists, maintain selected document, correct task counts, isolate edits, handle unconfigured sessions - Session mode preservation (3 tests): Edit/preview mode per session, scroll position, cursor position - Session state isolation (4 tests): Dirty state, batch run state, undo/redo stacks, search state - contentVersion handling (2 tests): Respect contentVersion changes, prevent content loss during concurrent operations - Edge cases (4 tests): Empty document, very long document, special characters, images/attachments - Session list integration (2 tests): Highlight correct session, update Auto Run on click - Full integration (4 tests): Complete A->B->A cycle, switch during active edit (2 skipped for multi-session infrastructure) - Accessibility (3 tests): Focus management, keyboard navigation, screen reader announcements Also added 11 new session switching helper functions to the electron-app.ts fixture for better test maintainability. Total: 32 tests for session switching E2E coverage. Completes Phase 6 of the Auto Run Testing Improvement Plan.
Created src/__tests__/performance/AutoRunLargeDocument.test.tsx with 41 tests: - Editing 10,000+ Line Documents (11 tests): rendering 10k/25k line documents, typing, position-based edits, rapid typing, deletion, 100k+ char content, dirty state, save/revert, Tab key insertion - Search in Large Documents (9 tests): match counting (200 matches in 10k lines), navigation, no matches handling, wrap-around, special regex chars, case-insensitive search, Escape close, state clearing - Scroll Performance in Preview (9 tests): rendering 10k/25k documents, mode switching, scroll position preservation, Cmd+E toggle, checkboxes/code blocks/headers, initialPreviewScrollPos prop - Mode Transitions (2 tests): rapid switching, content consistency - Edge Cases (5 tests): whitespace-only, very long lines, unicode/emoji, empty after large, contentVersion changes - Concurrent Operations (3 tests): undo/redo, session/document switching - Performance Timing (3 tests): 50k line document render, search, preview All tests verify functional correctness with large documents up to 50,000 lines and 150,000+ characters.
Add comprehensive performance tests for Auto Run document selector with many documents: - Folder with 500+, 1000, and 2000 documents - Document selector tree structure rendering and navigation - File watcher simulation with debouncing and filtering - AutoRun component with large document lists - Edge cases: unicode, special characters, long names - Performance boundary tests for efficient re-renders 38 new tests in AutoRunManyDocuments.test.tsx covering: - Dropdown rendering performance - Tree structure expansion/collapse - Create modal duplicate detection - Concurrent file watcher events - Loading states and refresh handling
… 7.3) Add comprehensive performance tests for rapid user interactions in Auto Run: - Rapid session switching (10/50/200 switches, A-B-A-B patterns) - Rapid mode toggling (20/50/100 toggles, batch run locking) - Rapid document selection (20/100/200 selections) - Combined interaction stress tests (100 mixed operations) - Performance boundary tests (200+ operations) 36 tests covering session switching, mode toggling, document selection, combined interactions, and performance boundaries.
Add comprehensive memory leak detection tests covering: - Repeated mount/unmount cycles (10 tests) - Image cache memory bounds (13 tests) - Undo stack memory with large edits (8 tests) - Combined memory stress tests (4 tests) - Cleanup verification (4 tests) - Edge cases for memory safety (5 tests) This completes Phase 7 of the Auto Run testing improvement plan with a total of 157 performance tests across all Phase 7 tasks.
When editing in the Auto Run editor panel, changes were not being carried over to the expanded modal view, and vice versa. This was because both views rendered separate AutoRun component instances with their own internal localContent state. Fixed by implementing shared draft state management at the RightPanel level that both instances read from and write to: - Added externalLocalContent/onExternalLocalContentChange props to AutoRun for external state management - RightPanel maintains sharedLocalContent/sharedSavedContent state - Both panel and modal AutoRun instances use this shared state - Internal state provides immediate feedback while syncing to shared - On remount, AutoRun restores from shared state (persists drafts) Updated tests to reflect the new behavior where drafts now persist across tab switches instead of being lost. Claude ID: ace07043-181b-4c1a-8877-de29e514067c Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
When a user starts an Auto Run, closes their laptop, and reopens it, the elapsed time was incorrectly including the time the laptop was asleep. This is because the timer was calculating wall-clock time from a start timestamp rather than tracking actual active time. Changes: - Add accumulatedElapsedMs and lastActiveTimestamp fields to BatchRunState - Update RightPanel to track visibility changes and pause/resume timer - Update useBatchProcessor to use visibility-aware time tracking - When document becomes hidden: accumulate time and pause tracking - When document becomes visible: resume tracking from current time - Final elapsed time in history entries now reflects actual active time This matches the existing pattern used by useActivityTracker for session active time tracking. Session: ee33b9c3-17c1-455f-91c1-663ea0821e65
- Replace CLI activity 2-second polling with fs.watch() for event-driven file monitoring. The watcher only fires when cli-activity.json actually changes, eliminating constant statSync calls. - Modify useActivityTracker to stop its 1-second interval after 60 seconds of user inactivity. The interval restarts immediately when user activity (keydown, mousedown, wheel, touchstart) is detected. - Apply the same activity-gating pattern to useGitStatusPolling. Git status polling now stops after 60 seconds of inactivity and resumes on user input. These changes should significantly reduce CPU usage when Maestro is idle, while maintaining responsive behavior during active use. Session: 9d6db9ea-ac53-4752-a996-0660d1338b2e
Code Review: More Testing, More Features (PR #28)SummaryThis is an impressive and comprehensive PR that adds significant value to the Maestro codebase. The combination of extensive test coverage, new features, performance optimizations, and architectural improvements demonstrates excellent engineering practices. Overall Assessment: ✅ Strong Approve 🎯 Strengths1. Exceptional Test Coverage ⭐
Example of quality testing (from // Clear test structure with descriptive headers
// Proper mocking and setup/teardown
// Tests actual behavior, not implementation details2. Smart Performance Optimizations 🚀Activity-Gated Polling (
Key Implementation: // Excellent: Zero CPU usage when truly idle
const handleActivity = () => {
lastActivityRef.current = Date.now();
const wasInactive = !isActiveRef.current;
isActiveRef.current = true;
if (wasInactive && !document.hidden) {
startPolling(); // Smart restart on activity
}
};3. Clean Architecture 🏗️Centralized Prompts (
Theme System (
4. Code Quality ✨
🔍 Issues FoundSecurity Concern: Theme Import Validation
|
Pull Request ReviewThis is an exceptional PR that represents a significant quality improvement to the Maestro codebase. SummaryThis PR includes:
Strengths1. Outstanding Test CoverageThe PR adds comprehensive test coverage across all layers:
Key highlights:
2. Excellent Architectural DecisionsCentralized prompts (src/prompts/):
Shared draft state (RightPanel.tsx:119-142):
3. Performance OptimizationsActivity-gated polling (useActivityTracker.ts, useGitStatusPolling.ts):
Sleep/suspend time exclusion (useBatchProcessor.ts:256-343):
4. Code Quality
Areas for Improvement1. Security Consideration (Minor)CLI batch processor (src/cli/services/batch-processor.ts:4): Impact: Low (current usage is safe, but consistency matters) 2. Code Duplication (Minor)The parseSynopsis function appears in two places:
Recommendation: Extract to src/shared/ for single source of truth. 3. Testing Gaps (Minor)While test coverage is excellent, note that many E2E tests are skipped:
Reason: Tests require dialog mocking infrastructure that does not exist yet. Recommendation: Track these as follow-up work items. Performance AnalysisBefore:
After:
Batch update optimization:
Security AssessmentNo security concerns identified:
RecommendationsMust Address:None - This PR is ready to merge as-is. Should Consider (for follow-up PRs):
Could Consider (nice-to-have):
Test Plan VerificationPhase 1 - Component edge cases (69 tests) Total: ~1,240 new tests added Final VerdictAPPROVE This is exemplary engineering work that:
The minor suggestions above are truly optional - this PR is production-ready. Impact:
Great work! Review completed using repository CLAUDE.md for style and convention guidance. |
Pull Request ReviewThis is a substantial PR with 27,257 additions across 66 files, introducing extensive testing infrastructure, custom theming, and performance optimizations. Here's my detailed analysis: 🎯 Overall AssessmentSTRENGTHS:
CONCERNS:
📝 Detailed Findings✅ Excellent Work1. Testing Infrastructure (Tasks 1.1-7.4)
2. Performance Optimizations// useActivityTracker.ts - Smart idle detection
const ACTIVITY_TIMEOUT_MS = 60000; // 1 minute of inactivity = idle
// Interval stops after 60s of inactivity - zero CPU when truly idleExcellent design:
3. Theme System ArchitectureThe
4. Prompt CentralizationMoving prompts to markdown files is a great refactoring:
|
…ostic logging tests (GRPO-17 Task 8) Completes the test suite for GRPO-17 by adding tests RunMaestro#28-38: - Gate recalibration tests: minReadyTasks=1, rolloutGroupSize=2, configurable cooldown - hasMultiSignalVariance: per-signal variance detection and uniform signal rejection - First-experience mode: bootstrap observations, library-not-empty guard, reward>0.7 threshold - Diagnostic logging: cooldown logging, readiness logging, qualifying task count logging All 85 tests in reward-collector-extended.test.ts pass. Full suite: 20,128 tests pass with 0 failures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>