Conversation
Author
|
The functionality was entirely created by Codex. I personally just needed this, because I wanted to respond to firstmate and running agents inside herdr while AFK on mobile, but not be forced to resume it, but just have it be the exact same session. I chose an abstraction level, that would be least interferring and re-uses what is already there. Fundamentally it is only an integration specifically for herdr. I can perform cleanup, or necessary changes, or act on potential criticism of the code. |
Squashed commits: - Add Herdr-attached Pi sessions - no-mistakes(review): Fix Herdr attachment persistence, recovery, routing, and sorting - no-mistakes(review): Fix Herdr cursor persistence and routing recovery - no-mistakes(review): Fix Herdr cursor ordering and opt-in discovery - no-mistakes(review): Fix partial native entry cursor commits - no-mistakes(review): Fix Herdr turn correlation and echo persistence - no-mistakes(review): Order Herdr cursor persistence after durable timeline writes - no-mistakes(review): Order Herdr hydration cursors after durable writes - no-mistakes(review): Block Herdr cursor advancement after durable failures - no-mistakes(review): Halt failed Herdr streams and fix native baselines - no-mistakes(review): Terminalize blocked Herdr turns and unmapped responses - no-mistakes(review): Reject prompts after Herdr persistence failures - no-mistakes(document): Document Herdr-attached Pi configuration
HackXIt
force-pushed
the
feature/herdr-attached-pi-live
branch
from
August 30, 2026 10:04
a5e67c1 to
c2b2eab
Compare
Collaborator
|
Closing this feature PR. Please discuss the workflow and shared need in Discussions, following CONTRIBUTING.md. |
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.
Linked issue / discussion
Product discussion: #4070
I initially opened this workflow context as issue #4045, then moved it to a Discussion and closed the issue because
CONTRIBUTING.mdsays feature requests belong in Discussions rather than Issues.Type of change
Reasoning
I built this for my own workflow: I run Pi inside Herdr, then use Paseo mobile when I am away from the keyboard and want to respond to the same running session.
Before this change, that workflow has an awkward split. The real Pi session can keep running in the Herdr terminal, but Paseo mobile cannot import it as a live agent. Starting a separate Paseo-managed Pi process works technically, but it is not the session I was trying to continue.
This PR adds the smallest integration layer I could find: Herdr-attached sessions still show up as normal
provider=piagents. Herdr is only used as the transport for the existing terminal target, and Pi's own JSONL session history remains the source of truth for timeline catch-up.The implementation was written with Codex. I chose the approach, tested the result in my own workflow, and I am happy to clean up or reshape the code if the abstraction is not what you want in Paseo.
Goals
pi --mode rpcprocess.cwd, and pane ID when available.Non-goals
QA
Public evidence:
Local validation I ran on the upstream-based branch:
After rebasing away the GitHub-created merge commit, I checked that the patch series is unchanged with
git range-diff:Manual test in my own workflow on Linux:
I did not test iOS, Android, browser web, macOS desktop, or Windows desktop in this pass. The exercised path is daemon/provider behavior plus the mobile-to-terminal workflow against a Linux Herdr terminal.
Checklist
npm run typecheckpassesnpm run lintpassesnpm run formatpasses