Repository navigation
feat(orchestration): workers say what they ruled out and check before repeating - #90
Merged
Merged
Conversation
… repeating A worker's report now says what it tried and ruled out. After a restart or a cut-off turn, a worker checks its worktree, git history and GitHub before repeating a push, a pull request or a comment; the continue notice and the away digest's restart note say so too. The orchestrator attaches the user's own words to a brief that comes from them, and adds no requirements, acceptance criteria or checklists the user didn't ask for.
ANT1OFF
force-pushed
the
feat/worker-prompt-tweaks
branch
from
November 2, 2026 08:23
ec003dd to
e13d89a
Compare
ANT1OFF
added a commit
that referenced
this pull request
Nov 2, 2026
Desktop release metadata proposal only. Merging this PR does not publish or tag Gram; follow docs/RELEASING.md to release. --- ## [1.4.0](v1.3.1...v1.4.0) (2026-11-02) ### Features * **agents:** identify Gram's Claude processes as the gram entrypoint ([#91](#91)) ([f7dd703](f7dd703)) * **desktop:** run on Linux ([#82](#82)) ([1d37deb](1d37deb)) * **desktop:** turn voice input off on Linux with one check ([#79](#79)) ([470ff8b](470ff8b)) * **orchestration:** a person's PR comment wakes the worker that owns it ([#86](#86)) ([19bdc1c](19bdc1c)) * **orchestration:** a wrap-up turn when a worker stops without reporting ([#88](#88)) ([36a07fb](36a07fb)) * **orchestration:** workers say what they ruled out and check before repeating ([#90](#90)) ([8bdce01](8bdce01)) * **release:** publish and update Linux AppImage and .deb ([#95](#95)) ([c33c464](c33c464)) * **voice:** an accurate mode with a Parakeet pass on each pause ([#83](#83)) ([2b04a52](2b04a52)) * **voice:** hold one key to talk, with a tone at each end ([#87](#87)) ([1a9b3ef](1a9b3ef)) * **voice:** start capture at the press, and an opt-in ready microphone ([#81](#81)) ([505d240](505d240)) * **web:** a Done section that keeps the last 7 days ([#65](#65)) ([8c7bd49](8c7bd49)) * **web:** Done lists every finished chat ([#67](#67)) ([c91d9ac](c91d9ac)) * **web:** one attention count, quieter rows, a sidebar and board that agree ([#92](#92)) ([f193da4](f193da4)) * **web:** orchestrator → workers in the sidebar, a board that matches ([#80](#80)) ([686e737](686e737)) ### Bug Fixes * **desktop:** harden the Linux key vault and autostart entry ([#85](#85)) ([4b35eac](4b35eac)) * **e2e:** hold the t-flaky turn while the smoke test reads its opening line ([#93](#93)) ([2edc4ac](2edc4ac)) * **e2e:** release the dictation tap as soon as a word is heard ([#94](#94)) ([7781194](7781194)) * prepare only approved local-check sources ([#32](#32)) ([af3fab7](af3fab7)) * repair main after [#32](#32) ([#68](#68)) ([ce352e6](ce352e6)) * **voice:** keep the last word after release ([#78](#78)) ([cc40a47](cc40a47)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: gram-release-please[bot] <351321620+gram-release-please[bot]@users.noreply.github.com> Co-authored-by: Johan <32440065+ANT1OFF@users.noreply.github.com>
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.
Stacked on #89, the prompt size budget; these additions stay within it. Merge after #89.
What changes
Small changes to role text that every orchestrator and worker reads. Each one is quoted below exactly as it now reads. Nothing else changes.
(a) A worker's
reportsays what it ruled out (prompt.ts, worker role)In the
reportline, "Keep the summary short and factual." now reads:(b) Check before repeating an outside action after a restart or cut-off
New line in the worker role (
prompt.ts), after "Report, then end your turn…":The cut-off notice a worker is sent when a restart continues it is
restartContinuationinrules.ts, sent by the boot path (service/boot.ts→noteRestart). Its old phrase "Continue where you left off, after checking what state your work was left in." now reads:The orchestrator's away-digest note on cut-off workers (
restartNoteinrules.ts) gains one sentence after the list of workers. Whether to set a worker going again stays the orchestrator's decision:(c) Briefs attach the user's words and invent nothing (
prompt.ts, orchestrator role)The
userMessagesline used to read: "When the user pasted something the worker needs as it is (a log, a spec, an error, a long list), don't retype it into the brief: passuserMessages… The brief still says what to do with them." It now reads:The brief-writing guidance before it ("A worker sees only its brief… Write the brief so it stands alone: …") is unchanged. The orchestrator still writes briefs, and a test now asserts that line remains.
Size (characters, measured with the budget test's inputs)
Everything stays within budget, so nothing was trimmed. Tool definitions are unchanged.
Tests
rules.test.ts:restartContinuationcarries the check;restartNote's exact string is updated.bun run test packages/server/src/orchestration/rules.test.ts packages/server/src/orchestration/service-restarts.test.ts packages/server/src/orchestration/prompt-budget.test.ts packages/server/src/orchestration/workspace-pause.test.ts: all passed (437 before the last wording change torestartNote; 431 on the final run, which left out the budget and pause files).GOMEMLIMIT=2GiB bun run typecheck --singleThreaded,bun run lint,bun run fmt:check,bun run check:scaffold: passKnown limits