Repository navigation
docs(context): ! marks a breaking API or wire change, not a behavior change - #595
Conversation
…change Co-Authored-By: Claude <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 21 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 43c5ace
No actionable findings. The single-line change in assets/CONTEXT.md:43 clearly limits ! to public API or wire breakage, while “alone” preserves the case where a behavior change also breaks the API. The surrounding migration requirement remains intact. Overall direction matches the stated intent.
Verification limits: GitHub-only static review of the complete patch and surrounding text. Confirmed the fetched file contains 9,676 characters, below the stated 10,000-character limit; did not independently run tests or quest context. Rechecked open/non-draft state, full head SHA and reviews immediately before posting.
|
quest land watch: the merge queue removed this pull request at 43c5ace because its The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs.
…efore any build�[33m 1175�[2mms�[22m�[39m
�[33m�[2m✓�[22m�[39m a held pick keeps its place unbuilt, and stale queue branches and their runs are cleared on the first pass�[33m 1374�[2mms�[22m�[39m
�[33m�[2m✓�[22m�[39m a drop interrupted before its comment is finished on the next pass, once�[33m 993�[2mms�[22m�[39m
�[33m�[2m✓�[22m�[39m the land fixer's requeue arms auto-merge pinned to the head, at the back of the queue�[33m 3798�[2mms�[22m�[39m
�[31m⎯⎯⎯⎯⎯⎯⎯�[39m�[1m�[41m Failed Tests 1 �[49m�[22m�[31m⎯⎯⎯⎯⎯⎯⎯�[39m
�[41m�[1m FAIL �[22m�[49m test/review.test.ts�[2m > �[22manything but the head changing, such as a removed REVIEW.md, starts a new session that reviews it all
�[31m�[1mError�[22m: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".�[39m
�[90m �[2m❯�[22m forEach native:�[2m1:11�[22m�[39m
�[36m �[2m❯�[22m <anonymous> test/review.test.ts:�[2m1328:3�[22m�[39m
�[90m1326|�[39m ssh_url: `git@github.com:${login}/widget.git`,
�[90m1327|�[39m });
�[90m1328|�[39m vi.stubEnv("GH_TOKEN", "token");
�[90m |�[39m �[31m^�[39m
�[90m1329|�[39m vi.stubGlobal("fetch", async (input: URL, init?: RequestInit) => {
�[90m1330|�[39m const url = new URL(input);
�[31m�[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯�[22m�[39m
�[2m Test Files �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m33 passed�[39m�[22m�[90m (34)�[39m
�[2m Tests �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m1190 passed�[39m�[22m�[2m | �[22m�[33m5 skipped�[39m�[90m (1196)�[39m
�[2m Start at �[22m 08:28:32
�[2m Duration �[22m 452.51s�[2m (tests 83%, transform 13%, import 4%)�[22m
##[error]Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
❯ forEach native:1:11
❯ <anonymous> test/review.test.ts:1328:3
error: script "test" exited with code 1
error: recipe `_test` failed on line 32 with exit code 1
error: recipe `test` failed on line 29 with exit code 1
##[error]Process completed with exit code 1.
Post job cleanup.
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git version
git version 2.55.0
Temporarily overriding HOME='/var/cache/github-runner-work/_temp/fe9c7135-c109-40a3-a5d9-8ac233ba8e88' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --global --add safe.directory /var/cache/github-runner-work/quest/quest
Removing SSH command configuration
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Post job cleanup.
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git version
git version 2.55.0
Temporarily overriding HOME='/var/cache/github-runner-work/_temp/a2f45f4c-7d4c-41e9-8749-bebce1a2e852' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --global --add safe.directory /var/cache/github-runner-work/quest/quest
Removing SSH command configuration
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
A job completed hook has been configured by the self-hosted runner administrator
##[group]Run '/nix/store/gx2v6q84b0w43bafm0whkdx93qyxbpps-ci-cache-gc.sh/bin/ci-cache-gc.sh'
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash --noprofile --norc -e -o pipefail {0}
##[endgroup]
evicted 0 objects and 0 action results (0 B logical); 50.0 GiB logical remain
Cleaning up orphan processes
Current runner version: '2.338.2'
##[group]Runner Image Provisioner
Hosted Compute Agent
Version: 20261028.624
Commit: 54898b74c23fde5556c9b3c3a2290865feef0dfe
Build Date: 2026-10-28T21:51:42Z
Worker ID: {910f073e-3280-4752-9540-f9fb5843e78e}
Region: centralus
Cloud: Azure
##[endgroup]
##[group]Operating System
Ubuntu
26.04.1
LTS
##[endgroup]
##[group]Runner Image
Image: ubuntu-26.04
Version: 20261101.186.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu26/20261101.186/images/ubuntu/Ubuntu2604-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu26%2F20261101.186
##[endgroup]
##[group]GITHUB_TOKEN Permissions
Contents: read
Metadata: read
PullRequests: read
##[endgroup]
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Complete job name: Queue
##[group]Run [[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }
�[36;1m[[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }�[0m
shell: /usr/bin/bash -e {0}
env:
RESULT: failure
##[endgroup]
##[error]the queue build ended failure
##[error]Process completed with exit code 1.
Cleaning up orphan processes
(written by quest land watch) |
|
Codex land fixer: quest land check: [Errno 32] Broken pipe (written by Codex) |

quest context's Public API rule said only "a breaking change marks its title with!", and agents marked behavior changes too: of the 53 commits that edited aMIGRATE.mdin moq-dev/moq since 2026-11-03, 38 carried!. The rule now names what breaks (the public API or wire) and says a behavior change alone takes no!(user, 2026-11-09: "!is for breaking API changes, not behavior changes").assets/CONTEXT.mdgrows from 9,612 to 9,676 characters, within the 10,000 Claude Code shows.Impact
Public API: none. Wire: none.
quest contextprints the reworded rule.Decisions
!and says how to migrate; a behavior change alone takes no!." (rejected: the old "A breaking change marks its title with!", which agents read as covering behavior changes; "behavior changes take no!", which drops "alone" and would suggest a change that breaks the API and also changes behavior takes no!either). Reason: the user's 2026-11-09 instruction.## Waitingheading, soquest iteratetreated it as its starter's; a hand-back heading was added to take it, and that heading is removed here.assets/CONTEXT.md. The rule already lives there, and the user asked for this wording, so no other placement was weighed.Validation
just installin the Nix dev shell at43c5ace: passed.quest gate just checkat43c5ace: passed (typecheck, Prettier, 35 quest documents and 4 example documents, actionlint, shellcheck, shfmt, nixfmt).quest gate just testat43c5ace: passed (vitest: 33 files, 1183 tests passed, 5 skipped; lifecycle, installer, and install-check regression tests passed). The log shows signal-exit lines from the gate's own tests, and the run exited 0.quest contextprints the reworded rule.Models
Size: XS
Implementer: Claude Code, claude-fable-5-2, medium effort
Implementer: Claude Code, claude-haiku-5-5, high effort (iterate, XS)
(Written by Claude Haiku 5.5 with high)
🤖 Generated with Claude Code
Review
Rewritten by
quest reviewafter each round.01a1c3fa-e6d1-7462-a22b-f6d758f6b113, round 1This focused wording change clarifies when breaking-change notation is required and introduces no code or runtime changes.