Repository navigation
Conversation
OMP collapses a pasted draft of more than ten lines into a numbered chip, so the 14-long-multi draft case waited for words that never reach the screen and ended not-reached. The phone's contract for such a token is to show it and stand Take over down, so the adapter recognising it is the read. Agents that define draftCarriesSend keep the stricter match. Real OMP 18.10.1 run 20261013T081454Z: drafts 15/15. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the phone's send path Each picker button of an agent's shipped harness bar is sent with the client's own sendGuardedReply, closed with Escape, and its screen saved as bar-<id>.ansi. Compact and two-tap rows are skipped, so no model turn is made. After Escape the scenario waits for the agent to be idle at its box and clears whatever the agent left there, the way the drafts scenario does: Grok 1.0.52 closes its /model picker on Escape and keeps '/model' typed. An agent with no shipped bar is reported not reached. Run on 2026-10-15 it passed claude, codex, pi, omp and opencode, and failed grok (welcome card hides the input box), muse (argument hint and popup read as draft) and agy (slash popup read as an unread dialog); those three are reader fixes sent separately, and with them in, every agent passed. Co-Authored-By: Claude <noreply@anthropic.com>
3 tasks done
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.
Two harness-canary changes, one commit each: a new opt-in
barscenario that presses each harness-bar button on a live agent through the phone's own send path, and a fix that lets the drafts scenario read Oh My Pi's collapsed paste.feat(canary)bar scenario--scenario bar(not in the defaults) sends each picker button of an agent's shipped harness bar with the client's ownsendGuardedReply, closes the picker with Escape and saves the screen asbar-<id>.ansifor a person to read. Compact and two-tap rows are skipped, so no model turn is made. After Escape it waits for the agent to be idle at its box and clears whatever the agent left typed there, the way the drafts scenario does: Grok 1.0.52 keeps/modelin the box after closing its picker. An agent with no shipped bar is reported not reached. A pass proves the command was sent and left the box; it does not prove the picker opened, which is what the saved screens are forfix(canary)Oh My Pi paste chip📄 #1), so the14-long-multidraft case waited for words that never reach the screen and ended not reached. The phone's contract for such a token is to show it and stand Take over down, so the adapter recognising it is the read (opaqueTokenRead). Agents that definedraftCarriesSendkeep the stricter matchChange outline
Checked against real agents, on the fork build that carries these commits along with the fork's other changes, not on this branch over
mainalone. The bar scenario on 2026-10-15 passed Claude Code, Codex, pi, Oh My Pi and opencode, and failed Grok Build 1.0.52 (its welcome card hid the input box), Muse Code 1.4.8 (its argument hint and popup read as draft) and Antigravity 1.3.5 (its slash popup read as an unread dialog). Those three are reader fixes sent as separate PRs; with them in, every agent passed and each saved screen showed its picker. Onmainalone the bar exists for Claude Code, Codex, pi and Oh My Pi; opencode, Grok, Muse and Antigravity get theirs in a separate PR, and until then the scenario reports them not reached. The paste-chip fix: Oh My Pi 18.10.1, drafts 15/15.Base branch — see CONTRIBUTING.md:
main— there is one line of development, andmainis itChecks
bun run typecheckat the root and inweb/exited 0;bun run lintexited 0;bun test ./bridge ./cli ./scripts8544 pass, 70 skip, 0 fail;cd web && bun run test416 of 416 files, 26140 tests pass. With the implementation taken out and only the tests left, onmain8629ecb,drive.test.tsfails to load (the imports it names do not exist); with it in,bun test scripts/harness-canarypasses 84. The Escape clean-up has no unit test of its own; its evidence is the live run above. Not run: the Windows suites, and the canary itself on this branch overmainalone.