Private
Public Access
0
0
Files
manual_slop/conductor/tracks.md
T

39 KiB

Project Tracks

This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder.


Phase 6: Context Composition Redesign

Initialized: 2026-05-10

Context Control & Workflow Enhancements

  1. Track: Granular AST Control (Signatures vs. Definitions) Link: ./archive/granular_ast_control_20260510/ Goal: Introduce 'AST Signatures' and 'AST Definitions' states in the Context Panel for C/C++ files.

  2. Track: Context Snapshotting per "Take" Link: ./archive/context_snapshotting_takes_20260510/ Goal: Snapshot and visually restore the Context Panel state when switching between Takes.

  3. Track: Interactive Text Slice Highlighting Link: ./archive/interactive_text_slice_highlighting_20260510/ Goal: Allow highlighting text ranges to create fuzzy-anchored slices (Def, Sig, Hide) that survive file modifications.

  4. Track: Context Batch Operations UX Link: ./archive/context_batch_operations_ux_20260510/ Goal: Add multi-select and batch state modification capabilities to the Context Panel for rapid wrangling.

  5. Track: GenCpp Project Initialization Link: ./archive/gencpp_project_init_20260510/ Goal: Configure manual_slop.toml in the gencpp repo to isolate conductor tracks, logs, and history.

  6. Track: Interactive AST Tree Masking Link: ./archive/interactive_ast_tree_masking_20260510/ Goal: Inspect C/C++ ASTs in the GUI and mask individual classes/functions as Def, Sig, or Hide.

  7. Track: Phase 6 Review and Regression Verification Link: ./archive/phase6_review_20260510/ Goal: Review Phase 6 implementation, perform full-suite batch regression testing, and expand test coverage for new context curation features.

  8. Track: GenCpp Dogfood Feedback Loop Link: ./tracks/gencpp_dogfood_feedback_20260510/ Goal: Verify Manual Slop can target gencpp at C:/projects/gencpp and establish a feedback mechanism for issues found during dogfooding.

  9. Track: Context Composition Decoupling Link: ./archive/context_comp_decouple_20260510/ Goal: Decouple Files & Media from Context Composition, add directory grouping, file stats, and view mode selection per file.

  10. Track: Context Composition Slice Visualization Link: ./archive/context_comp_slices_20260510/ Goal: Enhance slice visualization with visual editor, annotation support (tags/comments), and view presets.

  11. [~] Track: Context Preview & Slice Editor Fixes Link: ./tracks/context_preview_fixes_20260516/ Goal: Fix Preview button generating empty content, and Inspect/Slices buttons failing to open their respective editor panels.

  12. Track: GUI Refactor & Stabilization Link: ./archive/gui_refactor_stabilization_20260512/ Goal: Refactor gui_2.py to fix regressions and enforce better imgui scoping patterns.

  13. Track: I started to do a large cleanup to ./src/gui_2.py. I want you to study it and derive more information on how to maintain and write code for the python codebase. Please update product guidlines or the python code_styleguidleines based on what you discover. Also we may need to make some changes the mcp_tools for better structural awareness of annotations or other conventions with these python files. There is still more orgnaizatoin to be done like annotation/organizing the init method's declarations, among other nitpicks. Link: ./archive/gui_2_cleanup_20260513/


  1. Track: Add Python structural MCP tools (py_remove_def, py_add_def, py_move_def, py_region_wrap) Link: ./archive/python_structural_mcp_tools_20260513/

Phase 8: UI Polish

Initialized: 2026-06-03

