Commit Graph

491 Commits

Author SHA1 Message Date
Levi Neely a7b8c4c2ce Add 'none' workflow option as the default (no-op on goal set)
- Workflow() no longer defaults to 'conductor' when empty
- runWorkflow() returns immediately for '' or 'none'
- 'none' listed first in the workflows file output
- QML dropdowns default to 'none' instead of 'conductor'
- C++ fallback uses 'none' when server unreachable
2026-08-19 18:09:09 +02:00
Levi Neely 9f1aec1384 Add session settings dialog (edit mode for NewSessionDialog)
- Add session-level cfg file (read: name/cwd/remote/workflow/variant/yolo;
  write: workflow, variant, cwd)
- Add readSessionConfig() and updateSessionConfig() to C++ client
- NewSessionDialog supports editMode: pre-populates fields from session cfg,
  title becomes 'Session Settings', button becomes 'Save'
- Name and Remote fields disabled in edit mode (non-reconfigurable)
- YOLO checkbox hidden in edit mode
- Only changed values are written back on save
- Add 'Settings...' to session context menu in SessionTree
- Wire sessionSettingsRequested signal through to dialog
2026-08-19 18:07:25 +02:00
Levi Neely 620cd6c66e Split workflow/variant into two dropdowns in NewSessionDialog
- loadWorkflows() parses tab-separated 'name<TAB>variants' format
- Add variantsForWorkflow() to return variant list for a workflow
- Add m_workflowVariants map to cache per-workflow variant lists
- createSession() accepts variant parameter, passes to server
- QML: separate Workflow and Variant ComboBoxes
- Variant dropdown repopulates on workflow selection change
- 'default' always present; non-default variants pass through to launcher
2026-08-19 18:01:36 +02:00
Levi Neely 9bb2e41e33 Add memory section to system prompt, fix icon resolution
- Add OptMem memory section to system_prompt.md with tool-based API
- Fix KRunner plugin icon: resolve via QStandardPaths instead of theme name
- Fix desktop file icon: use absolute path to bypass stale system icon
2026-08-19 10:02:51 +02:00
Levi Neely 95a457e823 fix kf5 build path 2026-08-19 08:43:48 +02:00
Ollie Agent db8414f815 Add optional system tray support to KDE GUI 2026-08-18 13:55:46 +02:00
Ollie Agent f36a782632 Update KDE branding to Ollie octopus icon 2026-08-18 13:48:42 +02:00
Ollie Agent 5adc3b37d8 remove plan9port runtime dependency 2026-08-18 13:36:09 +02:00
Ollie Agent 4e381b1293 Add YOLO option to session dialog 2026-08-18 12:54:36 +02:00
Ollie Agent 6819b5f391 Simplify diagram rendering and document architecture 2026-08-18 12:11:04 +02:00
Ollie Agent 7050bccfdb Fix GoalDialog QML resource inclusion 2026-08-17 17:28:22 +02:00
Levi Neely 8a1efe0907 session: require cwd, make agent cwd read-only, sanitize message history
Session creation now requires cwd= parameter (no fallback to daemon cwd).
Agent cwd is read-only — agents inherit from session, cannot override.

Frontends updated:
- NewSessionDialog: added Directory field with Browse button
- NewAgentDialog: removed Directory field
- createAgent(): removed cwd parameter
- Kate plugin: passes cwd when creating kate session
- Dolphin: removed cwd from agent/new call

Message history sanitization (backend.SanitizeMessages):
- Removes dangling tool calls (assistant with ToolCalls but missing results)
- Removes orphan tool results (tool message without preceding call)
- Applied before sub-agent context inheritance
- Applied before session persistence save
- Applied after compaction (defensive)

Includes unit tests for all sanitization cases.
2026-08-17 14:15:55 +02:00
Levi Neely a17dd683df Split session/idx and agent/idx, fix sub-agent tree display
Server:
- session/idx now outputs: session-id, session-name, paused, connected, remote, cwd
- session/{s}/agent/idx now outputs: session-id, agent-id, agent-name, parent-id, depth, state
- Add error if parent agent not found during sub-agent spawn

