This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
ollie-kde/gui
Levi Neely 93eba4442d gui: incremental rendering for chat blocks (O(n) → O(1) per line)
Previously, every streamed line triggered a full rebuild of the
block's HTML: reparsing all content, re-running syntax highlighting
on every code fence from the start. For a block with n lines this
was O(n) per line = O(n²) total.

Now appendContent() uses incrementalAppend() which:
- Prose: escapes only the new line and appends to the segment HTML
- Code fences: saves KSyntaxHighlighting::State between lines and
  only highlights the new line (O(1) per line)
- Fence close: finalizes segment, requests diagrams as before
- Partial line display: uses cached state, no full re-highlight

Full rebuildBlockHtml() is retained only for diagram reply callbacks
where the entire segment needs reconstruction.

Also adds BlockRenderState to ChatBlock for tracking incremental
parse position, highlight state, and accumulated HTML.
2026-08-09 00:12:22 +02:00
..
ChatBlockDelegate.qml gui: fix infinite layout loop in chat ListView 2026-08-09 00:03:37 +02:00
NewAgentDialog.qml gui: auto-switch to newly created agent, remove remote field from agent dialog 2026-08-08 14:02:10 +02:00
NewSessionDialog.qml gui: extract dialogs and chat delegate into components 2026-08-07 17:40:09 +02:00
SettingsDialog.qml gui: extract dialogs and chat delegate into components 2026-08-07 17:40:09 +02:00
chatblockmodel.cpp gui: incremental rendering for chat blocks (O(n) → O(1) per line) 2026-08-09 00:12:22 +02:00
chatblockmodel.h gui: incremental rendering for chat blocks (O(n) → O(1) per line) 2026-08-09 00:12:22 +02:00
clipboardhelper.cpp Add PlantUML and Mermaid diagram rendering 2026-08-07 14:59:20 +02:00
clipboardhelper.h Add PlantUML and Mermaid diagram rendering 2026-08-07 14:59:20 +02:00
lib9pclient.cpp gui: eliminate all subprocess calls, use native 9P streaming 2026-08-07 18:02:45 +02:00
lib9pclient.h gui: eliminate all subprocess calls, use native 9P streaming 2026-08-07 18:02:45 +02:00
main.cpp Add PlantUML and Mermaid diagram rendering 2026-08-07 14:59:20 +02:00
main.qml gui: fix infinite layout loop in chat ListView 2026-08-09 00:03:37 +02:00
nativestreamer.cpp gui: fix deadlock — demand-driven chat streaming 2026-08-08 23:20:03 +02:00
nativestreamer.h nativestreamer: use subprocess instead of blocking thread 2026-08-07 18:05:53 +02:00
ollie.svg fix: use visible pink color for brain icon 2026-07-08 21:11:37 +02:00
ollie9pclient.cpp gui: fix deadlock — demand-driven chat streaming 2026-08-08 23:20:03 +02:00
ollie9pclient.h gui: auto-switch to newly created agent, remove remote field from agent dialog 2026-08-08 14:02:10 +02:00
org.ollie.gui.desktop feat: add .desktop file and icon for task manager persistence 2026-07-08 20:52:10 +02:00
qml.qrc gui: extract dialogs and chat delegate into components 2026-08-07 17:40:09 +02:00
thememanager.cpp Fix close-to-tray comment - it is implemented 2026-08-05 18:59:47 +02:00
thememanager.h Fix close-to-tray comment - it is implemented 2026-08-05 18:59:47 +02:00