User review surfaced five outstanding UI issues, each previously attempted without success. This track addresses them as five independent phases with their own TDD cycles and atomic commits.

  1. Track: UI Polish (Five Issues) Spec: ./../../docs/superpowers/specs/2026-06-03-ui-polish-design.md Plan: ./../../docs/superpowers/plans/2026-06-03-ui-polish.md *Goal: Resolve five long-standing UI issues:
    • Phase 1: GFM markdown table rendering (pre-processor into src/markdown_table.py, wire into MarkdownRenderer.render).
    • Phase 2: Widen the Keep Pairs numeric input next to Truncate in the discussion panel (gui_2.py:3829, width 80 -> 140, switch to drag_int).
    • Phase 3: Fix Refresh Registry button in Log Management — currently instantiates LogRegistry without calling load_registry() so the displayed table never reflects on-disk state (gui_2.py:1675).
    • Phase 4: Add Vendor State tab to Operations Hub — at-a-glance provider/model, context-window utilization, cache hit rate, last error class, vendor quota (new src/vendor_state.py aggregator + controller.vendor_quota field + ai_client wire-up).
    • Phase 5: Files & Media > Files directory-grouped tree (re-use aggregate.group_files_by_dir, mirror render_context_files_table collapsible-node style).*

Hot Reload Feature

  1. Track: Hot Reload Python Codebase (Phase 2) Link: ./archive/hot_reload_python_20260516/ Goal: Implement selective, state-preserving hot-reload for src/gui_2.py with delegation pattern refactor, manual trigger via Ctrl+Alt+R and GUI button, and visual error tint feedback on failure.

Phase 5: Codebase Curation

Initialized: 2026-05-07

Analysis & Structural Review

  1. Track: Comprehensive Path Mapping & Tooling Link: ./archive/ai_interaction_call_graph_20260507/ Goal: Automated and manual derivation of all major code paths and pipelines in the system.

  2. Track: Controller State Mutation Matrix Link: ./archive/controller_state_mutation_matrix_20260507/ Goal: Comprehensive map of all methods that modify the AppController and App state.

  3. Track: Source-Wide Redundancy Audit Link: ./archive/source_wide_redundancy_audit_20260507/ Goal: Deep file-by-file audit to identify unused methods, duplicate logic, and dead code.

  4. Track: Curate Provider Registries Link: ./archive/curate_provider_registries_20260507/ Goal: Move the PROVIDERS list to models.py and update all references to use this single source of truth.

  5. Track: Encapsulate AppController Status Link: ./archive/encapsulate_appcontroller_status_20260507/ Goal: Convert ai_status and mma_status to properties with thread-safe setters.

  6. Track: Decouple GUI Log Loading Link: ./archive/decouple_gui_log_loading_20260507/ Goal: Move Tkinter directory selection out of AppController and into gui_2.py.

  7. Track: Refactor Context Aggregation Pipeline Link: ./archive/refactor_context_aggregation_pipeline_20260507/ Goal: Modernize src/aggregate.py and consolidate legacy tier builders.

  8. Track: Cull Unused Symbols Link: ./archive/cull_unused_symbols_20260507/ Goal: Safely remove the 27 dead symbols identified in the redundancy audit.

  9. Track: Structural Dependency Mapping (SDM) Docstrings Link: ./archive/sdm_docstrings_20260509/

  10. Track: AppController Curation & Structural Alignment Link: ./archive/app_controller_curation_20260513/ Goal: Curate src/app_controller.py to match gui_2.py organization and enforce Python style conventions.


Remaining Backlog (Phases 3 & 4)

  1. [~] Track: Sloppy.py Startup Speedup [track-created: cd4fb045] [phase-3-done: 51c054ec] [phase-4-done: 3849d304] [phase-5-done: 515a3029] [phase-5d-done: de6b85d2] Link: ./tracks/startup_speedup_20260606/, Spec: ./tracks/startup_speedup_20260606/spec.md, Plan: ./tracks/startup_speedup_20260606/plan.md Measured: import src.gui_2 399ms (was 1770ms baseline; 77% reduction / 1370ms saved). import src.ai_client 167ms (was 1800ms; 90% reduction / 1633ms saved).

