Commit Graph

225 Commits

Author SHA1 Message Date
ed 20b0b497fe chore: revert gui changes to working state (eea7f906) 2026-05-10 17:10:18 -04:00
ed 860b509e84 fix(gui): proper content-based sizing for Files and Screenshots child panels
- Files: child_h = min(max(len(files),1) * 28 + 40, 400) - 28px per row, 40px header, 400px max
- Screenshots: shot_h = min(max(len(shots),1) * 28 + 40, 300) - same pattern with 300px max

Replaces hacky (0, -40) which stretched to fill available space regardless of content.
2026-05-10 16:48:04 -04:00
ed fe11b41364 chore: revert Files & Media to original working code 2026-05-10 16:44:08 -04:00
ed b8155c0745 fix(gui): simplify Files & Media collapsing headers to avoid scope mismatch 2026-05-10 16:42:26 -04:00
ed dbfbb05899 fix(gui): add resizable splitter between Files and Screenshots panels
Added:
- _files_split_v state (0.5 default) for split ratio
- _files_open and _shots_open tracking for collapse state
- Splitter bar between collapsing headers when both open
- Splitter updates _files_split_v based on mouse drag
2026-05-10 16:41:28 -04:00
ed 6b612deb23 fix(gui): proper splitter placement for persona and bias panels
- Persona editor: splitter shown when BOTH models and prompt open (not just prompt)
- Bias profiles: move splitter OUTSIDE btool_scroll child, between both sections
- Fixed nesting issues causing EndTable/EndChild errors
2026-05-10 16:40:44 -04:00
ed 5e1700744f fix(gui): improve tool preset manager adaptive sizing
- When both sections open: use min(h, max(200, rem_y*0.3)) for tools, min(h, max(150, rem_y*0.5)) for bias
- Single section open: cap at 400px instead of hard small values
- This preserves split ratio while ensuring minimum readable sizes
2026-05-10 16:37:11 -04:00
ed e0f1d7840f fix(gui): cap persona system prompt text box height at 300px 2026-05-10 16:35:28 -04:00
ed 6b43e2f5cd fix(gui): cap tool preset and persona panel child heights
- Tool preset manager: h1 max 250px, h2 max 200px
- Persona editor: h1 max 300px
Prevents excessive empty space when panels are mostly empty.
2026-05-10 16:33:36 -04:00
ed d28fd58f03 fix(gui): limit Files & Media collapsible child height to reasonable max
The begin_child() was using (0, -40) which made it stretch to fill parent.
Changed to (0, min(len(items) * 30 + 50, 300)) so it:
- Sizes to content (30px per row + 50px header)
- Caps at 300px max height
- Allows scrolling when content overflows
2026-05-10 16:30:54 -04:00
ed 0f180e8c4b fix(gui): fix typo current_cat_tools -> curr_cat_tools in tool preset manager 2026-05-10 16:27:53 -04:00
ed eea7f90607 fix(gui): fix imgui.selectable() signature mismatch in _render_history_window
selectable() now requires p_selected bool arg, not just label.
Changed to use _, selected = imgui.selectable(label, False) pattern.
2026-05-10 16:25:16 -04:00
ed 45a3664f85 refactor: remove dead main_context field from Project Settings
The main_context field in Project Settings was stored but never used.
Nothing reads it to inject into AI context. System Prompt in AI Settings
already serves this purpose.

