Compact AGENTS.md, fix copy inside the prompt box - #35
Merged
Merged
Conversation
AGENTS.md goes from 167 lines to 100. The file was diluting itself: a rule buried in a paragraph of justification reads as background, and this file is mostly rules. Prose became bullets, war stories were cut unless the rule is counterintuitive without them, and the reasoning that survives is the reasoning that changes what you would do. Pulled back what left AgencyZero.md when it was trimmed to five lines, since none of it stopped being true: where knowledge goes (four stores, one job each) and the versioning rules (patch only, bump on every commit that ships). They belong here rather than in front of the agent on every turn. Copy inside the composer was doing nothing. The Cmd+C handler skipped text fields on the reasoning that a field's own copy is already correct, but the native route is the one that was broken to begin with, so deferring to it inside the prompt box meant the keystroke went nowhere. Fields now copy from selectionStart/selectionEnd, and focus and the highlight are put back afterwards, since the clipboard fallback borrows both to do its work.
pathscale
pushed a commit
that referenced
this pull request
Jul 31, 2026
An agent can say it shipped something. It cannot say the thing works, because it is not the one looking at the screen. The vocabulary had no way to express that: `[x]` meant finished, and finished meant deleted under the default setting. A copy bug was reported fixed three times in one evening, and its row would have been gone after the first. So `[>] title (#35)` moves a row to shipped, naming the pull request. The row waits there, amber rather than green, until the owner confirms or bounces it. `[/]` starts a row, which the vocabulary also lacked: a list could say proposed or done and nothing in between. The reference is its own column rather than a suffix on the title. The title is the match key for every later status change, so a row renamed to "Fix copy (#35)" would stop answering the line that closes it, and stripping the suffix back off at match time is a parse nobody would remember was there. Items now appear while the reply is still being written. They were written only from the finished body, which made the procedure impossible to follow: a row proposed in a turn did not exist until that turn had already ended, so it could not be worked on, and the list only ever described work that was over. Whole lines only, so a title still streaming is never read as a shorter one, and the end-of-turn pass stays as the backstop for a last line with no newline. Schema change on ProjectItem. The store can be reset.
pathscale
pushed a commit
that referenced
this pull request
Jul 31, 2026
An agent can say it shipped something. It cannot say the thing works, because it is not the one looking at the screen. The vocabulary had no way to express that: `[x]` meant finished, and finished meant deleted under the default setting. A copy bug was reported fixed three times in one evening, and its row would have been gone after the first. So `[>] title (#35)` moves a row to shipped, naming the pull request. The row waits there, amber rather than green, until the owner confirms or bounces it. `[/]` starts a row, which the vocabulary also lacked: a list could say proposed or done and nothing in between. The reference is its own column rather than a suffix on the title. The title is the match key for every later status change, so a row renamed to "Fix copy (#35)" would stop answering the line that closes it, and stripping the suffix back off at match time is a parse nobody would remember was there. Items now appear while the reply is still being written. They were written only from the finished body, which made the procedure impossible to follow: a row proposed in a turn did not exist until that turn had already ended, so it could not be worked on, and the list only ever described work that was over. Whole lines only, so a title still streaming is never read as a shorter one, and the end-of-turn pass stays as the backstop for a last line with no newline. Schema change on ProjectItem. The store can be reset.
pathscale
pushed a commit
that referenced
this pull request
Aug 1, 2026
Every session could already write items, but only into the project it was sent from, so an agent that noticed work belonging somewhere else could only describe it and ask the user to re-type it in the right window. The task manager never had that limit: its harvest resolves a project by name and writes there. Nothing about the store required the difference. A line ending `(@Somewhere)` now routes the same way from any session, by project name or by `proj-` id, next to the `(#35)` reference and in either order. Neither suffix reaches the title, which is the match key. Resolution never creates. The task manager creates a project it cannot find, because organising is the entire job there. An ordinary session that names something missing has far more likely mistyped it, and a silently created near-duplicate project is much harder to notice than an item that never appeared, so the line is reported and skipped instead.
pathscale
pushed a commit
that referenced
this pull request
Aug 1, 2026
Every session could already write items, but only into the project it was sent from, so an agent that noticed work belonging somewhere else could only describe it and ask the user to re-type it in the right window. The task manager never had that limit: its harvest resolves a project by name and writes there. Nothing about the store required the difference. A line ending `(@Somewhere)` now routes the same way from any session, by project name or by `proj-` id, next to the `(#35)` reference and in either order. Neither suffix reaches the title, which is the match key. Resolution never creates. The task manager creates a project it cannot find, because organising is the entire job there. An ordinary session that names something missing has far more likely mistyped it, and a silently created near-duplicate project is much harder to notice than an item that never appeared, so the line is reported and skipped instead.
pathscale
pushed a commit
that referenced
this pull request
Aug 1, 2026
Every session could already write items, but only into the project it was sent from, so an agent that noticed work belonging somewhere else could only describe it and ask the user to re-type it in the right window. The task manager never had that limit: its harvest resolves a project by name and writes there. Nothing about the store required the difference. A line ending `(@Somewhere)` now routes the same way from any session, by project name or by `proj-` id, next to the `(#35)` reference and in either order. Neither suffix reaches the title, which is the match key. Resolution never creates. The task manager creates a project it cannot find, because organising is the entire job there. An ordinary session that names something missing has far more likely mistyped it, and a silently created near-duplicate project is much harder to notice than an item that never appeared, so the line is reported and skipped instead.
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.
AGENTS.md: 167 lines to 100
The file was diluting itself. A rule buried in a paragraph of justification reads as background, and this file is almost entirely rules.
Prose became bullets. War stories were cut unless the rule is counterintuitive without one. What survives is the reasoning that changes what you would actually do.
Restored from AgencyZero.md
Trimming that file to five lines dropped things that did not stop being true, so they land here instead of in front of the agent on every turn:
Copy inside the prompt box
Reported alongside this work, and a real bug of mine. The Cmd+C handler deliberately skipped text fields, reasoning that a field's own copy is already correct. But the native clipboard route is the one that was broken in the first place, which is why the transcript needed an
execCommandfallback. Deferring to it inside the composer meant copying out of the prompt box silently did nothing.Fields now copy from
selectionStart/selectionEnd. Focus and the highlight are restored afterwards, because the fallback borrows both to do its work and would otherwise drop the cursor and clear the very selection just copied.Verification
Frontend typecheck, lint, 254 tests, production build. Rust fmt, workspace clippy under
-D warnings, all suites. Zero em dashes in every file touched, including the code comments.Note
No version bump, as agreed. The composer fix is frontend, so it ships with the next release that carries one.