0c. [~] Track: Test Batching Refactor [track-created: b7a97374] Link: ./tracks/test_batching_refactor_20260606/, Spec: ./tracks/test_batching_refactor_20260606/spec.md, Plan: ./tracks/test_batching_refactor_20260606/plan.md (to be authored by writing-plans skill) Goal: Replace alphabetical 4-at-a-time batching in scripts/run_tests_batched.py with fixture-class-isolated tiers: 0 (opt-in: clean_install/docker, gated on env var + --include-opt-in flag), 1 (unit, grouped by subsystem batch_group, pytest-xdist), 2 (mock_app, grouped), 3 (live_gui, all in one pytest invocation to amortize 15s startup), H (headless), P (performance, last). Hybrid classification: auto-infer from filename + AST fixture scan, hand-curated tests/test_categories.toml overrides for cross-cutting and ambiguous files. Opt-in per-test order control via [[files.X.test_order]] sub-tables, gated on a conftest-loaded pytest plugin (no-op without entries). Priority: B (process isolation) > A (subsystem diagnostic) > C (speed). 4 phases: library+dry-run, shadow run, switch default, cleanup. Goal: Reduce sloppy.py startup time by ~2000-2400ms. Main Thread Purity Invariant: main thread (entering immapp.run()) never imports a module heavier than imgui_bundle + lean gui_2 skeleton. No-prefetch rule: heavy SDKs (google.genai 955ms, anthropic 430ms, openai 445ms, fastapi 470ms) are lazy-only — paid once on first use, on the asyncio thread, not in the background. No-new-threads rule: all background work goes through AppController._io_pool (4-thread ThreadPoolExecutor, named controller-io-N); zero new threading.Thread(...) calls in src/. Enforcement: static scripts/audit_main_thread_imports.py CI gate + runtime tests/test_main_thread_purity.py (sys.addaudithook test). 9 phases, 57 tasks. Target: import src.ai_client < 50ms (from ~1800ms), import src.gui_2 < 500ms (from ~3000ms), live_gui.wait_for_server(timeout=15) no longer times out.

0d. [ ] Track: Qwen, Llama & Grok Vendor Integration + Capability Matrix [track-created: 7c1d597e] Link: ./tracks/qwen_llama_grok_integration_20260606/, Spec: ./tracks/qwen_llama_grok_integration_20260606/spec.md, Plan: ./tracks/qwen_llama_grok_integration_20260606/plan.md (to be authored by writing-plans skill) Goal: Add first-class support for Qwen (DashScope native SDK), Llama (Ollama local + OpenRouter cloud + custom URL), and Grok (xAI OpenAI-compatible). Introduce a Vendor Capability Matrix (7 v1 capabilities: vision, tool_calling, caching, streaming, model_discovery, context_window, cost_tracking; audio and server-side code_execution deferred) declared per-(vendor, model) in src/vendor_capabilities.py. GUI reads the matrix to enable/disable 9 UI elements (screenshot button, tools toggle, cache panel, stream progress, fetch models, token budget, cost panel) instead of hard-coding per-vendor branches. Extract a shared send_openai_compatible() helper in src/openai_compatible.py that operates on a normalized request/response data structure; each _send_<vendor>() is a thin boundary adapter (data-oriented design per Fleury/Acton/Lottes). Refactor _send_minimax() to use the helper (~250 lines → ~50). Out of scope (separate follow-up track): Anthropic/Gemini/DeepSeek migration to the matrix. 6 phases: matrix+helper, Qwen, Grok+Llama, MiniMax refactor, UX adaptation, docs+archive.

