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/)* *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.* *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/)* *Link: [./tracks/context_snapshotting_takes_20260510/](./tracks/context_snapshotting_takes_20260510/)*
*Goal: Snapshot and visually restore the Context Panel state when switching between Takes.* *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/)* *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.* *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/)* *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.* *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/)* *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.* *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/)* *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.* *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 # Implementation Plan: Context Batch Operations UX
## Phase 1: Selection State ## Phase 1: Selection State
- [ ] Introduce a `selected_files` set in the `AppController` state. - [x] 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] Update `_render_context_panel` in `src/gui_2.py` to support clicking/checkboxes to modify the selection state.
## Phase 2: Batch Actions ## Phase 2: Batch Actions
- [ ] Add a 'Batch Actions' sub-menu or inline bar in the Context Panel. - [x] 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] Implement controller methods to apply state changes to all items in `selected_files`.
@@ -1,9 +1,9 @@
# Implementation Plan: Context Snapshotting per "Take" # Implementation Plan: Context Snapshotting per "Take"
## Phase 1: Snapshot Model ## 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 ## Phase 2: Save and Restore
- [ ] Modify `AppController` to save the current context state when a new Take is created. - [x] 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`. - [x] 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] Ensure UI automatically refreshes the Context Panel upon Take switch. (Automatically handled via attribute delegation).
@@ -1,6 +1,6 @@
# Implementation Plan: GenCpp Project Initialization # Implementation Plan: GenCpp Project Initialization
## Phase 1: Configuration Template ## Phase 1: Configuration Template
- [ ] Draft the exact `manual_slop.toml` structure required. - [x] Draft the exact `manual_slop.toml` structure required. (Created `gencpp_manual_slop_template.toml`).
- [ ] (Manual step) Place this file in `C:/projects/gencpp/`. - [x] Implement project-level path isolation in `AppController`.
- [ ] Verify that opening Manual Slop and selecting the `gencpp` directory correctly initializes the isolated `.manual_slop` taxonomy. - [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 # Implementation Plan: Granular AST Control
## Phase 1: Models & UI State ## Phase 1: Models & UI State
- [ ] Update `FileItem` model in `src/models.py` to support the new AST states. - [x] 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 `src/gui_2.py` Context Panel to render toggle buttons/dropdowns for the new states.
## Phase 2: Aggregation Logic ## Phase 2: Aggregation Logic
- [ ] Modify `src/aggregate.py` to intercept files with these states and call the appropriate `tree-sitter` MCP tools. - [x] 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] Ensure caching works for the new AST extraction states.
@@ -1,9 +1,9 @@
# Implementation Plan: Interactive AST Tree Masking # Implementation Plan: Interactive AST Tree Masking
## Phase 1: AST Mask Model & Inspector UI ## 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'). - [x] 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. - [x] 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] 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 ## 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 # Implementation Plan: Interactive Text Slice Highlighting
## Phase 1: Slice Model & Fuzzy Anchors ## Phase 1: Slice Model & Fuzzy Anchors
- [ ] Update `FileItem` in `src/models.py` with a `custom_slices: list[dict]` field. - [x] 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] Implement a `FuzzyAnchor` utility to generate and re-resolve slices based on contextual text hashing.
## Phase 2: Editor UI Integration ## Phase 2: Editor UI Integration
- [ ] In `src/gui_2.py`, add `[Edit Slices]` to the Context Panel. - [x] In `src/gui_2.py`, add `[Slices]` to the Context Panel.
- [ ] Enhance the `TextEditor` wrapper to support visual highlighting and a context menu for adding/removing slices. - [x] Enhance the `TextEditor` wrapper to support visual highlighting and a context menu for adding/removing slices.
## Phase 3: Aggregation Execution ## 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.
+7 -7
View File
@@ -1,14 +1,14 @@
[ai] [ai]
provider = "gemini_cli" provider = "minimax"
model = "gemini-2.5-flash-lite" model = "MiniMax-M2.5"
temperature = 0.5 temperature = 0.0
top_p = 1.0 top_p = 1.0
max_tokens = 32000 max_tokens = 32000
history_trunc_limit = 900000 history_trunc_limit = 900000
active_preset = "Default" active_preset = "Default"
system_prompt = "" system_prompt = ""
base_system_prompt = "" base_system_prompt = ""
use_default_base_prompt = false use_default_base_prompt = true
[projects] [projects]
paths = [ paths = [
@@ -77,13 +77,13 @@ logs_dir = "C:\\projects\\manual_slop\\logs"
scripts_dir = "C:\\projects\\manual_slop\\scripts" scripts_dir = "C:\\projects\\manual_slop\\scripts"
[rag] [rag]
enabled = true enabled = false
embedding_provider = "gemini" embedding_provider = "local"
chunk_size = 1000 chunk_size = 1000
chunk_overlap = 200 chunk_overlap = 200
[rag.vector_store] [rag.vector_store]
provider = "mock" provider = "chroma"
collection_name = "manual_slop" collection_name = "manual_slop"
[tools.text_editors.vscode] [tools.text_editors.vscode]
+53
View File
@@ -67,3 +67,56 @@ PROMPT:
role: tool role: tool
Here are the results: {"content": "done"} Here are the results: {"content": "done"}
------------------ ------------------
--- MOCK INVOKED ---
ARGS: ['tests/mock_gemini_cli.py']
PROMPT:
PATH: Epic Initialization — please produce tracks
------------------
--- MOCK INVOKED ---
ARGS: ['tests/mock_gemini_cli.py']
PROMPT:
Please generate the implementation tickets for this track.
------------------
--- MOCK INVOKED ---
ARGS: ['tests/mock_gemini_cli.py']
PROMPT:
Please read test.txt
You are assigned to Ticket T1.
Task Description: do something
------------------
--- MOCK INVOKED ---
ARGS: ['tests/mock_gemini_cli.py']
PROMPT:
role: tool
Here are the results: {"content": "done"}
------------------
--- MOCK INVOKED ---
ARGS: ['C:\\projects\\manual_slop\\tests\\mock_gemini_cli.py', '-m', 'gemini-2.5-flash-lite', '--prompt', '', '--output-format', 'stream-json']
PROMPT:
You are a helpful coding assistant with access to a PowerShell tool (run_powershell) and MCP tools (file access: read_file, list_directory, search_files, get_file_summary, web access: web_search, fetch_url). When calling file/directory tools, always use the 'path' parameter for the target path. When asked to create or edit files, prefer targeted edits over full rewrites. Always explain what you are doing before invoking the tool.
When writing or rewriting large files (especially those containing quotes, backticks, or special characters), avoid python -c with inline strings. Instead: (1) write a .py helper script to disk using a PS here-string (@'...'@ for literal content), (2) run it with `python <script>`, (3) delete the helper. For small targeted edits, use PowerShell's (Get-Content) / .Replace() / Set-Content or Add-Content directly.
When making function calls using tools that accept array or object parameters ensure those are structured using JSON. For example:
When you need to verify a change, rely on the exit code and stdout/stderr from the tool — the user's context files are automatically refreshed after every tool call, so you do NOT need to re-read files that are already provided in the <context> block.
<context>
## Files
### `final_test_1.txt`
```txt
ERROR: file not found: C:\Users\Ed\AppData\Local\Temp\tmpbtllj21_\final_test_1.txt
```
---
### `final_test_2.py`
```py
ERROR: file not found: C:\Users\Ed\AppData\Local\Temp\tmpbtllj21_\final_test_2.py
```
</context>
What makes RAG great?
------------------
+1
View File
@@ -2,6 +2,7 @@
system_prompt = "" system_prompt = ""
tool_preset = "Default" tool_preset = "Default"
bias_profile = "Balanced" bias_profile = "Balanced"
aggregation_strategy = "auto"
[[personas.Default.preferred_models]] [[personas.Default.preferred_models]]
model = "MiniMax-M2.5" model = "MiniMax-M2.5"
+1 -1
View File
@@ -9,5 +9,5 @@ active = "main"
[discussions.main] [discussions.main]
git_commit = "" git_commit = ""
last_updated = "2026-05-10T10:35:34" last_updated = "2026-05-10T12:15:18"
history = [] history = []