Repository navigation
Fail signed-out Pi opening before delivering input - #28048
Closed
brennanb2025 wants to merge 33 commits into
Closed
brennanb2025 wants to merge 33 commits into
brennanb2025 wants to merge 33 commits into
Conversation
brennanb2025
force-pushed
the
brennanb2025/agent-start-split-3-acp-start
branch
from
October 12, 2026 19:39
e5c1de3 to
8454fe1
Compare
brennanb2025
force-pushed
the
brennanb2025/agent-start-split-4-pi-start
branch
from
October 12, 2026 19:41
dc651d7 to
2d46899
Compare
This was referenced Oct 12, 2026
brennanb2025
force-pushed
the
brennanb2025/agent-start-split-3-acp-start
branch
from
October 12, 2026 21:31
8454fe1 to
699a59a
Compare
brennanb2025
force-pushed
the
brennanb2025/agent-start-split-4-pi-start
branch
from
October 12, 2026 21:31
2d46899 to
6ba01b3
Compare
5 of 7 tasks
Contributor
Author
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.
ELI5
Pi could appear ready without an authenticated model and accept a message it could not answer. A failure reported during opening could also be logged while the open continued. A chat now waits for a successful opening before Pi receives its first message.
What Changed
Pi now publishes its process and the host awaits its state before sending input. An unknown provider or a successful empty model list fails the start as signed out; a failed optional listing does not. Callback failure also rejects the open. The host records one failure and closes once. This keeps main's sign-in restart rule: for every agent, a later send after a signed-out result uses a new process once existing work settles, so a login made since can take effect. The same failed send is not retried. Pi's obsolete start-availability signal is removed because an empty model list now fails opening.
Why
The host owns startup failure and derives it from its phase. Pi checks its existing failure cause during opening instead of allowing a broken start to become ready. The all-agent restart rule from #26544 remains necessary because some agent programs cache login until reconnect; Pi's stricter start failure does not replace that recovery for a later turn. The unused start-availability overlay is deleted.
Differences from the common pattern
Linked Issue
Replaces the Pi-startup portion of #26561; depends on the three lower drafts.
Visual Proof
Rendered before/after evidence is pending. Scripted tests cover the behavior; no screenshot or manual platform evidence is claimed.
Testing
Focused Pi, all-agent sign-in restart, model-list and three-adapter startup-failure tests; Node and CI project typechecks; static checks with the accepted pinned-main HtmlDocPreview exception. Scripted macOS tests only.
Review
Reviewed the owning diff, failure paths and covered races. Tests demonstrate covered behaviors; rendered and real remote-host QA are pending.
Agent skill upstream boundary
Notes
Execution stays on the host owning the agent. Folder workspaces and independently updated peers retain their existing paths. Loss of contact is not process-exit evidence. Draft only; no main sync or hosted CI watch.
Checklist