Commit Graph

368 Commits

Author SHA1 Message Date
Levi Neely 9701d8f67c plasmoid: inline session rename, cwd folder dialog, fix rename signal bug
- Double-click session name in list to rename inline (RET to confirm, ESC to cancel)
- Double-click cwd heading to open folder picker and change working directory
- Add setConfig() to QML D-Bus client
- Fix capi.go: chat/state callbacks used stale sessID after rename
- Makefile: kf5 target uses trap to always restore CMakeLists.txt
2026-07-06 12:33:14 +02:00
Levi Neely 28ce943e45 docs: document KF5 and KF6 support in README 2026-07-06 10:02:49 +02:00
Levi Neely a1f2c22cbf plasmoid: add cwd label and status indicator, show full session IDs
- Add activeCwd property to OllieDBusClient (fetched via GetConfig)
- Add colored status dot to compact and full representations
- Show session cwd path in the header label
- Remove .substring(0,14) / .left(12) / .left(14) truncations
  from plasmoid, kate plugin, tray, and daemon notifications
2026-07-06 10:02:08 +02:00
Levi Neely d77f7b80de Fix Kate plugin install path for KF5: use ktexteditor/ not kf5/ktexteditor/
Kate on KF5 loads plugins from plugins/ktexteditor/, not
plugins/kf5/ktexteditor/. The kf5/ prefix is a CMake install namespace
but not where Kate actually searches.
2026-07-06 09:30:48 +02:00
Levi Neely 407c4a4ed2 Fix Dolphin service menu for KF5: add ServiceTypes, make executable
- Add X-KDE-ServiceTypes=KonqPopupMenu/Plugin (required by KF5 Dolphin)
- Remove X-KDE-AuthorizeAction=shell_access (causes auth failures)
- Install .desktop with mode 755 (KF5 requires executable bit)
- Fix dolphin-install target to install ollie-session-here too
2026-07-06 09:27:48 +02:00
Levi Neely 2795747d02 Add KF5/Qt5 support for Plasma 5.27
- CMakeLists-kf5.txt: side-by-side build config for KF5/Qt5
- #if QT_VERSION_MAJOR guards in krunner, kate, plasmoid sources
- Namespace alias (Plasma:: for KF5, KRunner:: for KF6)
- Manual QQmlExtensionPlugin for Qt5 (qmlplugin.cpp + qmldir)
- Plasma 5 compatible metadata-kf5.json and main-kf5.qml
- Makefile: kf5, kf5-install, kf5-uninstall targets

Build with 'make kf5', install with 'make kf5-install'.
2026-07-06 09:18:04 +02:00
Levi Neely e1f066f650 Replace OpenRC/systemd services with XDG autostart
- Remove services/ollie-kde.openrc and services/ollie-kde.service
- Add org.ollie.SessionManager.desktop for XDG autostart (KDE-only)
- Fix lib/go.mod replace path to ../../core (monorepo-relative)
- Update Makefile install/uninstall targets
- Update README service setup section
2026-07-06 00:50:35 +02:00
Levi Neely f9e902a2ad graceful shutdown and error handling
- Daemon: async-signal-safe SIGTERM/SIGINT via socketpair
- Tray: survives daemon restart, watches for service appear/disappear
- KRunner: skips matches if daemon unreachable
- Kate: shows error message if daemon not running or session creation fails
2026-07-06 00:24:11 +02:00
Levi Neely db9e7c2830 phase 8: service scripts and README
- systemd user unit (services/ollie-kde.service)
- OpenRC user service (services/ollie-kde.openrc)
- Comprehensive README with build, install, usage, D-Bus API docs
2026-07-06 00:16:50 +02:00
Levi Neely 22771d3c8d phase 7c: Kate plugin
- Side panel (right dock) with live chat view, streaming via ChatUpdated
- Prompt input at bottom, enter to send
- Context actions: 'Ask File' (describe current file), 'Explain' (explain selection)
- Auto-creates session in current file's directory
- Adopts existing sessions on load
2026-07-06 00:05:51 +02:00
Levi Neely eab8cfa635 phase 7b: Dolphin service menus
- Right-click file → 'Ask Ollie about this' (one-shot with kdialog popup)
- Right-click directory → 'Start Ollie session here'
- ollie-ask helper script: creates session, submits, waits, shows result
- make dolphin-install target
2026-07-05 23:50:36 +02:00
Levi Neely 2767387f8e phase 7a: desktop notifications on turn completion
- Daemon tracks per-session state transitions
- Fires freedesktop notification when any session goes non-idle→idle
- 5 second auto-dismiss timeout
2026-07-05 23:36:16 +02:00
Levi Neely aec392baf9 phase 6: peers verified end-to-end
- PeerAdd/PeerRemove/PeerList/PeerSubmit all functional
- Agent-to-agent prompt delivery confirmed via D-Bus
- Added test-peers.sh for verification
2026-07-05 23:31:48 +02:00
Levi Neely e052424d62 phase 5: KRunner plugin
- 'ollie <prompt>': one-shot mode (create, submit, await, notify, kill)
- 'ollie list': show active sessions with state
- 'ollie kill <id>': terminate a session
- KNotification shows result when one-shot completes
- Installs to /usr/lib64/qt6/plugins/kf6/krunner/
2026-07-05 23:30:09 +02:00
Levi Neely f4b5ce3ea0 phase 4: plasma widget (plasmoid)
- QML plasmoid with session list, live chat view, inline prompt input
- C++ QML plugin (OllieDBusClient) for D-Bus interaction
- Real-time updates via D-Bus signals (ChatUpdated, StateChanged)
- State indicators: ○ idle, ● thinking, ⚡ calling tool
- Auto-scroll chat, interrupt button, new session button
- Makefile: plasmoid-install/uninstall targets for local dev
2026-07-05 23:17:09 +02:00
Levi Neely 238efabcb5 phase 3: system tray icon
- KStatusNotifierItem with status indication (passive/active/attention)
- Tooltip: session count and active count
- Right-click menu: New Session, Sessions submenu (per-session kill),
  Stop All, Quit Daemon
- Live updates via D-Bus signals (SessionCreated, SessionKilled,
  StateChanged)
- Builds as ollie-tray (104KB), links KF6StatusNotifierItem + Qt6
2026-07-05 22:50:42 +02:00
Levi Neely 8531671556 phase 2: interaction + state queries
- GetConfig/SetConfig: per-session config (model, backend, agent, cwd)
- GetContext: JSONL message history
- PeerAdd/PeerRemove/PeerList/PeerSubmit: agent-to-agent communication
- End-to-end tested: CreateSession → Submit → GetChat → KillSession
- 25 C exports total, all wired through D-Bus
2026-07-05 22:46:37 +02:00
Levi Neely 318153493d phase 1: C API + D-Bus daemon skeleton
- lib/capi.go: 18 cgo exports wrapping ollie/core (session lifecycle,
  interaction, state queries, callbacks)
- daemon/: Qt6 D-Bus service (org.ollie.SessionManager) bridging C API
  to D-Bus methods/signals
- Makefile: orchestrates Go c-shared build then CMake build
2026-07-05 22:41:16 +02:00