Private
Public Access
0
0

chore(conductor): Add new track 'command_palette_and_performance_20260602'

This commit is contained in:
2026-06-02 17:51:34 -04:00
parent 8f6f47d46b
commit 7eb8f9eed4
9 changed files with 111 additions and 633 deletions
+5
View File
@@ -325,3 +325,8 @@ This file tracks all major tracks for the project. Each track has its own detail
- [x] **Track: Phase 7 Monolithic Stabilization (Final Cleanup)**
*Link: [./tracks/phase7_monolithic_stabilization_20260602/](./tracks/phase7_monolithic_stabilization_20260602/)*
---
- [ ] **Track: Implement Async Context Preview to fix UI hangs and add an 'Everything' Command Palette.**
*Link: [./tracks/command_palette_and_performance_20260602/](./tracks/command_palette_and_performance_20260602/)*
@@ -0,0 +1,5 @@
# Track command_palette_and_performance_20260602 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)
@@ -0,0 +1,8 @@
{
"track_id": "command_palette_and_performance_20260602",
"type": "feature",
"status": "new",
"created_at": "2026-06-02T00:00:00Z",
"updated_at": "2026-06-02T00:00:00Z",
"description": "Implement Async Context Preview to fix UI hangs and add an 'Everything' Command Palette."
}
@@ -0,0 +1,30 @@
# Implementation Plan: Command Palette & UI Performance Fixes
## Phase 1: Offloading Performance Fixes
- [ ] Task: Async Context Preview
- [ ] Add `self._is_generating_preview = False` to `App.__init__`.
- [ ] Modify `_check_auto_refresh_context_preview` in `src/gui_2.py`.
- [ ] Implement a `worker()` function inside it that runs `app.controller._do_generate()` and updates `app.context_preview_text`.
- [ ] Launch this worker via `threading.Thread` only if `not self._is_generating_preview`.
- [ ] Ensure thread-safe state updates using appropriate flags.
## Phase 2: Command Palette Implementation
- [ ] Task: Define Command Registry
- [ ] Create a list of dictionaries in `App` containing `name`, `desc`, and `callback`.
- [ ] Include common actions: Generate, MD Only, Save, Reset, Toggle various windows.
- [ ] Task: Render Command Palette UI
- [ ] Add `self.show_command_palette = False` and `self.ui_command_search = ""` to `App`.
- [ ] In `render_main_interface`, check for `Ctrl+P` (or `Cmd+P`) to toggle `self.show_command_palette`.
- [ ] Create `render_command_palette(app: App)` function.
- [ ] Use `imgui.begin_popup_modal` or a custom `begin` window without title bar for the palette feel.
- [ ] Implement the filter logic using the search string.
- [ ] Task: Keyboard Interactivity
- [ ] Ensure the search field has focus when opened.
- [ ] Handle `imgui.Key.up_arrow` and `imgui.Key.down_arrow` to navigate the list.
- [ ] Execute the selected command on `imgui.Key.enter`.
## Phase 3: Verification
- [ ] Task: Verification
- [ ] Verify no UI hang when toggling AST nodes.
- [ ] Verify Command Palette opens, filters correctly, and executes actions.
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Verification' (Protocol in workflow.md)
@@ -0,0 +1,28 @@
# Specification: Command Palette & UI Performance Fixes
## 1. Overview
This track addresses two distinct but critical areas:
1. **UI Performance (Fix):** The application currently hangs when users adjust AST or slice configurations. This is because the context preview is regenerated synchronously on the GUI thread, blocking all interactions.
2. **Command Palette (Feature):** A central, keyboard-driven interface for all application actions, similar to professional editors like VSCode or Sublime Text.
## 2. Functional Requirements
### 2.1 Async Context Preview
* **Background Generation:** The `_do_generate` call within `_check_auto_refresh_context_preview` must be offloaded to an asynchronous worker thread.
* **State Locking:** Prevent multiple concurrent generation threads from running if a preview refresh is already in progress.
* **Incremental Signaling:** (Optional future goal) Investigate ways to only re-parse the affected file, but offloading is the immediate priority.
### 2.2 Everything Command Palette
* **Shortcut Trigger:** Triggered by `Ctrl+P` (global project context).
* **Fuzzy Search:** An input field that filters a global list of available commands.
* **Action Mapping:** Includes actions like "Generate Response", "Clear Discussion", "Toggle Diagnostics", "Add All Files to Context", etc.
* **Keyboard Navigation:** Use Up/Down arrows to navigate results and Enter to select/execute.
* **Modal UX:** A centered, floating popup that dismisses on selection or Escape.
## 3. Non-Functional Requirements
* **Smooth GUI Loop:** Offloading the generation must eliminate the UI hang.
* **Low Latency Palette:** Search and filtering must feel instantaneous.
## 4. Acceptance Criteria
* Toggling "Def", "Sig", or "Hide" on an AST node no longer causes the GUI to stutter or hang.
* Pressing `Ctrl+P` opens the Command Palette.
* Typing "Reset" shows "Reset Session" and executing it successfully resets the discussion.
+3 -3
View File
@@ -1,9 +1,9 @@
[ai]
provider = "minimax"
model = "MiniMax-M3"
temperature = 0.699999988079071
temperature = 0.0
top_p = 1.0
max_tokens = 4096
max_tokens = 999999
history_trunc_limit = 900000
active_preset = "Basic Do Not"
system_prompt = "- **Do not** create shell scripts, README files, or descriptive files unless explicitly instructed.\n- **Do not** do anything beyond what was asked. Suggest extras in text; do not implement them."
@@ -38,7 +38,7 @@ separate_external_tools = false
"AI Settings" = true
"MMA Dashboard" = false
"Task DAG" = false
"Usage Analytics" = true
"Usage Analytics" = false
"Tier 1" = false
"Tier 2" = false
"Tier 3" = false
+1 -1
View File
@@ -255,4 +255,4 @@ model = "gemini-2.5-flash-lite"
provider = "gemini"
[conductor]
dir = "C:/projects/gencpp/.ai/conductor"
dir = "C:/projects/Pikuma/ps1-ai/conductor"
+4 -607
View File
@@ -9,616 +9,13 @@ auto_add = true
[discussions.main]
git_commit = "9265f94d9756b1a37a7b8e195725654032d84747"
last_updated = "2026-05-16T18:34:06"
last_updated = "2026-06-02T17:31:47"
history = [
"@2026-02-21T18:22:58\nUser:\nI will now try to generate a response from the AI. I will then try to run a tool call. Finally, I will try to generate a response from the AI again.",
]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/auxiliary/builder.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/auxiliary/builder.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/auxiliary/gen_template.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/auxiliary/scanner.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/auxiliary/scanner.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/ast.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/ast.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/ast_case_macros.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/ast_types.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/code_serialization.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
typedef_to_strbuilder_ref = "hide"
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/code_types.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/constants.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/gen/ast_inlines.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/gen/ecodetypes.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/gen/eoperator.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/gen/especifier.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/gen/etoktype.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/header_end.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/header_start.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/inlines.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/interface.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/interface.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/interface.parsing.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/interface.untyped.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/interface.upfront.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/lexer.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/parser.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/parser_case_macros.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/parser_types.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/src_start.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/static_data.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/components/types.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/basic_types.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/containers.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/debug.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/debug.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/filesystem.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/filesystem.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/hashing.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/hashing.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/macros.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/memory.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/memory.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/parsing.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/parsing.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/platform.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/printing.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/printing.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/src_start.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/string_ops.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/string_ops.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/strings.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/strings.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/timing.cpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
[[discussions.main.context_snapshot]]
path = "C:/projects/gencpp/base/dependencies/timing.hpp"
auto_aggregate = false
force_full = false
view_mode = "full"
ast_signatures = false
ast_definitions = false
custom_slices = []
[discussions.main.context_snapshot.ast_mask]
context_snapshot = []
sent_markdown = ""
sent_system_prompt = ""
[discussions.docs]
git_commit = "68e895cb8a0144061d1e3b959b7c9f7f98a0c7ed"
+27 -22
View File
@@ -44,20 +44,20 @@ Collapsed=0
DockId=0x00000010,0
[Window][Message]
Pos=170,26
Size=1510,1174
Pos=1370,26
Size=1510,1774
Collapsed=0
DockId=0x00000006,1
DockId=0x00000006,0
[Window][Response]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,5
[Window][Tool Calls]
Pos=170,26
Size=1510,1174
Pos=1370,26
Size=1510,1774
Collapsed=0
DockId=0x00000006,3
@@ -77,7 +77,7 @@ DockId=0xAFC85805,2
[Window][Theme]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,0
@@ -105,26 +105,26 @@ Collapsed=0
DockId=0x0000000D,0
[Window][Discussion Hub]
Pos=170,26
Size=1510,1174
Pos=1370,26
Size=1510,1774
Collapsed=0
DockId=0x00000006,0
DockId=0x00000006,1
[Window][Operations Hub]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,4
[Window][Files & Media]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,3
[Window][AI Settings]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,2
@@ -140,8 +140,8 @@ Collapsed=0
DockId=0x00000006,2
[Window][Log Management]
Pos=170,26
Size=1510,1174
Pos=1370,26
Size=1510,1774
Collapsed=0
DockId=0x00000006,2
@@ -342,7 +342,7 @@ Size=1586,1451
Collapsed=0
[Window][Persona Editor]
Pos=329,138
Pos=331,138
Size=1823,1516
Collapsed=0
@@ -410,7 +410,7 @@ DockId=0x00000006,1
[Window][Project Settings]
Pos=0,26
Size=168,1174
Size=1368,1774
Collapsed=0
DockId=0x00000010,1
@@ -517,8 +517,13 @@ Size=1801,1532
Collapsed=0
[Window][Structural File Editor]
Pos=549,493
Size=1400,900
Pos=154,172
Size=2176,1441
Collapsed=0
[Window][###Text_Viewer_Unified]
Pos=61,60
Size=1123,916
Collapsed=0
[Table][0xFB6E3870,4]
@@ -688,13 +693,13 @@ Column 1 Weight=1.0000
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,26 Size=1680,1174 Split=X
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,26 Size=2880,1774 Split=X
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=1320,1681 Split=Y Selected=0x3F1379AF
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x7BD57D6A
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x418C7449
DockNode ID=0x00000011 Parent=0x00000005 SizeRef=983,184 Selected=0x432BAE4E
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1510,1681 Selected=0x2C0206CE
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1510,1681 Selected=0x6F2B5B04
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=488,1183 Selected=0x3AEC3498