Repository navigation
Fix(cli): A push after merging the default branch measures only the branch's own change - #1824
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
VERDICT: APPROVE Judged head: a69a0f2 Objectives version: 33ff68c313ae563f337e21468ea2b63410c803c4dc3e26b152c45fa3229084c8 Ruling ordinal: 0 Brief hash: 048ee7c3e318aea62547a6b384c8f405123b572376a766e0ead056ed13025f28 Policy digest: bf51ddb9c7bd4776744d56ac91f4005ee8b2c1e4a5c50d1653eaa0ba8789accc Judged base: 9dda4a4 Manifest version: 2 Pause-bound ruling: (none) BRIEF CONFORMANCE: Brief conformance: OBJECTIVES: FINDINGS (ordered by severity): SCOPE: (covered by the review summary) Tokens: 1823: review — Reviewer — claude — 17/3853/— |
|
VERDICT: PASS Judged head: a69a0f2 Objectives version: 33ff68c313ae563f337e21468ea2b63410c803c4dc3e26b152c45fa3229084c8 Ruling ordinal: 0 Brief hash: 048ee7c3e318aea62547a6b384c8f405123b572376a766e0ead056ed13025f28 Policy digest: bf51ddb9c7bd4776744d56ac91f4005ee8b2c1e4a5c50d1653eaa0ba8789accc Judged base: 9dda4a4 Manifest version: 2 Pause-bound ruling: (none) FINDINGS (ordered by severity): OBJECTIVES: CONFIG SCAN: (covered by the review summary) SECRETS: SECRETS: none found on my own read of the diff. The atta-labs/secret-scan check has not run yet: CI has not run because no pull request exists, so this rests only on my read of the diff. The only identity-like strings are the placeholder fixture values test@example.com and Test. AGENT-CONFIG: not applicable — this pull request changes no agent configuration (.claude/, .mcp.json, .agents/), so no scanner was run. My own read found no agent, hook or MCP config touched. Security read: the new mergedCommitAfter in apps/cli/src/lib/remote-base.ts calls git only through the file's existing git() helper, which uses execFileSync with an argument array (no shell) and a GIT_*-stripped environment. Its inputs are the existing starting base (unchanged trust: the local VINAYA_PUSH_BASE environment variable, @{u}, origin/main or HEAD~1) and commit SHAs printed by git rev-list and rev-parse, so no new injection surface. There are no new dependencies, and no auth, crypto, BYOK, network or permission surface. Every failure path falls back to the starting base, so nothing new can fail outright. Functionally, all three objectives are met by the code and fixture tests. No findings. Tokens: 1823: security — Security — claude — 6/2344/— |
|
No description provided. |
|
The dev-review-loop paused: infrastructure — an uncaught error ended round 1's own processing: check-publish-mergeability found no open pull request for branch task/issue-1823. A Principal ruling is needed before this can continue. A loop process still running picks up a posted ruling by itself; use this --resume command only when that process has stopped: |
AEG provenance — task (backlog Issue #1823)
Tokens: 1823: archive — Archivist — — — — |
Closes #1823
For: Claude Opus (coding-agent CLI on a dev machine, dispatched locally, unattended)
Project: cli
Decisions
resolveRemoteBasenow composes two private steps,startingRemoteBase(the unchanged chain) andmergedCommitAfter(the merged-commit rule), so the starting-base logic stays byte-for-byte as before and the new rule is one readable function.<sha>^2fails or prints nothing): skipped, and the next older merge is tried; with none left the start is returned, per the brief's "a read fails or prints nothing" clause.git merge-base --is-ancestoranswers by exit status only, so it is read through the file's existingReadFailureopt-in — a non-zero exit counts as "not an ancestor".Test plan
Premise
Premise:
Evidence
Head: a69a0f2
Summary:
3 files changed, 141 insertions(+), 4 deletions(-)Group A — recomputable
git diff 9dda4a41a7baeda648b406a6498683b0a021c2a6...a69a0f2c6eee9dcdcb7d5295ac015ce42a749d8b --numstatGroup B — attested
vinaya check --all --diff-onlyGraded body: the live pull-request body (
--push)Group C — Test Plan commands
C1:
bun scripts/test-suites/local-run.ts exact --context 1f14415fad80d84e92b5744d1d668de2b4db76a1ff8215a49b2d3b48f6861257 -- apps/cli/tests/checks/changeset-coverage-bin.test.ts@default apps/cli/tests/checks/changeset-coverage.test.ts@default apps/cli/tests/checks/check-exec-bits.test.ts@default apps/cli/tests/checks/own-workflow.test.ts@default apps/cli/tests/ci-shards.test.ts@default apps/cli/tests/commands/task-status.test.ts@default apps/cli/tests/import-boundary.test.ts@default apps/cli/tests/lib/log-callers.test.ts@default apps/cli/tests/run-paths-only.test.ts@default apps/cli/tests/surface-spec-exports.test.ts@defaultReused from a green run recorded
2026-11-02T06:06:36.929Z(pre-push) — not re-run.C2:
cd apps/cli && bun test --timeout=60000 tests/lib/remote-base.test.ts tests/lib/pre-push-failed-tests.test.ts tests/lib/pre-push-mode.test.ts tests/lib/test-selector.test.tsReused from a green run recorded
2026-11-02T06:11:25.280Z(pr-report) — not re-run.Scope
One function in
apps/cli/src/lib/remote-base.ts(resolveRemoteBase), its file header and comment, new fixture-repository cases inapps/cli/tests/lib/remote-base.test.ts, and a patch changeset for@attalabs/vinaya. Consumers run unchanged: the pre-push Biome step and test selector, andscripts/test-suites/local-run.ts, all of which callresolveRemoteBaseor the changed-file readers that default to it. With no merge after the starting base every caller resolves exactly as before. Non-goals: the merge-base/rerun/since-green base choice, the ready push's environment variables, CI test selection, and the loop driver's pre-turn merge are untouched.Tier: 1