Commit Graph

1448 Commits

Author SHA1 Message Date
Ollie Agent 145b0f4f4b update kde submodule: expand info blocks by default 2026-08-01 12:26:41 +02:00
Ollie Agent e868b2753f update kde submodule: ComboBoxes, collapsible chat blocks, session creation fix 2026-08-01 12:26:14 +02:00
Ollie Agent cf05b1eb11 update kde submodule: remove Stop button (ESC handles it) and debug logs 2026-08-01 12:05:39 +02:00
Ollie Agent 4aba7e5714 update kde submodule: use Shortcut for ESC key 2026-08-01 12:04:31 +02:00
Ollie Agent d3a8a08435 update kde submodule: ESC key interrupts active agent 2026-08-01 12:03:34 +02:00
Ollie Agent 773c1829f1 update kde submodule: sessions pane 15% of window (min 300px) 2026-08-01 12:01:50 +02:00
Ollie Agent d3f253bb91 update kde submodule: sessions pane width as percentage 2026-08-01 12:01:21 +02:00
Ollie Agent 5ec83a5e10 update kde submodule: increase sessions pane default/min width to 240px 2026-08-01 12:00:56 +02:00
Ollie Agent 8543275b21 update kde submodule: preserve original indentation in fenced code/diff blocks 2026-08-01 12:00:20 +02:00
Ollie Agent ba50d263ff update kde submodule: TextField + picker dialogs for backend/model 2026-08-01 11:59:16 +02:00
Ollie Agent 3c2cb8c089 update kde submodule: use FileDialog instead of QtQuick.Dialogs 1.15 2026-08-01 11:56:41 +02:00
Ollie Agent 8e40d06064 update kde submodule: new session dialog with directory, backend, model, agent, remote fields 2026-08-01 11:55:23 +02:00
Ollie Agent 6d8a10c4af update kde submodule: fix session tree view delegate crashes and scrollable input 2026-08-01 11:49:05 +02:00
Ollie Agent 2729798a6b update kde submodule: session tree view with agent sub-elements 2026-08-01 11:44:00 +02:00
Ollie Agent 8a07199569 update kde submodule: ScrollView text area 2026-08-01 11:39:29 +02:00
Ollie Agent 1eb69175eb update kde submodule: syntax-highlight fenced code/diff blocks 2026-08-01 11:36:49 +02:00
Ollie Agent 483b90205f update kde submodule: simple state indicator loop 2026-08-01 11:17:09 +02:00
Ollie Agent 15870a32cb update kde submodule: fix QProcess pipe deadlock 2026-08-01 10:39:46 +02:00
Ollie Agent 30e61b4451 bump kde 2026-08-01 10:37:01 +02:00
Ollie Agent d748bd5b7c update kde submodule: streaming scroll fix 2026-08-01 10:20:58 +02:00
Ollie Agent 0c85db285c update kde submodule: trim chat to 30 blocks 2026-08-01 10:19:31 +02:00
Ollie Agent 83ad5863d9 update kde submodule: scroll fix with Qt.callLater 2026-08-01 10:17:59 +02:00
Ollie Agent 74a907d9f1 justfile: drop dbus from build/test, remove session-dbus.md install 2026-08-01 10:16:14 +02:00
Ollie Agent ada2b81382 update kde submodule: full palette binding 2026-08-01 10:15:13 +02:00
Ollie Agent 67b8ea44af update kde submodule: dark/light-aware block headers 2026-08-01 10:13:52 +02:00
Ollie Agent 854b9d0161 update kde submodule: theme-aware block colors 2026-08-01 10:12:37 +02:00
Ollie Agent 949d3cba1e update kde submodule: font setting respects DPI 2026-08-01 10:05:07 +02:00
Ollie Agent 723e814581 update kde submodule: settings dialog 2026-08-01 10:02:34 +02:00
Ollie Agent 0ce5f1d67f update kde submodule: restore ThemeManager 2026-08-01 09:57:56 +02:00
Ollie Agent 7c5d064ef2 update kde submodule: streaming INI parser ChatBlockModel 2026-08-01 09:38:00 +02:00
Levi Neely cfa2f49f8c remove no9p flag — 9P is the only interface now
The flag had no remaining purpose after D-Bus removal. 9P listener
is always enabled. The if-true blocks remain for now (cosmetic).
2026-07-31 20:56:52 +02:00
Levi Neely 5911315408 docs: remove all D-Bus references, add Phase 13 to EVOLUTION
- Delete data/prompts/session-dbus.md (obsolete operational model)
- AGENTS.md: remove dbus/ from layout, single integration surface
- ARCHITECTURE.md: remove D-Bus adapter section, embedded adapter, diagrams
- EVOLUTION.md: add Phase 13 (9P streaming, D-Bus removal), fix principles,
  add D-Bus to dead ends table