0e. [ ] Track: Data-Oriented Error Handling (Fleury Pattern) [track-created: 494f68f9] Link: ./tracks/data_oriented_error_handling_20260606/, Spec: ./tracks/data_oriented_error_handling_20260606/spec.md, Plan: ./tracks/data_oriented_error_handling_20260606/plan.md (to be authored by writing-plans skill) Goal: Introduce Ryan Fleury's "errors are just cases" framework as a project convention. New src/result_types.py (ErrorKind enum, ErrorInfo dataclass, Result[T] with data + side-channel errors list, NilPath + NilRAGState sentinel singletons) and new conductor/code_styleguides/error_handling.md canonical reference. Refactor src/mcp_client.py ((p, err) tuples → Result; 30+ assert p is not None → nil-sentinel paths), src/ai_client.py (ProviderError exception → ErrorInfo dataclass; _send_<vendor>()_send_<vendor>_result() returning Result[str]; send() marked @deprecated; new send_result() public API), and src/rag_engine.py (RAGEngine methods → Result returns). Update conductor/product-guidelines.md + workflow.md + docs/guide_*.md so the convention is documented and future plans can incrementally migrate the remaining src/ files. Blocked by startup_speedup, test_batching_refactor, and qwen_llama_grok tracks. 5 phases: foundation+styleguide, mcp_client refactor, ai_client refactor (highest risk; ProviderError removal), rag_engine refactor, deprecation+docs+archive. Follow-up: ./tracks/public_api_migration_20260606/ (planned; not yet specced) — removes the deprecated ai_client.send() and migrates all callers.

0f. [ ] Track: Data Structure Strengthening (Type Aliases + NamedTuples) [track-created: ed42a97a] Link: ./tracks/data_structure_strengthening_20260606/, Spec: ./tracks/data_structure_strengthening_20260606/spec.md, Plan: ./tracks/data_structure_strengthening_20260606/plan.md (to be authored by writing-plans skill) Goal: Improve AI-readability by naming 430 currently-anonymous dict[str, Any] / list[dict[...]] / Tuple[...] types. New src/type_aliases.py with 10 TypeAlias definitions (Metadata, CommsLogEntry, CommsLog, HistoryMessage, History, FileItem, FileItems, ToolDefinition, ToolCall, CommsLogCallback) and 1 NamedTuple (FileItemsDiff). Mechanical replacement of 345 weak sites across 6 high-traffic files: src/ai_client.py (139), src/app_controller.py (86), src/models.py (51), src/api_hook_client.py (32), src/project_manager.py (20), src/aggregate.py (17). Add --strict mode to the existing scripts/audit_weak_types.py (committed in 84fd9ac9; found the 430 sites) so it becomes a permanent CI gate that fails when new weak types are introduced. Generate scripts/audit_weak_types.baseline.json with the post-refactor count. 2 phases: aliases + 6-file replacement + audit baseline; NamedTuples + docs + archive. Data-grounded: the audit script is the source of truth; the count drops from 430 to ~60 (86% reduction) in the 6 high-traffic files. Honest about what's missing: 23 lower-impact files remain; TypedDict/dataclass migration is deferred to a follow-up track. 2-3 days work, 1-2 phases, low risk.

0b. [x] Track: rag_phase4_stress_test_flake_20260606 — fixed 16412ad5 Status: 2026-06-06 — Surfaced during post-v2 verification. Resolved: real bug, NOT a test flake. Root cause: ChromaDB collection dimension mismatch across test runs. The persistent on-disk collection (tests/artifacts/live_gui_workspace/.slop_cache/chroma_test_stress/) was created by a previous run with Gemini embeddings (3072-dim); the current run uses local SentenceTransformers (384-dim). index_file() upserts silently corrupt the collection, then search() fails with Collection expecting embedding with dimension of 3072, got 384 and the AI request never reaches 'done' status, timing out the 500.5s = 25s poll loop. Fix: RAGEngine._init_vector_store now calls _validate_collection_dim which inspects the first existing vector's dim, compares to the current provider's output, and recreates the collection on mismatch (with a stderr warning). Regression tests added: test_rag_collection_dim_mismatch_recreates_collection and test_rag_collection_dim_match_preserves_collection in tests/test_rag_engine.py. This also fixes a real user-facing bug: switching embedding providers in the GUI previously caused silent corruption. Commit 16412ad5.* 0a. [ ] Track: prior_session_test_harden_20260605 [superseded by live_gui_test_hardening_v2_20260605] Status: 2026-06-05 — Surfaced during live_gui_fragility_fixes_20260605 execution. test_prior_session_no_pop_imbalance::test_no_extraneous_pop_when_prior_session_renders is more under-mocked than expected. Completed as part of live_gui_test_hardening_v2_20260605: test refactored to call narrow render_prior_session_view (50+ mocks -> 20, runtime 5.79s -> 0.08s). Commit 26e0ced4.

  1. Track: Bootstrap gencpp Python Bindings Link: ./tracks/gencpp_python_bindings_20260308/

  2. Track: Tree-Sitter Lua MCP Tools Link: ./tracks/tree_sitter_lua_mcp_tools_20260310/

  3. Track: GDScript Language Support Tools Link: ./tracks/gdscript_godot_script_language_support_tools_20260310/

  4. Track: C# Language Support Tools Link: ./tracks/csharp_language_support_tools_20260310/

  5. Track: OpenAI Provider Integration Link: ./tracks/openai_integration_20260308/

  6. Track: Zhipu AI (GLM) Provider Integration Link: ./tracks/zhipu_integration_20260308/

  7. Track: AI Provider Caching Optimization Link: ./tracks/caching_optimization_20260308/

  8. Track: Manual UX Validation & Review Link: ./tracks/manual_ux_validation_20260302/


