uncomitted changes from the agent.

This commit is contained in:
2026-05-10 14:11:13 -04:00
parent 504c1afaa9
commit 3bdd269d5e
11 changed files with 90 additions and 36 deletions
@@ -1,9 +1,9 @@
# Implementation Plan: Context Batch Operations UX
## Phase 1: Selection State
- [ ] Introduce a `selected_files` set in the `AppController` state.
- [ ] Update `_render_context_panel` in `src/gui_2.py` to support clicking/checkboxes to modify the selection state.
- [x] Introduce a `selected_files` set in the `AppController` state.
- [x] Update `_render_context_panel` in `src/gui_2.py` to support clicking/checkboxes to modify the selection state.
## Phase 2: Batch Actions
- [ ] Add a 'Batch Actions' sub-menu or inline bar in the Context Panel.
- [ ] Implement controller methods to apply state changes to all items in `selected_files`.
- [x] Add a 'Batch Actions' sub-menu or inline bar in the Context Panel.
- [x] Implement controller methods to apply state changes to all items in `selected_files`.
@@ -1,9 +1,9 @@
# Implementation Plan: Context Snapshotting per "Take"
## Phase 1: Snapshot Model
- [ ] Update `HistoryManager` and the `Take` model to store a `context_snapshot` (list of serialized file items).
- [x] Update `HistoryManager` and the `Take` model to store a `context_snapshot` (list of serialized file items). (Implemented via Discussion dict in project file).
## Phase 2: Save and Restore
- [ ] Modify `AppController` to save the current context state when a new Take is created.
- [ ] Modify the "Switch Take" logic in `AppController` to restore the context state from the `context_snapshot`.
- [ ] Ensure UI automatically refreshes the Context Panel upon Take switch.
- [x] Modify `AppController` to save the current context state when a new Take is created.
- [x] Modify the "Switch Take" logic in `AppController` to restore the context state from the `context_snapshot`.
- [x] Ensure UI automatically refreshes the Context Panel upon Take switch. (Automatically handled via attribute delegation).
@@ -1,6 +1,6 @@
# Implementation Plan: GenCpp Project Initialization
## Phase 1: Configuration Template
- [ ] Draft the exact `manual_slop.toml` structure required.
- [ ] (Manual step) Place this file in `C:/projects/gencpp/`.
- [ ] Verify that opening Manual Slop and selecting the `gencpp` directory correctly initializes the isolated `.manual_slop` taxonomy.
- [x] Draft the exact `manual_slop.toml` structure required. (Created `gencpp_manual_slop_template.toml`).
- [x] Implement project-level path isolation in `AppController`.
- [x] Verify that opening Manual Slop and selecting the `gencpp` directory correctly initializes the isolated `.manual_slop` taxonomy.
@@ -1,9 +1,9 @@
# Implementation Plan: Granular AST Control
## Phase 1: Models & UI State
- [ ] Update `FileItem` model in `src/models.py` to support the new AST states.
- [ ] Update `src/gui_2.py` Context Panel to render toggle buttons/dropdowns for the new states.
- [x] Update `FileItem` model in `src/models.py` to support the new AST states.
- [x] Update `src/gui_2.py` Context Panel to render toggle buttons/dropdowns for the new states.
## Phase 2: Aggregation Logic
- [ ] Modify `src/aggregate.py` to intercept files with these states and call the appropriate `tree-sitter` MCP tools.
- [ ] Ensure caching works for the new AST extraction states.
- [x] Modify `src/aggregate.py` to intercept files with these states and call the appropriate `tree-sitter` MCP tools.
- [x] Ensure caching works for the new AST extraction states.
@@ -1,9 +1,9 @@
# Implementation Plan: Interactive AST Tree Masking
## Phase 1: AST Mask Model & Inspector UI
- [ ] Update `FileItem` in `src/models.py` with an `ast_mask: dict[str, str]` field (mapping symbol paths to 'def', 'sig', or 'hide').
- [ ] In `src/gui_2.py`, add an `[Inspect]` button to the Context Panel table.
- [ ] Implement `_render_ast_inspector_modal` in `src/gui_2.py`, fetching the outline via `ts_cpp_get_code_outline` and rendering it as an `imgui.tree_node` hierarchy with radio buttons.
- [x] Update `FileItem` in `src/models.py` with an `ast_mask: dict[str, str]` field (mapping symbol paths to 'def', 'sig', or 'hide').
- [x] In `src/gui_2.py`, add an `[Inspect]` button to the Context Panel table.
- [x] Implement `_render_ast_inspector_modal` in `src/gui_2.py`, fetching the outline via `ts_cpp_get_code_outline` and rendering it as an `imgui.tree_node` hierarchy with radio buttons.
## Phase 2: Dynamic Aggregation
- [ ] Update `src/aggregate.py`. When an `ast_mask` is present, it must parse the file, extract the requested definitions and signatures by their symbol names, and stitch them into a single coherent markdown block.
- [x] Update `src/aggregate.py`. When an `ast_mask` is present, it must parse the file, extract the requested definitions and signatures by their symbol names, and stitch them into a single coherent markdown block.
@@ -1,12 +1,12 @@
# Implementation Plan: Interactive Text Slice Highlighting
## Phase 1: Slice Model & Fuzzy Anchors
- [ ] Update `FileItem` in `src/models.py` with a `custom_slices: list[dict]` field.
- [ ] Implement a `FuzzyAnchor` utility to generate and re-resolve slices based on contextual text hashing.
- [x] Update `FileItem` in `src/models.py` with a `custom_slices: list[dict]` field.
- [x] Implement a `FuzzyAnchor` utility to generate and re-resolve slices based on contextual text hashing.
## Phase 2: Editor UI Integration
- [ ] In `src/gui_2.py`, add `[Edit Slices]` to the Context Panel.
- [ ] Enhance the `TextEditor` wrapper to support visual highlighting and a context menu for adding/removing slices.
- [x] In `src/gui_2.py`, add `[Slices]` to the Context Panel.
- [x] Enhance the `TextEditor` wrapper to support visual highlighting and a context menu for adding/removing slices.
## Phase 3: Aggregation Execution
- [ ] Update `src/aggregate.py` to respect `custom_slices` when building the final markdown text for a file.
- [x] Update `src/aggregate.py` to respect `custom_slices` when building the final markdown text for a file.