ed
4ab7c732b5
refactor(src): Phase 12.6.2-12.6.13 - migrate 16 small files to Result[T]
...
Migrated 27 silent-fallback/UNCLEAR sites across 16 sub-track 2 files:
- src/diff_viewer.py (1: apply_patch_to_file)
- src/presets.py (2: load_all global/project preset parsing)
- src/theme_models.py (2: load_themes_from_dir, load_themes_from_toml)
- src/summarize.py (3: _summarise_python, summarise_file x2)
- src/command_palette.py (1: _execute)
- src/markdown_helper.py (2: _on_open_link, render table fallback)
- src/commands.py (2: generate_md_only, save_all)
- src/conductor_tech_lead.py (1: topological_sort)
- src/orchestrator_pm.py (1: generate_tracks JSON parse)
- src/project_manager.py (1: get_git_commit)
- src/session_logger.py (1: log_tool_call write_ps1)
- src/shell_runner.py (1: run_powershell error)
- src/multi_agent_conductor.py (4: run, run_worker_lifecycle x3)
- src/aggregate.py (4: is_absolute_with_drive, build_file_items x2, build_tier3_context)
- src/warmup.py (1: _warmup_one indirect Result)
- src/models.py (2: from_dict discussion.ts, load_mcp_config)
Each migration follows the data-oriented convention:
- try/except body constructs a Result dataclass with ErrorInfo
- Pattern matches Heuristic A (Result-returning recovery)
- The Result carries the error info for telemetry/debugging
Added Result imports to: diff_viewer, presets, theme_models, summarize,
command_palette, markdown_helper, commands, conductor_tech_lead,
project_manager, shell_runner, multi_agent_conductor, models.
Audit post-fix: 0 violations, 0 UNCLEAR in sub-track 2 scope.
The remaining 152 violations are in sub-track 3 (mcp_client, app_controller)
+ sub-track 4 (gui_2) + sub-track 5 (ai_client, rag_engine baseline).
2026-06-18 10:21:24 -04:00
ed
89ce7ad770
refactor(src): Phase 10.2 batch 3 - project_manager + orchestrator_pm Result migration
...
project_manager.py (3 sites):
- get_all_tracks returns list[dict[str, Any]] where each dict now
has an 'errors' field (list[ErrorInfo]) capturing per-track
metadata recovery. The 3 SILENT_SWALLOW sites (state.from_dict,
metadata.json, plan.md) now append to this list instead of
silently passing.
orchestrator_pm.py (2 sites):
- get_track_history_summary returns Result[str]. The 2 SILENT_SWALLOW
sites (metadata.json + spec.md reads) append to a scan_errors list
that's threaded through the Result.
Tests updated to check result.ok and use result.data.
2026-06-17 22:33:57 -04:00
ed
f383dae0dd
fix(src): defensive try/except in load_track_state for TOMLDecodeError
...
A malformed state.toml in conductor/tracks/<track>/state.toml (e.g.,
from an interrupted previous run) caused tomllib.load() to raise
TOMLDecodeError, which propagated up and crashed App.__init__
during init_state() -> _load_active_project() -> _refresh_from_project()
-> get_all_tracks() -> load_track_state().
This manifested as test failures in tests/test_layout_reorganization.py,
tests/test_auto_slices.py, tests/test_hooks.py, and the tier-3-live_gui
batch (all triggered by the same malformed mcp_architecture_refactor_20260606
state.toml).
The fix wraps tomllib.load() in a try/except for (OSError,
tomllib.TOMLDecodeError) and returns None (matching the file-not-found
behavior). This is consistent with the data-oriented convention:
corrupt state is a recoverable failure, not a programmer error.
Tests verified:
- tests/test_track_state_persistence.py (1 test) PASS
- tests/test_layout_reorganization.py (4 tests) PASS
- tests/test_auto_slices.py (3 tests) PASS
- tests/test_hooks.py (3 tests) PASS
2026-06-17 19:34:18 -04:00
ed
7298fbd62b
refactor(src): narrow exception types in startup_profiler + project_manager (6 sites)
...
Migrates the 6 try/except sites by narrowing the exception types
from broad 'except Exception' to specific stdlib/known exceptions.
This converts the sites from INTERNAL_BROAD_CATCH to BOUNDARY_IO /
INTERNAL_COMPLIANT per the audit's heuristics.
1. src/startup_profiler.py:40 (1 site) - sys.stderr.write/flush
except Exception -> except OSError
2. src/project_manager.py:32 (1 site) - datetime.strptime
except Exception -> except (ValueError, TypeError)
3. src/project_manager.py:98 (1 site) - subprocess.run for git command
except Exception -> except (OSError, subprocess.SubprocessError,
subprocess.TimeoutExpired)
4. src/project_manager.py:363 (1 site) - state.from_dict in get_all_tracks
except Exception -> except (OSError, AttributeError, KeyError, TypeError)
5. src/project_manager.py:375 (1 site) - metadata.json read
except Exception -> except (OSError, json.JSONDecodeError, UnicodeDecodeError)
6. src/project_manager.py:390 (1 site) - plan.md read
except Exception -> except (OSError, UnicodeDecodeError, re.error)
This is a 'narrowing migration' rather than a Result[T] migration
because the public API (Optional[datetime], str, list[dict]) is
preserved and no callers need updating. The behavior is unchanged.
Tests verified:
- tests/test_project_manager_tracks.py (4 tests) PASS
- tests/test_project_manager_modes.py (2 tests) PASS
2026-06-17 19:11:35 -04:00
ed
339b062913
more organization
2026-06-06 11:08:07 -04:00
ed
053f5d867a
some organization pass, still need to review a bunch
2026-06-06 00:21:36 -04:00
ed
873edf42cf
began to go through the files and organize imports and gui_2.py's new context defs
...
still a bunch to sift through after the last ai passes
2026-06-05 21:44:41 -04:00
ed
59fa495a20
fix(gui): Resolve discussion compression error and improve entry tinting visibility
...
- Implement missing format_discussion in project_manager.py.
- Fix malformed escape characters in compression AI prompt.
- Ensure discussion compression updates the entry list in-place for immediate GUI refresh.
- Refactor discussion entry tinting using channels to draw backgrounds reliably behind text.
- Standardize Files & Media inventory layout and management buttons.
2026-06-02 03:00:45 -04:00
ed
e3d84bc4da
feat(presets): Implement ContextPresetManager and integrate with AppController
2026-05-16 11:04:38 -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
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
ff29e20873
refactor(infra): cull unused infrastructure and file cache helpers
2026-05-10 11:53:14 -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
2b66f3569b
feat(beads): integrate Beads Mode backend, MCP tools, and GUI support
2026-05-06 13:48:47 -04:00
ed
fefa06beb0
feat(backend): Implement discussion branching and take promotion
2026-03-19 19:00:56 -04:00
ed
8ee8862ae8
checkpoint: track complete
2026-03-18 18:39:54 -04:00
ed
93a590cdc5
feat(backend): Implement storage functions for context presets
2026-03-17 23:30:55 -04:00
ed
5470f2106f
fix(gui): fix missing thinking_segments parameter persistence across sessions
2026-03-15 16:11:09 -04:00
ed
5a8a91ecf7
more fixes
2026-03-12 19:51:04 -04:00
ed
3999e9c86d
feat(conductor): Use project-specific conductor directory in project_manager and app_controller
2026-03-12 16:38:01 -04:00
ed
94598b605a
checkpoint dealing with personal manager/editor
2026-03-10 23:47:53 -04:00
ed
d7a6ba7e51
feat(ui): Enhanced context control with per-file flags and Gemini cache awareness
2026-03-07 12:13:08 -05:00
ed
87902d82d8
feat(mma): Implement track progress calculation and refactor get_all_tracks
2026-03-07 11:24:05 -05:00
ed
f580165c5b
feat(conductor): Implement configurable paths and mark track 'Conductor Path Configuration' as complete
2026-03-06 16:43:11 -05:00
ed
8784d05db4
WIP: PAIN3
2026-03-05 15:10:53 -05:00
ed
a0276e0894
feat(src): Move core implementation files to src/ directory
2026-03-04 09:55:44 -05:00