Phase 4 Archive

See below for completed Phase 4 tracks.

  1. Track: Session Context Snapshots & Visibility (Archived 2026-03-22 - Replaced by discussion_hub_panel_reorganization) Link: ./archive/session_context_snapshots_20260311/

  2. Track: Discussion Takes & Timeline Branching (Archived 2026-03-22 - Replaced by discussion_hub_panel_reorganization) Link: ./archive/discussion_takes_branching_20260311/

  3. Track: RAG Support Link: ./archive/rag_support_20260308/

  4. Track: Agent Tool Preference & Bias Tuning Link: ./archive/tool_bias_tuning_20260308/

  5. Track: Expanded Hook API & Headless Orchestration Link: ./archive/hook_api_expansion_20260308/

  6. Track: Codebase Audit and Cleanup Link: ./archive/codebase_audit_20260308/

  7. Track: Expanded Test Coverage and Stress Testing Link: ./archive/test_coverage_expansion_20260309/

  8. Track: Beads Mode Integration Link: ./archive/beads_mode_20260309/

  9. Track: Optimization pass for Data-Oriented Python heuristics Link: ./archive/data_oriented_optimization_20260312/

  10. Track: Rich Thinking Trace Handling Link: ./archive/thinking_trace_handling_20260313/

  11. Track: Smarter Aggregation with Sub-Agent Summarization Link: ./archive/aggregation_smarter_summaries_20260322/

  12. Track: System Context Exposure Link: ./archive/system_context_exposure_20260322/

  13. Track: Advanced Log Management and Session Restoration Link: ./archive/log_session_overhaul_20260308/

  14. Track: UI Theme Overhaul & Style System Link: ./archive/ui_theme_overhaul_20260308/

  15. Track: Selectable GUI Text & UX Improvements Link: ./archive/selectable_ui_text_20260308/

  16. Track: Markdown Support & Syntax Highlighting Link: ./archive/markdown_highlighting_20260308/

  17. Track: Custom Shader and Window Frame Support Link: ./archive/custom_shaders_20260309/

  18. Track: UI/UX Improvements - Presets and AI Settings Link: ./archive/presets_ai_settings_ux_20260311/

  19. Track: Discussion Hub Panel Reorganization Link: ./archive/discussion_hub_panel_reorganization_20260322/

  20. Track: Undo/Redo History Support Link: ./archive/undo_redo_history_20260311/

  21. Track: Advanced Text Viewer with Syntax Highlighting Link: ./archive/text_viewer_rich_rendering_20260313/

  22. Track: Tree-Sitter C/C++ MCP Tools Link: ./archive/ts_cpp_tree_sitter_20260308/

  23. Track: Saved System Prompt Presets Link: ./archive/saved_presets_20260308/

  24. Track: Saved Tool Presets Link: ./archive/saved_tool_presets_20260308/

  25. Track: External Text Editor Integration for Approvals Link: ./archive/external_editor_integration_20260308/

  26. Track: Agent Personas: Unified Profiles & Tool Presets Link: ./archive/agent_personas_20260309/

  27. Track: Advanced Workspace Docking & Layout Profiles Link: ./archive/workspace_profiles_20260310/

  28. Track: Review investigation of codebase and expose/cull any hidden invisible prompting Link: ./archive/cull_hidden_prompts_20260502/

  29. Track: Test Regression Verification Link: ./archive/test_regression_verification_20260307/