GUI:
- refreshSessions() reads session index, then agent/idx per session
- Auto-select first top-level agent (depth 0) instead of first in list
- SessionModel tracks agent expansion separately from session expansion
- Agents with children show expand/collapse arrows and are collapsible
- Add hasChildren role to SessionModel

Tools:
- subagent_spawn now passes parent= argument for proper depth tracking
- Remove hardcoded max_depth=5, use server default of 1
- Makefile installs shell script tools from data/tools/

KRunner:
- Update to parse new session/idx format
2026-08-17 13:03:26 +02:00
Levi Neely 958d3d2ddf workflows: script-based workflows with session-level CWD
- Workflows are executable scripts in data/workflows/
- New 'workflows' 9P file lists available workflows
- Goal file stores text; writing triggers workflow if status allows
- goalstatus file for status read/write, goalwait for blocking
- Session ctl accepts 'run [workflow]' command
- Session now owns CWD; agents inherit via callback
- Conductor workflow: creates agent, primes with instructions, exits
- GUI workflow combo reads from workflows, not agents
- Persistence includes goal, goalstatus, workflow, and session CWD
2026-08-17 12:00:10 +02:00
Levi Neely 743e40c2f8 selectable workflow in new session 2026-08-17 10:52:53 +02:00
Levi Neely 957617cee7 cmake: move lib9p install after GNUInstallDirs include
CMAKE_INSTALL_LIBDIR was empty when the install() ran because
GNUInstallDirs hadn't been included yet.
2026-08-17 10:35:26 +02:00
Ollie Agent c34f4a1b31 update KDE integration documentation and library install 2026-08-17 00:15:56 +02:00
Ollie Agent 68616cb247 update Kate integration prompts 2026-08-17 00:05:35 +02:00
Ollie Agent e854e91b7f replace just build orchestration with make 2026-08-17 00:01:27 +02:00
Ollie Agent 7182db56cf fix GUI dialog contrast and focus behavior 2026-08-16 23:55:43 +02:00
Ollie Agent e51a1d4ff7 Update architecture documentation and remove obsolete frontends 2026-08-16 19:21:26 +02:00
Ollie Agent 57aa906e5f move toolsrv client into olliesrv 2026-08-16 19:07:25 +02:00
Ollie Agent b321eed99f use 9fans client directly 2026-08-16 19:00:48 +02:00
Ollie Agent 16a2b72051 consolidate 9P clients 2026-08-16 18:56:11 +02:00
Ollie Agent e972b5666a add metrics queries and agent-scoped plans 2026-08-16 17:00:11 +02:00
Ollie Agent 6d6b49f2bb improve acme tools, fix focus stealing in kde gui 2026-08-16 16:00:59 +02:00
Ollie Agent 6be71761b5 Allow Ollie GUI to shrink in tiled layouts 2026-08-16 15:17:52 +02:00
Ollie Agent 7451b77287 Consolidate KDE gitignore rules 2026-08-16 15:14:12 +02:00
Ollie Agent 1e0f9cacd0 Integrate KDE frontend into main repository 2026-08-16 15:08:33 +02:00
Ollie Agent 65959cf2bb Update KDE GUI submodule 2026-08-16 14:55:12 +02:00
Ollie Agent 1d46a8e035 Update KDE GUI submodule 2026-08-16 14:49:10 +02:00
Ollie Agent 6cb78aeb9c Update KDE GUI submodule 2026-08-16 12:56:58 +02:00
Levi Neely 8b6b08b54f kde: update submodule (focus-stealing fix) 2026-08-14 14:27:45 +02:00
Levi Neely 2b27c9c165 update kde submodule 2026-08-13 22:37:26 +02:00
Levi Neely 4f8fd6956b update kde submodule 2026-08-13 22:31:12 +02:00
Levi Neely 78d11f2ce8 update kde submodule 2026-08-13 12:27:39 +02:00
Levi Neely 1e2ce1f899 chore: update kde submodule 2026-08-12 16:21:10 +02:00
Levi Neely 85f51e3b35 chore: update kde submodule 2026-08-12 16:19:36 +02:00
Levi Neely 10423c3339 chore: update kde submodule 2026-08-12 16:19:04 +02:00
Ollie Agent da5ce08af6 update kde submodule: fix tool output rendering 2026-08-09 12:14:09 +02:00
Ollie Agent 090ba270f4 update kde submodule: fix tool block rendering 2026-08-09 12:09:48 +02:00
Ollie Agent e1f6981adf update kde submodule 2026-08-09 11:58:00 +02:00
Ollie Agent 25924d0909 fs: add /help ctl command — returns command reference 2026-08-09 03:32:21 +02:00
Ollie Agent 05e9c45495 update kde submodule: slash command hints match ctl 2026-08-09 03:15:27 +02:00
Ollie Agent 744f775eb5 fs: split chat into chat (filtered text) and chat.raw (full markup)
chat — strips [[[...]]] markers and source fences at the byte level.
Partial lines pass through immediately for true streaming. Terminals
and text editors use this.

