Private
Public Access
0
0
Commit Graph

228 Commits

Author SHA1 Message Date
ed e2305ff49a Antigravity is dog shit. 2026-05-20 07:51:58 -04:00
ed a5c0569417 progress on context composition 2026-05-17 07:27:55 -04:00
ed c1487d32bb progress on context composition 2026-05-17 06:55:00 -04:00
ed 22f3b9f33a Progress on context composition 2026-05-17 06:43:19 -04:00
ed e3d84bc4da feat(presets): Implement ContextPresetManager and integrate with AppController 2026-05-16 11:04:38 -04:00
ed 20054b0476 fix(test): Final synchronization and stability fixes for RAG stress test
- Improved AppController.ai_status to prevent overwriting 'sending...' with 'models loaded'.
- Enhanced 	est_rag_phase4_stress.py with robust polling and increased timeout.
- Synchronized App and AppController history objects to ensure consistent view.
2026-05-16 01:21:27 -04:00
ed 7f2f9c1989 fix: Robustness improvements for RAG tests and GUI stability
- Added import sys to src/api_hook_client.py.
- Fixed App.__getattr__ to use direct attribute access on controller to avoid recursion.
- Simplified _get_app_attr and _has_app_attr in src/api_hooks.py.
- Centralized RAG and symbol enrichment in AppController._handle_request_event.
- Updated 	ests/test_symbol_parsing.py to match the new enrichment flow.
- Removed redundant task appending from i_status and mma_status setters.
- Improved _sync_rag_engine to only set 'ready' status after indexing is confirmed.
- Updated 	est_status_encapsulation.py to reflect setter changes.
2026-05-15 17:17:05 -04:00
ed 45104af1ee fix(rag): Final RAG stability and status fixes
- Corrected GeminiEmbeddingProvider model name to gemini-embedding-001.
- Prevented _fetch_models from overwriting active i_status (sending/done/error).
- Updated 	est_rag_engine.py to correctly patch the lazy-loaded chromadb getter.
- Adjusted RAG simulation tests to account for the new initializing... status and automatic initial indexing.
- Fixed typo in 	est_z_negative_flows.py.
2026-05-14 23:38:23 -04:00
ed 2d76381796 fix(rag): Resolve RAG test failures and race conditions
- Fixed circular import in chromadb by using lazy imports in 
ag_engine.py.
- Moved RAG engine initialization to background threads in AppController to avoid blocking UI.
- Added _rag_engine_lock to prevent race conditions during engine re-initialization.
- Updated Gemini embedding model to gemini-embedding-001 (available) from 	ext-embedding-004 (not found).
- Fixed _rebuild_rag_index to use fresh 
ag_engine instance from self in every iteration.
- Optimized 	est_rag_phase4_final_verify.py and 	est_rag_phase4_stress.py to wait for RAG sync before continuing.
- Added dummy embedding fallback in LocalEmbeddingProvider if sentence-transformers fails to load.
2026-05-14 22:23:48 -04:00
ed 940ab2ea2c add chroma db to app controller 2026-05-14 21:21:28 -04:00
ed b5e512f483 feat(sdm): inject structural dependency mapping tags across codebase
Adds [C: caller] tags to functions/methods and [M: mutation] / [U: usage] tags to class variables based on cross-module call analysis.
2026-05-13 22:35:52 -04:00
ed 242ea051ad pushing latest gui_2.py, adjustment to regions in app controller. 2026-05-13 21:29:04 -04:00
ed fa4388bbe0 feat(app-controller): modularize handlers and enforce 1-space indentation 2026-05-13 21:26:29 -04:00
ed b2fdca0c3d remove(ai_client): delete unused stub and proxy files
Deleted:
- src/ai_client_stub.py
- src/ai_client_proxy.py

Fixed test imports to use ai_client instead of ai_client_stub.
2026-05-13 16:03:54 -04:00
ed 0f15ecbbf3 fix(app_controller): async RAG engine init to avoid blocking startup
RAG engine initialization (including chromadb import and index loading)
now happens in a background thread, allowing the GUI to show immediately.
The app was blocking for 5+ seconds during init_state() because RAG was
enabled in config. Now RAG loads asynchronously.
2026-05-13 15:54:59 -04:00
ed 7ba94d4a42 fix(app_controller): lazy load rag_engine to avoid blocking startup
Before this change, app_controller imported rag_engine at module level which
pulled in chromadb (~0.45s). Now rag_engine is only imported when RAG is
actually enabled and needed. This improves startup time significantly.
2026-05-13 15:28:41 -04:00
ed 169fe52092 fix(ai_client_stub): add module-level import for GeminiCliAdapter
The class was only accessible inside function scopes, causing
AttributeError when app_controller tried to instantiate it
at module level via ai_client.GeminiCliAdapter().
2026-05-13 10:53:23 -04:00
ed 93c5320fa0 organize app controller imports 2026-05-13 08:20:32 -04:00
ed a3b117dabd feat(api): Expand API hooks with drag and right_click actions 2026-05-12 19:06:54 -04:00
ed 26ef81a30e chore(fix): Resolve regressions in history logic, track startup, and GUI performance 2026-05-11 20:03:01 -04:00
ed cb0fa89730 feat(presets): Implement NamedViewPresets for per-file view settings 2026-05-11 18:31:56 -04:00
ed 0416eaeaa8 feat(context): Finalize AppController decoupling and aggregate integration 2026-05-11 16:12:33 -04:00
ed 9b3a4d6ec6 feat(context): Decouple context composition from files and media 2026-05-11 11:00:15 -04:00
ed a1343eebe6 fix(mcp): properly initialize preset_managers before refresh
_load_active_project() now creates preset_manager and tool_preset_manager
before calling _refresh_from_project(), which needs them
2026-05-10 23:38:52 -04:00
ed 8d8c6ab0ac fix(gui): skip _switch_project if already on that project
Prevents reloading and state issues when clicking same project
2026-05-10 23:33:50 -04:00
ed b328cd4e68 fix(gui): prevent dictionary size change during iteration
- Wrap discussions.items() with list() in takes_panel to prevent
  RuntimeError when dictionary changes during iteration
