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
+4 -4
View File
@@ -14,11 +14,11 @@ This file tracks all major tracks for the project. Each track has its own detail
*Link: [./tracks/granular_ast_control_20260510/](./tracks/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"**
2. [x] **Track: Context Snapshotting per "Take"**
*Link: [./tracks/context_snapshotting_takes_20260510/](./tracks/context_snapshotting_takes_20260510/)*
*Goal: Snapshot and visually restore the Context Panel state when switching between Takes.*
3. [ ] **Track: Interactive Text Slice Highlighting**
3. [x] **Track: Interactive Text Slice Highlighting**
*Link: [./tracks/interactive_text_slice_highlighting_20260510/](./tracks/interactive_text_slice_highlighting_20260510/)*
*Goal: Allow highlighting text ranges to create fuzzy-anchored slices (Def, Sig, Hide) that survive file modifications.*
@@ -26,11 +26,11 @@ This file tracks all major tracks for the project. Each track has its own detail
*Link: [./tracks/context_batch_operations_ux_20260510/](./tracks/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**
5. [x] **Track: GenCpp Project Initialization**
*Link: [./tracks/gencpp_project_init_20260510/](./tracks/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**
6. [x] **Track: Interactive AST Tree Masking**
*Link: [./tracks/interactive_ast_tree_masking_20260510/](./tracks/interactive_ast_tree_masking_20260510/)*
*Goal: Inspect C/C++ ASTs in the GUI and mask individual classes/functions as Def, Sig, or Hide.*
@@ -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.