Removed:
- app_controller.py: ui_project_main_context state variable and all refs
- gui_2.py: Main Context File UI section from Projects panel
- project_manager.py: main_context from default_project()
- project.toml, manual_slop.toml, gencpp_manual_slop_template.toml: main_context entries
2026-05-10 16:23:21 -04:00
ed 16b99d16a4 feat(context): Interactive Text Slice Highlighting with Fuzzy Anchors 2026-05-10 13:57:01 -04:00
ed b4f8633bd6 feat(context): Interactive AST Tree Masking with per-symbol toggles 2026-05-10 13:28:15 -04:00
ed 62d8573004 feat(ui): add shift-click range selection to context batch operations 2026-05-10 13:12:13 -04:00
ed 51f804debc feat(ui): add batch operations to context composition panel 2026-05-10 13:09:15 -04:00
ed cba79350de feat(context): Granular AST Control for C/C++ files 2026-05-10 13:05:32 -04:00
ed b958fa2819 refactor(phase5): Comprehensive stabilisation pass. De-duplicated App/Controller state, hardened session reset, and updated integration tests with deterministic polling. 2026-05-09 16:55:45 -04:00
ed 7b7f53fff9 feat(gui): Implement cb_load_prior_log wrapper in App class 2026-05-09 15:13:24 -04:00
ed 8c06c1767b refactor(sdm): Global pass with refined 'External Only' SDM tags. Pruned redundant internal references and fixed indentation logic in injector. Verified full project compilation. 2026-05-09 15:00:35 -04:00
ed 9f18497786 chore(conductor): Mark track 'Curate Provider Registries' as complete. Includes critical fixes for RecursionError, NoneType Hook API responses, and plurality mismatches. 2026-05-08 22:01:15 -04:00
ed 86fa1dd67d feat(gui): track VSCode diff process, close it when patch modal closes
- Store _vscode_diff_process after launching external editor
- Add _close_vscode_diff() helper to terminate the process
- Call _close_vscode_diff() when Apply Patch or Reject is clicked
2026-05-07 21:30:23 -04:00
ed b70b837885 test: Add GUI integration tests for external editor with live_gui fixture
Note: Due to process boundaries (GUI runs in subprocess), monkeypatch doesn't
cross to GUI subprocess. Manual verification requires configuring
config.toml in project root with VSCode path.
2026-05-07 20:42:36 -04:00
ed f78042969d fix(gui): Use theme colors in External Editor panel 2026-05-07 19:48:06 -04:00
ed 630c9abd3a feat(gui): Improve External Editor panel with combo selector
- Add dropdown combo to select default editor
- Add _set_external_editor_default method to save selection to config
- Clean up layout and improve visual hierarchy
- Add better color coding for configured vs default editors
2026-05-07 19:35:49 -04:00
ed 8fe366e041 fix(external-editor): Fix TextEditorConfig parsing and add error handling
- TextEditorConfig.from_dict no longer requires 'name' field since name comes from dict key
- Added try/except around _render_external_editor_panel to prevent tab bar mismatch
2026-05-07 19:30:45 -04:00
ed 0948cae5a0 fix(external-editor): Move panel to Operations Hub, fix config key lookup
- Moved External Editor panel from AI Settings to External Tools tab in Operations Hub
- Fixed default_editor lookup to use nested [tools.default_editor] structure
- Added example entries for vscode, notepadpp, 10xEditor, rider, sublime
- Improved panel UI with section header and clearer formatting
2026-05-07 19:27:07 -04:00
ed d2beb79563 feat(gui): Add External Editor configuration panel to AI Settings
- Added _render_external_editor_panel method to display configured editors
- Shows default editor marker and diff args
- Displays config file locations for user reference
- Integrated as 'External Editor' section in AI Settings
2026-05-07 19:12:28 -04:00
ed c711d26eac feat(gui): Add 'Open in External Editor' button to patch modal
- Added button to launch external editor for reviewing agent proposed changes
- Added _open_patch_in_external_editor method to handle the launch logic
- Integrated with ExternalEditorLauncher and create_temp_modified_file
2026-05-07 19:10:13 -04:00
ed 7d12806ce6 finally? 2026-05-07 13:42:31 -04:00
ed 2b5185a78f perf(entropy): Fix nested imports in hot paths
Hoisted imports from inside frequently-called functions to module level:

app_controller.py:
- Added traceback and inspect at module level
- Removed 3 nested traceback imports from exception handlers

gui_2.py:
- Added traceback at module level
- Removed nested traceback import from _gui_func exception handler
- Kept uvicorn lazy-loaded (only for --headless mode)

multi_agent_conductor.py:
- Removed unused 'import sys' from run()
- Removed redundant nested imports (already at module level)

Also adds audit scripts and entropy findings documentation.
2026-05-06 20:18:30 -04:00
ed f6feab9243 fix(gui): Correct indentation bug in _render_mma_dashboard that caused crash
The code after the 'prior session' return block was incorrectly indented
at 1 space, placing it inside the 'if is_viewing_prior_session' block
instead of after it. This caused 'total_cost' and 'perc' to be undefined
when viewing an active session, triggering an IM_ASSERT error.

Fix: Moved 'track_name', 'track_stats', and 'total_cost' to the
correct 2-space indentation (method body level).
2026-05-06 19:41:22 -04:00
ed 6bd052efc5 chore(perf): Save state before comprehensive entropy cleanup 2026-05-06 16:09:41 -04:00
ed 23c1e21661 feat(perf): Expand instrumentation with context manager and extended metrics 2026-05-06 14:30:22 -04:00
ed 2b66f3569b feat(beads): integrate Beads Mode backend, MCP tools, and GUI support 2026-05-06 13:48:47 -04:00
ed ecc5a66027 feat(workspace): implement contextual auto-switch layout based on MMA active tier 2026-05-05 21:57:08 -04:00
ed ded9f38a00 feat(workspace): implement layout menu and save profile modal 2026-05-05 21:25:53 -04:00
ed eab1945035 feat(workspace): implement layout capture/restore and controller integration 2026-05-05 21:09:51 -04:00
ed 446a58717e conductor(checkpoint): Checkpoint end of Phase 4 - UI Features & History List 2026-05-05 17:50:55 -04:00
ed 0a5b90e772 conductor(checkpoint): Checkpoint end of Phase 3 - Discussion & Context Structure Mutation 2026-05-05 12:17:53 -04:00
ed a02849b9a3 conductor(checkpoint): Checkpoint end of Phase 2 - Text Input & Control Undo/Redo 2026-05-05 00:23:55 -04:00
ed 213747a9fc conductor(checkpoint): Checkpoint end of Phase 3 - RAG GUI Integration 2026-05-04 18:49:18 -04:00
ed 8b487536c5 feat(rag): Implement auto-indexing and status indicators 2026-05-04 11:34:01 -04:00
ed d4dc23720f feat(gui): Implement RAG context visualization in Discussion history 2026-05-04 11:26:36 -04:00
ed f57e2fe4f0 feat(gui): Implement RAG Settings panel in AI Settings 2026-05-04 11:22:06 -04:00
ed 6bf6c79db4 feat(ui): Expose cache status and controls in UI 2026-05-04 05:18:04 -04:00
ed 2441ea64a3 conductor(checkpoint): Checkpoint end of Phase 4 2026-05-02 19:00:28 -04:00
ed c74971bdb2 feat(ui): Refine base system prompt editor with collapsing header and character count 2026-05-02 18:33:36 -04:00
ed 4f1bcea381 feat(ai): Implement configurable base system prompt and expose in UI 2026-05-02 14:49:47 -04:00