- This was causing crashes when switching discussions
2026-05-10 23:20:02 -04:00
ed 7ab58e4e00 fix(mcp): configure mcp_client after files are loaded
_load_active_project() was calling _configure_mcp_for_project() BEFORE
_refresh_from_project() which populates self.files. Now it calls
_refresh_from_project() first so mcp_client gets configured with the
actual file list that includes gencpp paths.
2026-05-10 23:09:15 -04:00
ed 400a2fcfe4 fix(mcp): configure mcp_client on project load and switch
- Add _configure_mcp_for_project() helper method
- Call it at end of _load_active_project() to configure mcp_client on startup
- _switch_project() calls it after _refresh_from_project()
- This ensures mcp_client._base_dirs is populated before GUI buttons try to read files
2026-05-10 21:15:41 -04:00
ed 4bb94ff909 fix: remove redundant import in _switch_project (mcp_client already imported at top) 2026-05-10 21:11:13 -04:00
ed 6861ce0dca fix(mcp): configure mcp_client allowlist on project switch
Previously mcp_client.configure() was only called during ai_client.send()
which meant GUI buttons (Slices/Inspect) couldn't access files when
project was switched to an external project like gencpp. Now _switch_project
reconfigures mcp_client with the new project's root and file_items.
2026-05-10 20:57:11 -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 7974f661b3 fix(phase6): resolve minimax regression and context snapshotting crash 2026-05-10 14:58:29 -04:00
ed bb00793696 feat(project): project-level logs and scripts path isolation 2026-05-10 14:02:51 -04:00
ed e9eda04a6c feat(history): Context snapshotting per discussion/take 2026-05-10 13:38:59 -04:00
ed 05d0121e71 fixes 2026-05-10 11:33:07 -04:00
ed f89f8d4fd7 fix(gui): repair flaky simulation tests by adding ui_focus_agent to settables and removing invalid assertions 2026-05-10 10:46:54 -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 04ce727718 refactor(controller): Remove Tkinter and hide_tk_root from AppController 2026-05-09 15:13:13 -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 696c08692e refactor(sdm): Refine SDM tags to 'External Only' and update core files. Pruned internal references to conserve tokens. 2026-05-09 14:55:06 -04:00
ed b3065b0b17 refactor(controller): Replace legacy _set_status calls with direct property assignment 2026-05-09 08:36:33 -04:00
ed 6bec4b86ef feat(controller): Implement @property and @setter for ai_status and mma_status 2026-05-09 08:32:28 -04:00
ed 04eff51eb9 feat(controller): Add private _ai_status and _mma_status attributes to AppController 2026-05-09 08:19:01 -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 d4b4312dd2 chore: remove debug logging and fix closure bug in test hooks 2026-05-07 15:02:00 -04:00
ed 40f0c04a91 chore(conductor): Mark track 'Fix Concurrent MMA Live GUI Tests' as complete
Fixes UI flickering between tracks in app_controller.py and an indentation bug in multi_agent_conductor.py that caused workers to crash silently.
2026-05-07 13:30:42 -04:00
ed b0a837d235 fix(mma): Add explicit reload logic when _cb_load_track fails in _cb_start_track
The test clicks btn_mma_start_track twice with different track_ids.
When _cb_load_track fails for track_a, self.active_track remains None or wrong.
Then track_b loads but we can't distinguish if a later call is for track_a retry
or track_b (which already has an engine). This adds an explicit reload path
when loaded track doesn't match requested track.
2026-05-07 08:41:08 -04:00
ed f3585cb5a1 fix(mma): Use track.id instead of self.active_track.id in _start_track_logic
active_track was None when _start_track_logic was called from _cb_accept_tracks
because active_track is only set when loading a track via _cb_load_track.
_start_track_logic creates a new track locally and should use that track's id.
2026-05-07 08:28:20 -04:00
ed cab733abc6 debug: Add logging to _cb_start_track 2026-05-07 08:19:05 -04:00
ed 6f2a2c2eea fix(gui): Initialize active_tickets in AppController.init_state
The AppController.__getattr__ delegation was returning controller.active_tickets
but init_state() never initialized self.active_tickets, causing an
AttributeError when gui_2.py tried to access self.active_tickets before
controller state was fully loaded.

Fixes live_gui fixture crash in test_mma_concurrent_tracks_stress_sim.py
2026-05-07 08:05:58 -04:00