- USAGE.md: remove D-Bus reference
- session-9p.md: document chat (streaming) and log (64KB window) files
2026-07-31 20:47:15 +02:00
Levi Neely b28a56e89a update kde submodule: cleanup dead files (-5653 lines) 2026-07-31 20:44:29 +02:00
Levi Neely 43d0db520a remove D-Bus adapter from olliesrv
Delete dbus/dbus.go — the entire D-Bus SessionManager service is gone.
No more 150ms poll loop, no more signal emission, no more method handlers.

- Remove ollie/dbus import, nodbus flag, dbusAdapter variable
- Remove OnSessionCreated/Killed/Renamed hooks from Config
- Remove EnableDBus from Config
- Elevation notifications connect to session bus directly (godbus stays
  as a dependency solely for org.freedesktop.Notifications)

All clients now use 9P exclusively. D-Bus is dead.
2026-07-31 20:41:02 +02:00
Levi Neely 622ede8c21 update kde submodule: kate streaming fix 2026-07-31 20:33:27 +02:00
Levi Neely d09c7e726c update kde submodule: fix session switch in GUI 2026-07-31 20:30:26 +02:00
Levi Neely 812724de1b update kde submodule: kate 9P conversion complete, D-Bus fully removed 2026-07-31 20:25:14 +02:00
Levi Neely c89ba967e7 update kde submodule: kill D-Bus, remove plasmoid+tray 2026-07-31 20:16:32 +02:00
Levi Neely 03009bc703 update kde submodule: 9P streaming GUI, kill D-Bus rendering 2026-07-31 20:06:19 +02:00
Levi Neely c39149ca3e 9P streaming: add chat file, rename chat→log, rewrite acme frontend
- Rename 'chat' to 'log': returns last 64KB sliding window (static read).
  Tail still works via Qid.Vers. Full history persisted to disk per turn.

- Add 'chat' streaming file: blocking read that delivers new output as
  the agent produces it. Per-fid offset tracked via waitBase. Blocks
  indefinitely between turns (no EOF). EOF only on kill/session death.

- Add LongBlock interface to File: streaming files bypass the 5s read
  timeout. Server returns content directly (ignores Tread offset for
  streaming files since waitBase tracks position).

- Add 'kill'/'.'' ctl aliases with FIXME: currently kills entire session.
  When multi-agent-per-session lands, kill should kill agent only.

- Rewrite acme frontend (cmd/Ollie) to use 9P client directly instead
  of FUSE mount. streamChat() is a blocking read loop — no polling.
  All file operations (read, write, ls) go through plan9/client.

- Add 9P streaming prototype in experiments/9p-stream demonstrating
  the blocking-read pattern for token delivery.

The key insight: 9P's request-response model gives natural streaming.
Server holds the Tread until data arrives, client blocks on Read().
No polling, no signals, no offset tracking needed.
2026-07-31 19:52:27 +02:00
Levi Neely 7eb022faba remove built-in skill handlers, replace with external tools
skill_list and skill_load are now external shell scripts (data/tools/).
Removed from builtins: SkillList, SkillLoad, SkillActive.
Removed: toolsrv/skills.go, tools/builtin/skill.go, WithSkillsRegistry,
SkillsRegistry accessor, ListSkillsTools.
ollie-remote no longer initializes a skills registry.

