Commit Graph

14 Commits

Author SHA1 Message Date
Levi Neely 780e558743 cmake: add PeerManagerWindow.qml to qt_add_resources 2026-10-09 12:52:38 +02:00
Levi Neely 840723de3b gui: fix coordinate mapping for prompt textarea double-click
The MouseArea (chordArea) is a sibling of the ScrollView containing
promptInput, so mouse.x/y are relative to the parent Item, not the
TextArea. Map coordinates via mapToItem before calling positionAt.
2026-10-08 17:49:53 +02:00
Levi Neely 9618c79232 gui: native 9P plumb client with edit receiver and mouse chording
Replace QProcess plumb binary shell-out with proper 9P2000 plumb client:
- ninep.h/cpp: minimal 9P2000 protocol client for plan9port plumber
- plumbmsg.h/cpp: plumb message pack/unpack wire codec
- plumber.h/cpp: full plumb client with:
  - socketPath() resolving $NAMESPACE/plumb or display fallback
  - send()/sendTo() write packed messages to send port via 9P
  - PlumbReader thread blocks on edit port, emits edit(file,addr,wdir)
  - startReader() starts the receive loop
  - available() checks plumb socket existence

Add Acme-style mouse chording to ChatBlockDelegate.qml:
- B1+B2 = cut (snarf)
- B1+B3 = paste
- Context menu now includes Cut/Paste with chord hints

Legacy plumb()/plumbTo() methods preserved as aliases to send()/sendTo().
2026-10-08 15:34:29 +02:00
Levi Neely 4774cb9fe9 gui: convert ProcManager to separate Window, sync to active session
- Convert from Dialog to Window (not modal, separate window)
- Title shows current session name
- Syncs to activeSessionId/activeAgentId changes in main window
- Header shows which session is being displayed
- Double-click row to view output
- Sort processes by PID descending (newest first)
- Clear selection when session changes
2026-10-08 14:57:25 +02:00
Levi Neely af21dfa770 kde: remove KF5 .protocol file, use KF6 JSON metadata
The ollie.protocol file was being installed to kservices5/, which is
the KF5 mechanism. KF6 KIO workers embed protocol metadata in the
plugin's JSON file (ollie.json), which we already have.

Remove:
- kio/ollie.protocol file
- CMake install rule for .protocol file

Manual cleanup needed: sudo rm -rf /usr/local/share/kservices5/
2026-10-08 12:24:48 +02:00
Levi Neely 1dcc9638df gui: replace NativeStreamer with Lib9pStreamer
Switch streaming reads (chat, state, events) from subprocess-based
ollie-9p to native lib9p via worker threads. This eliminates:
- Process spawn/teardown overhead
- Subprocess failure modes
- Signal handling complexity

Lib9pStreamer uses QThread workers with blocking reads. On stop,
workers are given 200ms to exit cleanly, then abandoned (they'll
exit when the read completes or connection closes).

Also: make KRunner/Kate/KIO plugins optional in CMakeLists.txt
to fix build when KF6Runner etc aren't installed. Added
QT_DEFAULT_MAJOR_VERSION=6 to fix Qt6 detection with CMake 4.x.
2026-10-06 11:16:53 +02:00
Ollie Agent 72239fe3d5 kde: remove KF5/Qt5 support, build KF6/Qt6 only
Drop the OLLIE_KF5 CMake option and the entire Qt5/KF5 build branch;
delete KF5-only assets (99-ollie-kf5.sh, ollie-actions-kf5.desktop);
collapse all QT_VERSION_MAJOR and KTEXTEDITOR_VERSION_MAJOR conditionals
to the KF6 path in the KRunner, Kate, KIO, and GUI sources; update
Makefile, README, and docs. Verified: KF6 configure + full build of
ollie-gui, krunner_ollie, ollie_kate, kio_ollie.
2026-09-29 16:44:12 +02:00
Levi Neely 75a2da080e kde/gui: Acme-style mouse actions and one-handed workflow
Add Plan 9/Acme-inspired mouse interaction:
- B2 (middle-click): Execute selected text as prompt
- B3 (right-click): Plumb selection via plan9port, fallback to context menu

Plumber integration (plumber.h/cpp):
- Wraps plan9port's plumb command for context-aware actions
- Auto-detects plumb binary in common plan9port locations
- Graceful fallback when plumber not available

Block tag line (ChatBlockDelegate):
- Hover-visible action buttons: Copy, Retry, Continue, Edit
- Per-block-type actions (Retry for assistant/error, Edit for user)

Action toolbar (ChatPane):
- Stop, Compact, Copy Last, Templates dropdown
- Mouse-first workflow without keyboard shortcuts

Input area improvements:
- Larger touch targets (48px send button, 32px toggle)
- Clear and Paste buttons
- B2/B3 mouse actions in prompt input
- Placeholder text explains mouse actions

Context menus now include:
- Execute Selection (B2)
- Plumb Selection (B3)
- Standard Cut/Copy/Paste/Select All
2026-09-04 13:47:51 +02:00
Levi Neely 013a669e9d build: simplify Makefile, add uninstall target
Reduced from 18 targets to 10:
  all, build, go, tools, kde, install, install-data, test, clean, uninstall

Key changes:
- Build to build/ dir first, install only after tests pass
- Merged ninep+core into 'go' (builds olliesrv, ollie-9p, toolsrv)
- Removed build-kf5/install-kf5/kde-kf5 (cmake auto-detects)
- Merged test-core+test-9p into 'test'
- Removed 'client' target (lib9p now built by cmake as custom command)
- Added 'uninstall' target

CMakeLists.txt changes:
- lib9p built via add_custom_command instead of requiring pre-built .so
- add_dependencies ensures lib9p built before KDE targets need it
2026-08-20 11:56:00 +02:00
Levi Neely 95a457e823 fix kf5 build path 2026-08-19 08:43:48 +02:00
Ollie Agent 7050bccfdb Fix GoalDialog QML resource inclusion 2026-08-17 17:28:22 +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 1e0f9cacd0 Integrate KDE frontend into main repository 2026-08-16 15:08:33 +02:00