Phase 2: Strict Execution Queue (Completed 2026-03-06)

See: ./archive/strict_execution_queue_completed_20260306/


Phase 0: Infrastructure (Critical)

  • Track: Conductor Path Configuration

Recent Completed Tracks (2026-05+)

Archived 2026-06-03 via archive_completed_tracks_20260603. All directories moved from tracks/ to archive/.

  • Track: Robust Live Simulation Verification













  • Track: Implement Async Context Preview to fix UI hangs and add an 'Everything' Command Palette. Link: ./archive/command_palette_and_performance_20260602/ Goal: Async context preview offload (background thread, state lock) + Command Palette (32 commands, fuzzy search, Ctrl+Shift+P, Up/Down/Enter nav, 13 unit + 7 live_gui tests). Phases 1-3 complete.

  • Track: Comprehensive Documentation Refresh Link: ./archive/documentation_refresh_comprehensive_20260602/ Goal: Refresh stale documentation across docs/. Completed: ASCII file tree updates (docs/Readme.md + Readme.md 5→14 guides, 22→53 src modules), docs/guide_testing.md (new, comprehensive 251-file test suite reference), 7 per-source-file guides (guide_gui_2.md, guide_ai_client.md, guide_api_hooks.md, guide_mcp_client.md, guide_app_controller.md, guide_multi_agent_conductor.md, guide_models.md). All 14 guides cross-linked. Gap analysis: ./archive/documentation_refresh_comprehensive_20260602/gap_analysis.md.

    Sub-tracks (all checkpointed):

    • Sub-Track 1: Docs Layer Refresh [checkpoint: 20225c8] — 18 per-file atomic commits. 15 guides (8 refreshed + 7 new), Subsystem Index (24 entries), 106 cross-links all resolve, symbol parity fixed (apply_nerv_theme -> apply_nerv).
    • Sub-Track 2: Conductor Docs Refresh [checkpoint: ef4efab2] — 4 per-file atomic commits: product.md (14 guides, MiniMax, Command Palette), tech-stack.md (MiniMax, Gemini Embedding 001), workflow.md (2026-06-02 doc refresh, 45-tool count), index.md (active track links).
    • Sub-Track 3: Agent Config Refresh [checkpoint: 87f668a6] — 3 per-file atomic commits: AGENTS.md (5.4K -> 0.7K thin pointer), CLAUDE.md (6.7K -> 0.2K deprecation stub), GEMINI.md (5 providers, sloppy.py entry, 12 key modules). Drift check: 0 issues in 9 mirrored skill files.
  • Track: Test Consolidation & TOML Sandboxing [checkpoint: cb91006c] Spec: ./../../docs/superpowers/specs/2026-06-02-test-consolidation-design.md, Plan: ./../../docs/superpowers/plans/2026-06-02-test-consolidation.md Goal: Audit tests for real-TOML usage, migrate offenders to sandboxed patterns. Added scripts/check_test_toml_paths.py audit script (CI gate). Migrated test_mcp_client_whitelist_enforcement to tmp_path (was the only offender). Skipped redundant enforce_no_real_toml fixture — existing isolate_workspace autouse + audit script provide equivalent coverage.


  • Track: Clean Install Test [checkpoint: d14ae3b] Link: ./tracks/clean_install_test_20260603/, Spec: ./../../docs/superpowers/specs/2026-06-02-clean-install-test-design.md, Plan: ./../../docs/superpowers/plans/2026-06-02-clean-install-test.md Goal: Add opt-in pytest test (RUN_CLEAN_INSTALL_TEST=1) that clones the repo to tmp_path, runs uv sync, launches sloppy.py --enable-test-hooks, verifies Hook API responds. Catches "works on my machine" failures. Added clean_install marker to pyproject.toml. Created tests/test_clean_install.py (114 lines, uses urllib.request from stdlib per tech-stack.md dependency minimalism rule - deviation from plan). Skipped by default. Marked with @pytest.mark.clean_install.

  • Track: Fix markdown_helper.py for imgui-bundle >=1.92.801 [checkpoint: 7a34edf] Link: ./tracks/markdown_helper_language_api_compat_20260603/ Goal: First thing the clean install test caught. ed.TextEditor.LanguageDefinitionId enum was removed in imgui-bundle>=1.92.801. Replaced with version-compat shim helpers _get_language_id(name) and _set_editor_language(editor, lang_obj) that detect the API at runtime (1.92.5 enum vs 1.92.801+ factory). Also added parallel _editor_lang_cache to track current language tag per editor (robust to API name differences like "C++" vs "cpp"). Verified: test passes in opt-in mode (1.92.801), shim still works in local 1.92.5 env, follow-up commit b306f8f corrected test URL /api/mma_status -> /api/gui/mma_status (actual endpoint per src/api_hooks.py:181).

  • Track: Multi-Theme TOML System (Multi-Themes Mod) [checkpoint: 38abf231] Link: ./tracks/multi_themes_20260604/, Plan: ./../../docs/superpowers/plans/2026-06-04-theme-syntax-modularization.md Goal: TOML-based theming: per-theme file layout (themes/<name>.toml global + <project>/project_themes.toml overrides), schema (syntax_palette + [colors] table of imgui.Col_ snake_case keys), public API (load_themes_from_disk, get_syntax_palette_for_theme, apply_syntax_palette), MarkdownRenderer calls apply_syntax_palette on init, color-callable convention (C_LBL() / C_VAL() so theme switches take effect at use site), upstream 4-syntax-palette limit documented in ./../../docs/guide_themes.md (new guide). 8 new theme files shipped. Theme-caused production bug fixed at src/gui_2.py:3705-3707 (commit 1469ecac): DIR_COLORS dict stored C_VAL not C_VAL(), so imgui.text_colored(d_col, ...) was being passed a function. Fixed by calling the function at the use site.

  • [~] Track: Test Regression Fixes (post multi-themes ship) [checkpoint: d7487af4] Link: ./tracks/regression_fixes_20260605/, Plan: ./../../docs/superpowers/plans/2026-06-05-regression-fixes.md Goal: Resolve 21 failing tests surfaced after the multi-themes ship. 11 of 21 fixed across 10 atomic commits: theme regression (test_gui_progress C_LBL/C_VAL API change, 38abf231), pre-existing non-live_gui (test_gui_phase4 markdown_helper mocks, df43f158; test_view_presets persona_manager mock, 970f198c), GUI production bug (DIR_COLORS callable, 1469ecac), live_gui LogPruner busy loop (ac08ee87), RAG NoneType guard (c96bdb06). Root cause of remaining 10 live_gui failures identified (commit d7487af4): imgui.save_ini_settings_to_memory() at src/gui_2.py:601 crashes C-level (0xc0000005) when called in the first few render frames because ImGui's internal state (Fonts, DisplaySize, Settings) isn't ready. Crash is uncatchable from Python. Fixed with _ini_capture_ready flag (defer-not-catch pattern): first call returns b"" and sets the flag, subsequent calls invoke the C function. Bisect anchors: 7df65dff (pre-existing failures start), 7ea52cbb (theme-caused failures start). Deferred follow-up track needed for ~5 remaining live_gui tests (MMA engine state transitions, RAG status timing, one test needing substantial render path mocks).

  • Track: Live-GUI Fragility Fixes (post regression_fixes ship) [checkpoint: 1488e715] [superseded by live_gui_test_hardening_v2] Link: Plan: ./../../docs/superpowers/plans/2026-06-05-live-gui-fragility-fixes.md, Spec: ./../../docs/superpowers/specs/2026-06-05-live-gui-fragility-fixes-design.md Goal: Resolve the 3 remaining live_gui failures (269/272 → 271/272 plus 1 new regression unit test). 1-line src fix in _capture_workspace_profile (change ini=b"" to ini="" to satisfy WorkspaceProfile.ini_content: str contract that tomli_w enforces); the b"" sentinel was a regression from d7487af4 that caused save_workspace_profile to raise TypeError, profile never saved, load_workspace_profile became a no-op. 1 new unit test (tests/test_workspace_profile_serialization.py) encoding the str/bytes contract. test_prior_session_no_pop_imbalance is deferred to a separate follow-up track — the test was more under-mocked than the spec assumed; fixing imscope.window tuple-return only revealed the next un-mocked dependency (imgui.begin returning bool where 2-tuple expected at line 4496). render_main_interface is a kitchen-sink function requiring 50+ mocks; a follow-up track will either add the missing mocks or refactor the test to exercise a narrow prior-session render path. Change 4 (doc hardening of defer-not-catch sections) deferred to track end; not done due to scope focus.

  • Track: Live-GUI Test Hardening v2 (post v1 ship) [complete: 26e0ced4] *Link: ./tracks/live_gui_test_hardening_v2_20260605/ Goal: Resolve the 4 remaining live_gui failures (was 3 in v1; 1 new regression). v1 fixed the str/bytes sentinel bug but exposed a deeper issue. Decomposed into 4 sub-tracks, 3 active: Sub-track 1: live_gui_state_sync_20260605 - Spec: ./../../docs/superpowers/specs/2026-06-05-live-gui-state-sync-design.md, Plan: ./../../docs/superpowers/plans/2026-06-05-live-gui-state-sync.md. REAL root cause was bad indentation in src/gui_2.py:607 (user fixed). The App class had _capture_workspace_profile being parsed as nested inside _apply_snapshot due to indentation. Once fixed, 3 tests (test_auto_switch_sim, test_workspace_profiles_restoration, test_undo_redo_lifecycle) immediately passed. App/Controller state sync is already correctly handled by getattr/setattr at lines 478-487. Sub-track 2: prior_session_test_harden_20260605 - Spec: ./../../docs/superpowers/specs/2026-06-05-prior-session-test-harden-design.md, Plan: ./../../docs/superpowers/plans/2026-06-05-prior-session-test-harden.md. Test refactored to call narrow render_prior_session_view (50+ mocks -> 20, runtime 5.79s -> 0.08s). Commit 26e0ced4. Sub-track 3: wait_for_ready_test_pattern_20260605 - SKIPPED. Tests already pass without polling. The flake hypothesis (time.sleep not enough) was wrong; the real cause was the indent. Polling can be a follow-up hardening pass if tests become flaky in CI. Sub-track 4: undo_redo_lifecycle_fix_20260605 - RESOLVED by Sub-track 1 indent fix. test_undo_redo_lifecycle now passes; no separate investigation needed. Net result: 4 originally-failing live_gui tests all pass. User can run the full batched suite to confirm.

Failing tests:

  • test_auto_switch_sim (still fails from v1) - Deeper bug: App/Controller state sync. The test does set_value('ui_separate_tier1', True) which goes to controller.ui_separate_tier1, but the save reads from app.ui_separate_tier1. Two different objects; the saved profile has the wrong value. Same root cause for show_windows['Diagnostics'].
  • test_workspace_profiles_restoration (still fails from v1) - same App/Controller sync bug.
  • test_prior_session_no_pop_imbalance (deferred from v1) - render_main_interface is a kitchen-sink function requiring 50+ mocks; needs refactor or extensive mock additions.
  • test_undo_redo_lifecycle (NEW regression) - undo restores temperature correctly but ai_input is empty string instead of "Initial Input". Snapshot mechanism probably doesn't include ai_input field.

TODO(Ed): Support "Virtual" Pasted entries for the context.