Repository navigation
feat(agent): ship bounded Pi harness v2 and stabilize embedded Pi - #117
Merged
Merged
Conversation
devnull03
force-pushed
the
feat/pi-harness-v2
branch
from
August 24, 2026 08:23
2f214b4 to
b141dee
Compare
Replace the New/Stop/Restart row with a + button beside the Log/Terminal switcher: click starts a new session, right-click offers Stop and Restart. The toolbar row keeps only the session status.
The terminal painted each cell background as an absolutely positioned quad at 8px * column while gpui laid the glyphs out at the resolved font advance. The two coordinate systems drifted apart linearly, so the cursor block and its glyph separated further with every column, and every repaint re-tore them. Fold the background into the cell HighlightStyle so gpui places glyph and background together, and measure the cell from the resolved text style instead of assuming 8x16 when sizing the PTY grid.
GPUI narrates every a11y tree update at debug level, one line per frame. In a recent session that was 633 of 787 lines, burying the entries a pasted bug report exists to show. Folded into the filter that already drops its sibling focus notice.
…r it `monospace` is a CSS generic, not a family any OS ships, so the panel had been asking for a font that does not exist and silently getting the proportional UI face. No two columns were the same width. Resolve a face that is actually installed instead, and let the archivist name their own under Settings ▸ Agent along with a size. Everything that has to agree about the grid now reads one function: the styled text, the cell advance, and the line height all come from `terminal_type`, so a preference cannot move the glyphs without moving the columns they were counted into. Two costs the panel was paying on the main thread go with it. The global OpenRouter credential is resolved once on a background thread rather than by spawning Pi twice inside `start` — that was a three-second freeze on every session start, visible in qrate.log. And a new session now writes Pi's own `/new` into the running PTY, which clears the conversation in place, rather than killing the process and cold-starting a replacement. A resumed session no longer announces itself; the status row is hidden when there is nothing to say.
devnull03
marked this pull request as ready for review
August 24, 2026 15:46
Opens a new line for the bounded Pi harness: agents now talk to a running qrate over protocol v2, and the embedded Pi terminal reads and performs like a terminal rather than a text box that happened to hold one.
The notice pointed straight at the GitHub asset, so clicking it started a save without the reader ever seeing what an unsigned build does on first launch. Point both it and the About window at the site's download page instead — they read one field, so neither can drift back to a direct link on its own. Move the widget from the status bar to the title bar's right group, inboard of the dock toggles, on the same convention the plugin bar already follows there.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/newinstead of respawning the process — both were multi-second freezes on the UI threadRelated tasks
Closes #102 (Notion ID: 3bd21d32-b13b-8129-b950-cf928a99b8fd)
Closes #103 (Notion ID: 3bd21d32-b13b-8118-aa24-cff96ac72c41)
Closes #109 (Notion ID: 3bd21d32-b13b-81c0-a447-c47d655551ee)
Advances #112 (Notion ID: 3c321d32-b13b-81fb-a62b-dd4cc66aa202). The measured 5k-row before/after audit remains follow-up work, so this PR must not close it.
MCP transport remains intentionally out of scope for #110.
Verification
cargo fmt --all --checkcargo clippy --workspace --all-targets -- -D warnings -A dead_codecargo test --workspacecargo build -p appnpm run checkandnpm testopenrouter/openrouter/freeresolves to the literalopenrouter/freerouterFollow-ups