The demarcation: built-ins mutate agent internals (tool schema, context
injection). Skills are just file reads — no special treatment needed.
2026-07-31 16:45:37 +02:00
Levi Neely 9f8a1130cf skills: replace built-in handlers with external shell scripts
skill_list and skill_load are now simple shell scripts that read
SKILL.md files from OLLIE_SKILLS_PATH. No built-in registry needed.
skill_load returns the file body as tool result (tier:hot, survives compaction).
skill_active dropped — model uses skill_list instead.
2026-07-31 16:42:49 +02:00
Levi Neely 2b6214a0a5 update kde submodule: fix kate crash on session kill 2026-07-31 16:34:40 +02:00
Levi Neely 472c1204b7 sandbox: add OLLIE_LOGSEQ_TOKEN to env whitelist 2026-07-31 15:42:06 +02:00
Levi Neely 1c7087d0bf logseq.meta: full API documentation with all commands and args 2026-07-31 15:08:46 +02:00
Levi Neely 0790dc7e4e logseq tool: use REST API instead of broken MCP endpoint
Logseq 2.0.1 has bug #12413 where POST /mcp always returns 400.
Switched to the REST API at POST /api which works correctly.
Requires OLLIE_LOGSEQ_TOKEN env var.

Commands: listPages, getPage, searchBlocks, listTags, listProperties,
upsertNodes, getCurrentGraph
2026-07-31 15:07:40 +02:00
Levi Neely c75dc6f6c7 add logseq tool: query/modify Logseq DB graph via built-in MCP server
- data/tools/logseq: Python wrapper (same pattern as atlassian_cli)
- data/tools/logseq.meta: tool metadata with full prompt
- data/scripts/logseq-cli: shell bridge using mcp-to-command + mcp-remote
- justfile: install logseq tool + logseq-cli script

Commands: listPages, getPage, searchBlocks, listTags, listProperties, upsertNodes
Transport: streamable-http to http://127.0.0.1:12315/mcp (Logseq 2 DB built-in)
2026-07-31 15:01:20 +02:00
Levi Neely 9b087f23d1 fix copilot.json: remove trailing comma 2026-07-31 14:19:58 +02:00
Levi Neely 0acc36abfd toolsrv: embed sandbox/default.yaml, fix lifecycle
- Embed the full sandbox/default.yaml instead of sandbox-remote.yaml
  so local ollie-remote subprocesses get proper sandbox permissions
  (DNS, git config, etc.)
- justfile copies sandbox/default.yaml temporarily during build
- Register builtins + ToolRegistry + SkillsRegistry on ollie-remote
- Pdeathsig: kernel auto-SIGTERMs children when parent dies
- Cleanup: SIGTERM → 3s grace → SIGKILL (guaranteed kill)
- Atomic counter for unique socket paths (no collisions)
2026-07-31 14:17:59 +02:00
Levi Neely 59b672966f toolsrv: unified socket-based execution
Execution is now identical for local and remote:
- Session calls Spawn()/SpawnRemote() → owns *Process with socket
- Clients call Dial(LocalAddr(socket)) → *Conn over Unix socket
- ollie-remote serves --listen mode with multi-client accept loop
- Builtins (shell, tool_load, skill_load) run in subprocess with registries

Lifecycle:
- Pdeathsig ensures children die with parent (no orphans)
- Cleanup: SIGTERM → 3s grace → SIGKILL (guaranteed)
- Socket paths use atomic counter for uniqueness
- Session Kill() closes Process

Protocol:
- Extended RPC: set_env, set_cwd, detach, list_detached, etc.
- Shell goes through builtin dispatch (parses 'cmd' field correctly)
- Streaming output via JSON-RPC notifications
2026-07-31 14:10:47 +02:00