docs(conductor): replace manual pruner with advanced interactive AST and Slice tracks

This commit is contained in:
2026-05-10 13:18:22 -04:00
parent 62d8573004
commit 6c83d097b1
12 changed files with 66 additions and 30 deletions
@@ -0,0 +1,4 @@
# Track: Interactive AST Tree Masking
- [Specification](./spec.md)
- [Plan](./plan.md)
@@ -0,0 +1,5 @@
{
"id": "interactive_ast_tree_masking_20260510",
"title": "Interactive AST Tree Masking",
"status": "planned"
}
@@ -0,0 +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.
## 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.
@@ -0,0 +1,11 @@
# Specification: Interactive AST Tree Masking
## Overview
Transform the Context Panel by allowing users to inspect the AST of C/C++ files and selectively mask individual symbols (classes, methods, functions). Instead of treating a file as a single unit, users can define an `ASTMask` to expose only what is relevant.
## Acceptance Criteria
- [ ] An `[Inspect]` button in the Context Panel opens an AST Outline window for the selected file.
- [ ] The Outline window renders a hierarchical tree of symbols using `tree-sitter`.
- [ ] Users can toggle individual nodes as `[Def]` (Definition), `[Sig]` (Signature), or `[Hide]`.
- [ ] `FileItem` model is updated to persist this `ASTMask` dictionary.
- [ ] `aggregate.py` dynamically stitches the file content based on the `ASTMask`, automatically resolving line numbers by symbol name to survive agent modifications.