This commit is contained in:
2026-03-09 00:27:43 -04:00
parent 5446a2407c
commit 80eaf740da
8 changed files with 131 additions and 98 deletions

View File

@@ -46,6 +46,7 @@ For deep implementation details when planning or implementing tracks, consult `d
- **Parallel Tool Execution:** Executes independent tool calls (e.g., parallel file reads) concurrently within a single agent turn using an asynchronous execution engine, significantly reducing end-to-end latency.
- **Automated Tier 4 QA:** Integrates real-time error interception in the shell runner, automatically forwarding technical failures to cheap sub-agents for 20-word diagnostic summaries injected back into the worker history.
- **High-Fidelity Selectable UI:** Most read-only labels and logs across the interface (including discussion history, comms payloads, tool outputs, and telemetry metrics) are now implemented as selectable text fields. This enables standard OS-level text selection and copying (Ctrl+C) while maintaining a high-density, non-editable aesthetic.
- **High-Fidelity UI Rendering:** Employs advanced 3x font oversampling and sub-pixel positioning to ensure crisp, high-clarity text rendering across all resolutions, enhancing readability for dense logs and complex code fragments.
- **Enhanced MMA Observability:** Worker streams and ticket previews now support direct text selection, allowing for easy extraction of specific logs or reasoning fragments during parallel execution.
- **Detailed History Management:** Rich discussion history with branching, timestamping, and specific git commit linkage per conversation.
- **Advanced Log Management:** Optimizes log storage by offloading large data (AI-generated scripts and tool outputs) to unique files within the session directory, using compact `[REF:filename]` pointers in JSON-L logs to minimize token overhead during analysis. Features a dedicated **Log Management panel** for monitoring, whitelisting, and pruning session logs.

View File

@@ -1,6 +1,6 @@
[ai]
provider = "deepseek"
model = "deepseek-chat"
provider = "minimax"
model = "MiniMax-M2.5"
temperature = 0.0
max_tokens = 24000
history_trunc_limit = 900000
@@ -42,10 +42,12 @@ Theme = true
Diagnostics = false
[theme]
palette = "DPG Default"
font_path = ""
font_size = 14.0
scale = 1.0
palette = "Nord Dark"
font_path = "C:/projects/manual_slop/assets/fonts/Inter-Regular.ttf"
font_size = 12.0
scale = 1.25
transparency = 0.6499999761581421
child_transparency = 0.7200000286102295
[mma]
max_workers = 4

View File

@@ -49,10 +49,9 @@ Size=1065,548
Collapsed=0
[Window][Response]
Pos=826,1416
Size=873,721
Pos=1009,1217
Size=1036,351
Collapsed=0
DockId=0x00000014,1
[Window][Tool Calls]
Pos=99,730
@@ -74,8 +73,8 @@ Collapsed=0
DockId=0xAFC85805,2
[Window][Theme]
Pos=0,17
Size=824,961
Pos=0,26
Size=848,827
Collapsed=0
DockId=0x00000005,1
@@ -85,14 +84,14 @@ Size=900,700
Collapsed=0
[Window][Diagnostics]
Pos=2813,17
Size=1027,2120
Pos=2622,27
Size=1218,2110
Collapsed=0
DockId=0x00000004,2
DockId=0x00000004,1
[Window][Context Hub]
Pos=0,17
Size=824,961
Pos=0,26
Size=848,827
Collapsed=0
DockId=0x00000005,0
@@ -103,26 +102,26 @@ Collapsed=0
DockId=0x0000000D,0
[Window][Discussion Hub]
Pos=1761,17
Size=1050,1397
Pos=1736,26
Size=884,1463
Collapsed=0
DockId=0x00000013,0
[Window][Operations Hub]
Pos=826,17
Size=933,1397
Pos=850,26
Size=884,1463
Collapsed=0
DockId=0x00000012,0
[Window][Files & Media]
Pos=0,1560
Size=824,577
Pos=0,1885
Size=848,252
Collapsed=0
DockId=0x00000002,0
[Window][AI Settings]
Pos=0,980
Size=824,578
Pos=0,855
Size=848,1028
Collapsed=0
DockId=0x00000001,0
@@ -132,43 +131,43 @@ Size=416,325
Collapsed=0
[Window][MMA Dashboard]
Pos=2813,17
Size=1027,2120
Collapsed=0
DockId=0x00000004,0
[Window][Log Management]
Pos=2813,17
Size=1027,2120
Pos=2622,26
Size=1218,2111
Collapsed=0
DockId=0x00000004,1
[Window][Log Management]
Pos=2622,26
Size=1218,2111
Collapsed=0
DockId=0x00000004,0
[Window][Track Proposal]
Pos=709,326
Size=262,209
Collapsed=0
[Window][Tier 1: Strategy]
Pos=826,1416
Size=873,721
Pos=850,1491
Size=306,646
Collapsed=0
DockId=0x00000014,0
[Window][Tier 2: Tech Lead]
Pos=1701,1416
Size=353,721
Pos=1158,1491
Size=550,646
Collapsed=0
DockId=0x00000016,0
[Window][Tier 4: QA]
Pos=2542,1416
Size=269,721
Pos=2215,1491
Size=405,646
Collapsed=0
DockId=0x00000019,0
[Window][Tier 3: Workers]
Pos=2056,1416
Size=484,721
Pos=1710,1491
Size=503,646
Collapsed=0
DockId=0x00000018,0
@@ -307,6 +306,21 @@ Pos=532,397
Size=616,406
Collapsed=0
[Window][Markdown Test]
Pos=447,895
Size=1286,827
Collapsed=0
[Window][Dear ImGui Demo]
Pos=650,49
Size=550,680
Collapsed=0
[Window][Theme Tweaks]
Pos=755,679
Size=420,966
Collapsed=0
[Table][0xFB6E3870,4]
RefScale=13
Column 0 Width=80
@@ -338,11 +352,11 @@ Column 3 Width=20
Column 4 Weight=1.0000
[Table][0x2A6000B6,4]
RefScale=13
Column 0 Width=40
Column 1 Width=60
RefScale=14
Column 0 Width=42
Column 1 Width=64
Column 2 Weight=1.0000
Column 3 Width=100
Column 3 Width=107
[Table][0x8BCC69C7,6]
RefScale=13
@@ -354,47 +368,68 @@ Column 4 Weight=1.0000
Column 5 Width=50
[Table][0x3751446B,4]
RefScale=13
Column 0 Width=40
Column 1 Width=60
RefScale=14
Column 0 Width=42
Column 1 Width=64
Column 2 Weight=1.0000
Column 3 Width=100
Column 3 Width=106
[Table][0x2C515046,4]
RefScale=13
Column 0 Width=57
RefScale=14
Column 0 Width=61
Column 1 Weight=1.0000
Column 2 Width=150
Column 3 Width=40
Column 2 Width=161
Column 3 Width=42
[Table][0xD99F45C5,4]
Column 0 Sort=0v
[Table][0x1829A682,7]
Column 0 Weight=0.5786
Column 1 Weight=1.4145
Column 2 Weight=0.9966
Column 3 Weight=0.7956
Column 4 Weight=1.2055
Column 5 Weight=1.0046
Column 6 Weight=1.0046
[Table][0x5386208F,3]
RefScale=13
Column 0 Width=150
Column 1 Width=100
Column 2 Weight=1.0000
[Table][0xA02D8C87,3]
RefScale=14
Column 0 Width=160
Column 1 Width=106
Column 2 Weight=1.0000
[Docking][Data]
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=3840,2120 Split=X
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2811,1183 Split=X
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,26 Size=3840,2111 Split=X
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2620,1183 Split=X
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
DockNode ID=0x00000007 Parent=0x0000000B SizeRef=824,858 Split=Y Selected=0x8CA2375C
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,961 Selected=0xF4139CA2
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,1157 Split=Y Selected=0x7BD57D6A
DockNode ID=0x00000001 Parent=0x00000006 SizeRef=824,578 CentralNode=1 Selected=0x7BD57D6A
DockNode ID=0x00000002 Parent=0x00000006 SizeRef=824,577 Selected=0x1DCB2623
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=1985,858 Split=Y Selected=0x418C7449
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,1397 Split=X Selected=0x418C7449
DockNode ID=0x00000012 Parent=0x00000010 SizeRef=933,402 Selected=0x418C7449
DockNode ID=0x00000013 Parent=0x00000010 SizeRef=1050,402 Selected=0x6F2B5B04
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,721 Split=X Selected=0x5CDB7A4B
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=873,837 Selected=0x0D5A5273
DockNode ID=0x00000015 Parent=0x00000011 SizeRef=1110,837 Split=X Selected=0x5CDB7A4B
DockNode ID=0x00000016 Parent=0x00000015 SizeRef=353,837 Selected=0x390E7942
DockNode ID=0x00000017 Parent=0x00000015 SizeRef=755,837 Split=X Selected=0x655BC6E9
DockNode ID=0x00000018 Parent=0x00000017 SizeRef=484,874 Selected=0x655BC6E9
DockNode ID=0x00000019 Parent=0x00000017 SizeRef=269,874 Selected=0x5CDB7A4B
DockNode ID=0x00000007 Parent=0x0000000B SizeRef=848,858 Split=Y Selected=0x8CA2375C
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,827 Selected=0x8CA2375C
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,1286 Split=Y Selected=0x7BD57D6A
DockNode ID=0x00000001 Parent=0x00000006 SizeRef=824,1032 CentralNode=1 Selected=0x7BD57D6A
DockNode ID=0x00000002 Parent=0x00000006 SizeRef=824,252 Selected=0x1DCB2623
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=1770,858 Split=Y Selected=0x418C7449
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,1466 Split=X Selected=0x418C7449
DockNode ID=0x00000012 Parent=0x00000010 SizeRef=884,402 Selected=0x418C7449
DockNode ID=0x00000013 Parent=0x00000010 SizeRef=884,402 Selected=0x6F2B5B04
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,647 Split=X Selected=0x5CDB7A4B
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=306,837 Selected=0xBB346584
DockNode ID=0x00000015 Parent=0x00000011 SizeRef=1462,837 Split=X Selected=0x5CDB7A4B
DockNode ID=0x00000016 Parent=0x00000015 SizeRef=550,837 Selected=0x390E7942
DockNode ID=0x00000017 Parent=0x00000015 SizeRef=910,837 Split=X Selected=0x655BC6E9
DockNode ID=0x00000018 Parent=0x00000017 SizeRef=503,874 Selected=0x655BC6E9
DockNode ID=0x00000019 Parent=0x00000017 SizeRef=405,874 Selected=0x5CDB7A4B
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1027,1183 Selected=0x2C0206CE
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1218,1183 Selected=0x2C0206CE
;;;<<<Layout_655921752_Default>>>;;;
;;;<<<HelloImGui_Misc>>>;;;
@@ -404,6 +439,6 @@ Name=Default
Show=false
ShowFps=true
[Theme]
Name=SoDark_AccentRed
Name=ImGuiColorsClassic
;;;<<<SplitIds>>>;;;
{"gImGuiSplitIDs":{"MainDockSpace":2949142533}}

View File

@@ -3,10 +3,6 @@ name = "project"
git_dir = ""
system_prompt = ""
main_context = ""
word_wrap = true
summary_only = false
auto_scroll_comms = true
auto_scroll_tool_calls = true
[output]
output_dir = "./md_gen"
@@ -59,19 +55,3 @@ py_set_var_declaration = false
epic = ""
active_track_id = ""
tracks = []
[mma.tier_models."Tier 1"]
model = "gemini-3.1-pro-preview"
provider = "gemini"
[mma.tier_models."Tier 2"]
model = "gemini-3-flash-preview"
provider = "gemini"
[mma.tier_models."Tier 3"]
model = "gemini-2.5-flash-lite"
provider = "gemini"
[mma.tier_models."Tier 4"]
model = "gemini-2.5-flash-lite"
provider = "gemini"

View File

@@ -6,9 +6,8 @@ roles = [
"Context",
]
active = "main"
auto_add = false
[discussions.main]
git_commit = ""
last_updated = "2026-03-08T03:12:45"
last_updated = "2026-03-08T22:48:42"
history = []

View File

@@ -32,7 +32,7 @@ from src import aggregate
from src import orchestrator_pm
from src import conductor_tech_lead
from src import multi_agent_conductor
from src import theme
from src import theme_2 as theme
def hide_tk_root() -> Tk:
root = Tk()
@@ -744,6 +744,7 @@ class AppController:
def init_state(self):
"""Initializes the application state from configurations."""
self.config = models.load_config()
theme.load_from_config(self.config)
ai_cfg = self.config.get("ai", {})
self._current_provider = ai_cfg.get("provider", "gemini")
self._current_model = ai_cfg.get("model", "gemini-2.5-flash-lite")
@@ -2085,14 +2086,18 @@ class AppController:
self.config["ai"]["system_prompt"] = self.ui_global_system_prompt
self.config["projects"] = {"paths": self.project_paths, "active": self.active_project_path}
from src import bg_shader
self.config["gui"] = {
# Update gui section while preserving other keys like bg_shader_enabled
gui_cfg = self.config.get("gui", {})
gui_cfg.update({
"show_windows": self.show_windows,
"separate_message_panel": getattr(self, "ui_separate_message_panel", False),
"separate_response_panel": getattr(self, "ui_separate_response_panel", False),
"separate_tool_calls_panel": getattr(self, "ui_separate_tool_calls_panel", False),
"bg_shader_enabled": bg_shader.get_bg().enabled
}
# Explicitly call theme save to ensure self.config is updated
})
self.config["gui"] = gui_cfg
# Explicitly save theme state into the config dict
theme.save_to_config(self.config)
def _do_generate(self) -> tuple[str, Path, list[dict[str, Any]], str, str]:

View File

@@ -52,6 +52,9 @@ def load_config() -> dict[str, Any]:
def save_config(config: dict[str, Any]) -> None:
import tomli_w
import sys
sys.stderr.write(f"[DEBUG] Saving config. Theme: {config.get('theme')}\n")
sys.stderr.flush()
with open(CONFIG_PATH, "wb") as f:
tomli_w.dump(config, f)

View File

@@ -334,6 +334,7 @@ def set_scale(factor: float) -> None:
def save_to_config(config: dict) -> None:
"""Persist theme settings into the config dict under [theme]."""
import sys
config.setdefault("theme", {})
config["theme"]["palette"] = _current_palette
config["theme"]["font_path"] = _current_font_path
@@ -341,11 +342,16 @@ def save_to_config(config: dict) -> None:
config["theme"]["scale"] = _current_scale
config["theme"]["transparency"] = _transparency
config["theme"]["child_transparency"] = _child_transparency
sys.stderr.write(f"[DEBUG theme_2] save_to_config: palette={_current_palette}, transparency={_transparency}\n")
sys.stderr.flush()
def load_from_config(config: dict) -> None:
"""Read [theme] from config. Font is handled separately at startup."""
import sys
global _current_font_path, _current_font_size, _current_scale, _current_palette, _transparency, _child_transparency
t = config.get("theme", {})
sys.stderr.write(f"[DEBUG theme_2] load_from_config raw: {t}\n")
sys.stderr.flush()
_current_palette = t.get("palette", "10x Dark")
if _current_palette in ("", "DPG Default"):
_current_palette = "10x Dark"
@@ -355,6 +361,8 @@ def load_from_config(config: dict) -> None:
_current_scale = float(t.get("scale", 1.0))
_transparency = float(t.get("transparency", 1.0))
_child_transparency = float(t.get("child_transparency", 1.0))
sys.stderr.write(f"[DEBUG theme_2] load_from_config effective: palette={_current_palette}, transparency={_transparency}\n")
sys.stderr.flush()
def apply_current() -> None:
"""Apply the loaded palette and scale. Call after imgui context exists."""