chat.raw — full block-structured stream with markers and fences.
GUIs that parse blocks (KDE, web) use this.

The TUI no longer pipes through grep (which was line-buffering and
killing char-by-char streaming since Aug 4).

The stripMarkers state machine processes each chunk from the server:
- Complete lines starting with [[[ and ending with ]]] → dropped
- Fence lines (```...) → dropped (open toggles in-fence state)
- Partial lines (no trailing \n) → always emitted immediately
- Everything else → passed through
2026-08-09 01:43:39 +02:00
Ollie Agent 96d6d0b4cd update kde submodule: scroll-follow restored 2026-08-09 00:16:52 +02:00
Ollie Agent 97ee63cd9c update kde submodule: always-on chat stream 2026-08-09 00:14:38 +02:00
Ollie Agent bceb3708e9 update kde submodule: incremental rendering 2026-08-09 00:12:30 +02:00
Ollie Agent 8093566e67 justfile: standardize all installs to ~/.local/bin
Previously, Go binaries and scripts installed to ~/bin while cmake
(KDE) installed to ~/.local/bin. This caused stale binaries in ~/bin
to shadow fresh builds since ~/bin comes first on PATH.

- Change bin variable from ~/bin to ~/.local/bin
- Add migrate-bin target to clean stale ~/bin copies
- Run migrate-bin automatically during install
2026-08-09 00:03:49 +02:00
Ollie Agent 50a0737635 kde: fix gui deadlock (demand-driven chat streaming) 2026-08-08 23:20:11 +02:00
Ollie Agent dec80c85d2 kde: revert gui bulk load (didn't fix the freeze) 2026-08-08 23:16:11 +02:00
Ollie Agent fe5e99618e kde: update submodule (fix gui freeze on agent switch) 2026-08-08 23:15:04 +02:00
Ollie Agent 8f7d21fc38 toolsrv: fire OnToolsChanged after LoadTool
The system prompt tool listing now refreshes immediately on tool_load
instead of only on file-watcher events. buildToolListing helper added
to format the listing in the same format BuildPreamble uses.

Also updates kde submodule: GUI auto-switches to newly created agent,
removes remote field from agent dialog.
2026-08-08 14:02:22 +02:00
Ollie Agent 57052180d3 update kde submodule 2026-08-07 18:58:46 +02:00
Levi Neely e4bf5b492b kde: update submodule 2026-08-07 18:53:40 +02:00
Levi Neely dc1211b6a7 kde: update submodule 2026-08-07 18:51:30 +02:00
Levi Neely eca1a9e232 kde: update submodule 2026-08-07 18:12:31 +02:00
Levi Neely 5cb3d0e68e kde: update submodule (hybrid native/subprocess streaming) 2026-08-07 18:06:44 +02:00
Levi Neely fc17a4cca3 kde: update submodule (native 9P streaming) 2026-08-07 18:02:52 +02:00
Levi Neely 63faa3b68a kde: update submodule 2026-08-07 17:54:41 +02:00
Levi Neely a8be36f405 chore: update kde submodule 2026-08-07 17:17:18 +02:00
Levi Neely 0d6871a974 Update kde submodule: fix QML performance 2026-08-07 15:25:24 +02:00
Levi Neely 6d0a7ae2ba Update kde submodule: fix chat rendering and scroll 2026-08-07 15:15:15 +02:00
Levi Neely fc7b4bfa17 Update kde submodule: diagram rendering 2026-08-07 14:59:28 +02:00
Levi Neely 07366841aa kde: update submodule with scrolling fixes 2026-08-07 11:20:24 +02:00
Levi Neely 063022e54f kde: update submodule 2026-08-07 11:01:17 +02:00
Levi Neely 9a3efebd14 kde: update submodule with text selection and context menus 2026-08-07 11:00:28 +02:00
Levi Neely 1ca8049fc6 kde: update submodule with auto-scroll improvements 2026-08-07 10:22:11 +02:00
Levi Neely 21e46b9895 refactor: consolidate event formatting, remove log validator
- Move FormatEvent to format/ package for reuse by both live handler
  and replay
- Move LoadConfig to agent/ package where it belongs
- Remove log validator (was noisy, not essential)
- Update replay to use FormatEvent for consistent output format
- Update kde submodule with GUI streaming fix
2026-08-07 10:11:48 +02:00
Ollie Agent c7f1bec71c refactor: extract format package, ctl dispatcher, and log structure validator
- Extract all [[[block]]] formatting constants/helpers into format/format.go
  (EndTag, RoleDelim, ToolDelim, CallDelim, BlockHeader, ParseBlockHeader, IsEndMarker)
- Replace switch/case ctl dispatchers in fs/handlers.go with generic
  ctlDispatch() from new fs/ctl.go
- Add LogValidator state machine to AgentLog enforcing:
  - Every [[[block]]] MUST have an [[[end]]] marker
  - Blocks SHALL NOT be nested
  - Streaming line buffering across partial writes
  - Fatal failure on first violation with line-number reporting
  - UnclosedAtTeardown() for session/agent teardown checks
- Fix kde/kate ollie_ghost compile: stripPrefixEcho signature mismatch
2026-08-07 08:59:07 +02:00
Ollie Agent 40be7c1308 kde: submodule update — kate plugin now uses /generate for completions 2026-08-07 07:38:34 +02:00
Ollie Agent e93affe2e2 pull.sh 2026-08-06 18:08:24 +02:00
Levi Neely 3344a93278 bump kde 2026-08-06 16:16:28 +02:00
Levi Neely 54c6bc3ed2 update kde submodule pointer; whitespace cleanup in data/scripts/o 2026-08-06 14:06:14 +02:00
Ollie Agent 9659bfb3b9 Update kde submodule: remove D-Bus mentions 2026-08-05 19:01:37 +02:00
Ollie Agent 24d00ab8c0 Update kde submodule: fix close-to-tray comment 2026-08-05 18:59:53 +02:00
Ollie Agent 74a06de0cd Update kde submodule: fix architecture diagram 2026-08-05 18:58:39 +02:00
Ollie Agent 4e2d109bf0 Update kde submodule: remove stale build files 2026-08-05 18:57:38 +02:00
Ollie Agent 1a57c1f4ca Update kde submodule: remove plasmoid/tray references 2026-08-05 18:56:37 +02:00
Ollie Agent 51644639e5 Update kde submodule to latest
- Updated KDE README with accurate 9P-based architecture
- Removed all D-Bus dependencies
- Fixed ghost provider and dolphin scripts to use 9P
2026-08-05 18:53:49 +02:00
Levi Neely 0cefd03e9a update kde submodule; session/fs changes 2026-08-05 17:52:26 +02:00
Levi Neely 3febb30de8 update kde submodule 2026-08-05 09:06:52 +02:00
Levi Neely c6152688bc Update kde submodule: remove sidebar state dots 2026-08-04 16:33:41 +02:00
Levi Neely fbb2a767f6 session: pause/resume persistence, restore paused sessions without spawning processes
- Skip SetupToolServer for paused sessions during restore
- Pause() and Resume() now persist state to disk
- Resume() sets up tool server from scratch for sessions restored paused
- IsConnected() returns false when paused
- Add SetPaused(), SetToolServer() methods
- ProcessKeeper.SetContext() for resume after pause
- Session index sorts active-first, paused-last
- CreateAgent accepts name= parameter
- Remove duplicate SetCwd method
2026-08-04 16:05:22 +02:00
Levi Neely d200fbad05 refactor: promote remote to session level
- CreateEmpty(name, remote) now spawns remote toolsrv when remote is set
- requestSessionNew parses remote= argument
- Add Session.SetRemote() method
- Update kde submodule
2026-08-04 15:22:18 +02:00
Levi Neely 2ae89134d4 update kde submodule: fix ESC stop race condition 2026-08-04 11:51:14 +02:00
Levi Neely 0c6dd5b32a update kde submodule: cleanup debug logging 2026-08-03 20:44:27 +02:00
Levi Neely ae2ee819f1 update kde submodule: fix state role binding 2026-08-03 20:31:25 +02:00
Levi Neely cc5c682109 update kde submodule: targeted state dot updates in render path 2026-08-03 20:29:47 +02:00
Levi Neely d3a7a50845 update kde submodule: fast path for active agent state changes 2026-08-03 20:27:54 +02:00
Levi Neely c5bc73ecd7 update kde submodule: optimize handleEvent() hot path 2026-08-03 20:22:27 +02:00
Levi Neely 65c14ee37b update kde submodule: single-pass session parsing 2026-08-03 20:16:18 +02:00
Levi Neely 8257bf4584 update kde submodule: eliminate C++ calls in QML update loop 2026-08-03 20:13:45 +02:00
Levi Neely 1b0a000a13 update kde submodule: remove per-agent connection polling 2026-08-03 20:11:00 +02:00
Levi Neely 06dca57a19 update kde submodule: native 9P client via libollie9p 2026-08-03 20:04:26 +02:00
Levi Neely 6d902ba7e9 9p: default log level to warn, not debug
The 9P logger was hardcoded to LevelDebug, causing all 9P operations
to print timing info to stdout. This blocked the server on terminal
output, hurting GUI responsiveness.

Now uses NewLogger('9p') which:
- Defaults to the sink's level (warn)
- Can be overridden with OLLIE_9P_LOG=debug

Also updates kde submodule with incremental session tree updates.
2026-08-03 19:52:07 +02:00
Levi Neely 0f37c1c990 update kde submodule: QML rendering optimizations 2026-08-03 19:29:54 +02:00
Levi Neely 4c40be4709 update kde submodule: pubsub delta events optimization 2026-08-03 19:17:52 +02:00
Levi Neely 6d31d81ac5 update kde submodule: session pause/resume UI 2026-08-03 18:36:25 +02:00
Levi Neely fc4a11e145 update kde submodule: live agent state indicators 2026-08-03 18:30:30 +02:00
Levi Neely 7f1708256f update kde submodule: RPC health color indicators 2026-08-03 18:14:12 +02:00
Levi Neely 4b8fb5c96a update kde submodule: pause indicator and agent count 2026-08-03 18:12:10 +02:00
Levi Neely 76c6021d16 update kde submodule: rename error dialog 2026-08-03 17:53:46 +02:00
Levi Neely 063dc435c6 update kde submodule: clear active agent when killed 2026-08-03 17:51:23 +02:00
Levi Neely 50b95f342e chore: update kde submodule (multi-agent handling fix) 2026-08-03 17:42:15 +02:00
Levi Neely b57bc003b2 chore: update kde submodule (chat rendering rewrite) 2026-08-03 16:16:51 +02:00
Levi Neely a56f9dfe73 chore: update kde submodule (syntax highlighting fix) 2026-08-03 16:07:52 +02:00
Levi Neely 6a32b3afce chore: update kde submodule (agent connection retry fix) 2026-08-03 16:03:07 +02:00
Levi Neely 5795fe8864 kde: update submodule (fix stale stream spam) 2026-08-03 12:28:46 +02:00
Levi Neely c11d513202 kde: update submodule (no-retry agent connections) 2026-08-03 11:33:46 +02:00
Levi Neely ce53f57e4c kde: update submodule (agent disconnect fix) 2026-08-03 11:31:14 +02:00
Levi Neely 40fcae493e kde: update submodule (kate plugin disabled) 2026-08-03 10:59:07 +02:00
Levi Neely 0a24326c7e update kde submodule: remove dead createSession 2026-08-03 10:43:16 +02:00
Levi Neely 9af47864ac update kde submodule: error handling in new agent dialog 2026-08-03 10:41:38 +02:00
Levi Neely 44f173214d fs: add Aliases to FsNodeDecl for immutable ID path resolution
Nodes in the 9P namespace can now declare alternate names (Aliases)
that resolve during Twalk but are invisible in directory listings.
Session dirs alias their immutable RunnableID(), agent dirs alias
their ID(). Clients can use session/{uuid}/agent/{uuid}/... paths
that remain valid across renames.

Changes:
- fs/fsnode.go: Add Aliases []string field, Alias() NodeOption
- fs/builder.go: findChild checks aliases via matchAlias helper
- fs/sessionfiles.go: Session dirs get Alias(s.RunnableID())
- fs/agentfiles.go: Agent dirs get Alias(a.ID())
- fs/spec.go: Add /aliases file (read-only alias→path table)
- fs/rootfiles.go: readAliases handler
- fs/lifecycle.go: buildIndex includes immutable ID in session/idx
- doc/edsl.md: Document Aliases field and behavior
- prompts: Update session/idx format documentation

The KDE GUI submodule now uses immutable IDs in all 9P paths,
fixing disconnected indicators after session rename.
2026-08-03 09:41:26 +02:00
Levi Neely 5f1a9a6eab update kde submodule: separate session/agent creation, agent context menu 2026-08-03 09:16:11 +02:00
Levi Neely c17d1d4f7b update kde submodule: fix session kill + path resolution 2026-08-03 09:09:57 +02:00
Levi Neely 8e2c0a3929 update kde submodule (KF5 GUI parity) 2026-08-03 09:03:19 +02:00
Ollie Agent 73eb4dea63 kde submodule: revert all system-user-interruption changes 2026-08-03 00:42:05 +02:00
Ollie Agent d89259d4f5 Revert "kde submodule: render system-user-interruption as styled yellow box"
This reverts commit 10cd007d90.
2026-08-03 00:39:39 +02:00
Ollie Agent 10cd007d90 kde submodule: render system-user-interruption as styled yellow box 2026-08-03 00:38:08 +02:00
Ollie Agent 28cfd40771 kde submodule: fix build on Qt < 6.5 2026-08-03 00:32:31 +02:00
Ollie Agent ff84c0b4c6 kde submodule: render system-user-interruption as styled box 2026-08-03 00:31:15 +02:00
Ollie Agent 04d191fe68 kde submodule: fix fence close regex 2026-08-03 00:27:32 +02:00
Ollie Agent d0607f363e kde submodule: preserve newlines in plaintext blocks 2026-08-03 00:25:03 +02:00
Ollie Agent 0a418c20f4 bump kde 2026-08-02 23:59:36 +02:00
Ollie Agent 53ecbe249b fix tool output format; bump kde 2026-08-02 23:48:15 +02:00
Ollie Agent b2fe5f1b4e connection statuses 2026-08-02 23:35:30 +02:00
Ollie Agent d3860304af Add formatted tool output fences 2026-08-02 22:57:17 +02:00
Ollie Agent 2d621d26b9 Update KDE frontend 2026-08-02 22:34:41 +02:00
Ollie Agent aa6f444fa5 bump kde 2026-08-02 22:10:45 +02:00
Ollie Agent 1fd11f62af update kde submodule: fix fence eating surrounding content 2026-08-02 11:13:31 +02:00
Ollie Agent d5fbd86def update kde submodule: StreamFsm refactor + chatblock FSM fix 2026-08-02 11:11:07 +02:00
Ollie Agent fd5b215268 eventwait: redesign as global /eventwait with structured delta events
BREAKING CHANGE: /session/eventwait is removed. Use /eventwait instead.

The old event system had several problems:
1. eventwait lived inside /session/ (per-session) but events are global
2. It returned the entire session index on every event, growing unboundedly
3. No structured event data — consumers couldn't tell WHAT happened

New design:
- Global /eventwait at the root of the 9P namespace
- Events are structured delta lines: '<scope> <action> <path>'
  e.g. 'S new session/foo', 'A kill session/foo/agent/bar'
- Ring buffer capped at 100 events (bounded memory)
- Offset-based blocking reads (consumers track position)
- Per-event granularity: S=new/kill/rename, A=new/kill/rename

Call sites updated:
- Session create → 'S new session/{name}'
- Agent create → 'A new session/{name}/agent/{aid}'
- Session kill → 'A kill ...' per agent + 'S kill session/{name}'
- Session rename → 'S rename session/{old} session/{new}'
- Agent rename → 'A rename session/{name}/agent/{old} ...'

KDE GUI updated to use ollie-9p read /eventwait instead of
plan9port 9p read session/eventwait.
2026-08-02 10:25:33 +02:00
Ollie Agent beadf8463a update kde submodule (statewait no longer lists agent dir) 2026-08-01 21:53:03 +02:00
Ollie Agent bf4bf87810 update kde submodule (stop tree rebuild on selection changes) 2026-08-01 21:48:06 +02:00
Ollie Agent d12cebe40e update kde submodule (selection/statewait debug logs) 2026-08-01 21:24:40 +02:00
Ollie Agent 0e04449612 update kde submodule (session click clears agent selection) 2026-08-01 21:22:34 +02:00
Ollie Agent 7d530c162b update kde submodule (only switchAgent starts per-agent streams) 2026-08-01 21:20:57 +02:00
Ollie Agent c6d959e6b0 update kde submodule (explicit agent selection for statewait/chat) 2026-08-01 21:18:21 +02:00
Ollie Agent 38c81fb5cd fs/session: make statewait LongBlock=true so it blocks until state change
Without LongBlock, statewait is treated as one-shot: first read
returns current state, second read returns EOF. The GUI had to
restart the connection in a tight loop to keep polling.

With LongBlock=true, the 9P server blocks the read indefinitely
until the agent's state actually changes. The per-fid waitBase
tracks the previous state value so the next read blocks until a
real change. The GUI opens statewait once and reads from it
continuously — no reconnect loop needed.
2026-08-01 20:59:25 +02:00
Ollie Agent 2cfaff923a update kde submodule (gui: verify agent dir before blocking reads) 2026-08-01 20:56:46 +02:00
Ollie Agent 4208dd9b14 update kde submodule (gui: never auto-restart streams on finish) 2026-08-01 20:55:47 +02:00
Ollie Agent 210638a88c update kde submodule (gui: dedup sessions, fix field mapping) 2026-08-01 20:53:14 +02:00
Ollie Agent 8176daec45 session/idx: emit one line per agent in buildIndex
buildIndex now iterates all agents in each session and emits
one line per agent, so the GUI can enumerate all existing
session/agent directories.
2026-08-01 20:49:46 +02:00
Ollie Agent 107a157a18 update kde submodule: no line trimming before tab split 2026-08-01 20:20:12 +02:00
Ollie Agent df15faf7bc update kde submodule: fix empty sessions dropped by trimmed() 2026-08-01 20:18:31 +02:00
Ollie Agent 456e68c389 update kde submodule: debug logging 2026-08-01 20:16:53 +02:00
Ollie Agent 5a32ce5577 update kde submodule: prevent sidebar focus stealing 2026-08-01 20:14:46 +02:00
Ollie Agent 85353d2aaf update kde submodule: use eventwait data, no timer 2026-08-01 20:13:59 +02:00