docs: drop the pass-bound operation list from the README #36

Merged
jercik merged 1 commit from docs/readme-pass-pointers into main 2026-10-05 09:32:37 +00:00
Owner

Addresses the round-2 review of #30 (claims 01M44DFBM0FHYZ5WA97BQNM831 and 01M44DK5FQJDPCKECYQK6GRXSG).

The Notes paragraph listed which operations stay pinned to one dispatch pass, and the list was wrong: the wait ends on review-level triage state, and only its coverage poll is pass-scoped. The paragraph is gone. The supersession paragraph under "Outcomes and exit codes" now carries the one fact a user needs from it: the run does not switch to the newer pass. Which reads take a pass id is visible in ReviewSession and review, so the README no longer walks through the call path.

The Outcomes pointer now promises only what src/contract/types.ts holds: the outcome names, a behaviour comment beside each, and the exit codes.

Stacked on #30. Merge that first.

🤖 Generated with Claude Code

Addresses the [round-2 review of #30](https://code.j4k.dev/j4k-oss/review-wrapper/pulls/30#issuecomment-122212) (claims `01M44DFBM0FHYZ5WA97BQNM831` and `01M44DK5FQJDPCKECYQK6GRXSG`). The Notes paragraph listed which operations stay pinned to one dispatch pass, and the list was wrong: the wait ends on review-level triage state, and only its coverage poll is pass-scoped. The paragraph is gone. The supersession paragraph under "Outcomes and exit codes" now carries the one fact a user needs from it: the run does not switch to the newer pass. Which reads take a pass id is visible in `ReviewSession` and `review`, so the README no longer walks through the call path. The Outcomes pointer now promises only what `src/contract/types.ts` holds: the outcome names, a behaviour comment beside each, and the exit codes. Stacked on #30. Merge that first. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs: point the supersession note at the pinned-pass flow
All checks were successful
commit-msg / commitlint (pull_request) Successful in 25s
Checks / quality-checks (pull_request) Successful in 49s
Review / Review (pull_request_target) Successful in 6m38s
9753c59b88
Replace the README's list of pass-bound operations with a pointer to the
pinnedPassId flow in review, and reword the outcome pointer to promise only
what OUTCOMES and OUTCOME_EXIT hold: names, a behaviour comment each, and
exit codes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Review 01M45PF4XK8TJCDZXNZK5TVH5K — head 47186d4b703f40791d3c89289f86a451e4bc0dc8

Review — j4k-oss/review-wrapper @ edda231e04

Scope: diff against base tree f0bfd434e1a7
Status: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection

Computed under:

{
  "abandonment": "abandonment-v1",
  "anchor_recipe": 1,
  "batch_policy": "batch-v1",
  "coverage": "coverage-v3",
  "dispatch_policy": "dispatch-v2",
  "grounder_version": 1,
  "grounding_read_rule": "grounding-read-v1",
  "promotion_policy": "promotion-v1",
  "report": "report-v4",
  "tally": "tally-v1",
  "triage_settle": "triage-settle-v2"
}

Triage stalled: sandbox infrastructure failed.

Findings (0)

No findings survived.

Reviewed:

  • general-bug (whole/default): no-claims
  • writing-quality (whole/default): claims-emitted
  • test-trimming (whole/default): no-claims
  • restated-sets (whole/default): no-claims
  • project-docs (whole/default): no-claims

Other claims

  • grounding-pending (0)
  • ungrounded (0)
  • rejected (0)
  • duplicate-of (0)
  • unadjudicated (3)
    • 01M45PQPXDGQZQE6AHB7H5K2AY medium — The action overview duplicates the runtime configuration
    • 01M45PRF79E5BJQ1KSVH390T2F low — The composition paragraph repeats the fork credential boundary
    • 01M45PT57VVB8ZZC2T6DXZPDQ0 medium — The supersession explanation leaves the findings scope ambiguous

Coverage

Coverage pass: 01M45PF4Z1H32G1SJWVY0XWJHR
Accounting: complete
Slot health: healthy

lens part arm unit status runs loss
general-bug whole default no-claims 1 no
writing-quality whole default claims-emitted 1 no
test-trimming whole default no-claims 1 no
restated-sets whole default no-claims 1 no
project-docs whole default no-claims 1 no
<!-- review:summary --> **Review** `01M45PF4XK8TJCDZXNZK5TVH5K` — head `47186d4b703f40791d3c89289f86a451e4bc0dc8` # Review — j4k-oss/review-wrapper @ edda231e0459 Scope: diff against base tree `f0bfd434e1a7` Status: dispatched — coverage complete (5/5 slots terminal) Facts: current review-wide projection Computed under: ```json { "abandonment": "abandonment-v1", "anchor_recipe": 1, "batch_policy": "batch-v1", "coverage": "coverage-v3", "dispatch_policy": "dispatch-v2", "grounder_version": 1, "grounding_read_rule": "grounding-read-v1", "promotion_policy": "promotion-v1", "report": "report-v4", "tally": "tally-v1", "triage_settle": "triage-settle-v2" } ``` Triage stalled: sandbox infrastructure failed. ## Findings (0) No findings survived. Reviewed: - general-bug (whole/default): no-claims - writing-quality (whole/default): claims-emitted - test-trimming (whole/default): no-claims - restated-sets (whole/default): no-claims - project-docs (whole/default): no-claims ## Other claims - grounding-pending (0) - ungrounded (0) - rejected (0) - duplicate-of (0) - unadjudicated (3) - `01M45PQPXDGQZQE6AHB7H5K2AY` medium — The action overview duplicates the runtime configuration - `01M45PRF79E5BJQ1KSVH390T2F` low — The composition paragraph repeats the fork credential boundary - `01M45PT57VVB8ZZC2T6DXZPDQ0` medium — The supersession explanation leaves the findings scope ambiguous ## Coverage Coverage pass: 01M45PF4Z1H32G1SJWVY0XWJHR Accounting: complete Slot health: healthy | lens | part | arm | unit status | runs | loss | | --- | --- | --- | --- | --- | --- | | general-bug | whole | default | no-claims | 1 | no | | writing-quality | whole | default | claims-emitted | 1 | no | | test-trimming | whole | default | no-claims | 1 | no | | restated-sets | whole | default | no-claims | 1 | no | | project-docs | whole | default | no-claims | 1 | no |
README.md Outdated
@ -75,1 +73,3 @@
service session fails, the log line's remedy comes from `FAILURE_REMEDIES` in
`OUTCOMES` in `src/contract/types.ts` names the outcomes, with a comment beside each
that summarizes its behaviour, and `OUTCOME_EXIT` in the same file maps each outcome to
its exit code. The code in `src/wrapper/` and `src/review/` implements that behaviour.

low — Outcome implementation pointer omits the code that writes PR results

The pointer sends a maintainer investigating a missing finding or a wrong PR comment to directories that do not contain the comment writers. The outcome comments in OUTCOMES promise an explicit fork-skip block and full reconciliation for settled reviews, but runWrapper delegates those effects to createSummaryReconciler, createInlineReconciler, and createDispositionProjector in src/reconcile/. The new sentence names only src/wrapper/ and src/review/ as implementing that behaviour. Point to src/wrapper/orchestrator.ts for outcome selection and src/reconcile/ for PR writes. This preserves the useful division between the decision and its visible effect, and follows the writing standard on authoritative lookups. I traced OUTCOMES, runWrapper, its reconcile call, and the three reconciler modules. Their Forge write calls establish where the visible effects are implemented; equivalent writers in the named directories would refute this omission.

lens writing-quality · arm default · tally 1 valid / 0 invalid / 0 uncertain
claim 01M44EXHKNX93Z0YG77V0NAFD9 of review 01M44ERGWEPRBBND3J1KWTH8B3

<!-- review:claim:01M44EXHKNX93Z0YG77V0NAFD9 --> **low** — Outcome implementation pointer omits the code that writes PR results > The pointer sends a maintainer investigating a missing finding or a wrong PR comment to directories that do not contain the comment writers. The outcome comments in `OUTCOMES` promise an explicit fork-skip block and full reconciliation for settled reviews, but `runWrapper` delegates those effects to `createSummaryReconciler`, `createInlineReconciler`, and `createDispositionProjector` in `src/reconcile/`. The new sentence names only `src/wrapper/` and `src/review/` as implementing that behaviour. Point to `src/wrapper/orchestrator.ts` for outcome selection and `src/reconcile/` for PR writes. This preserves the useful division between the decision and its visible effect, and follows the writing standard on authoritative lookups. I traced `OUTCOMES`, `runWrapper`, its `reconcile` call, and the three reconciler modules. Their Forge write calls establish where the visible effects are implemented; equivalent writers in the named directories would refute this omission. lens `writing-quality` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M44EXHKNX93Z0YG77V0NAFD9` of review `01M44ERGWEPRBBND3J1KWTH8B3`
Author
Owner

Fixed in 48edb16. I removed the sentence. OUTCOMES and OUTCOME_EXIT remain the pointer for what each outcome does, so the README no longer names a partial set of directories as the implementation.

<!-- gh-feedback:reply-to:123248 --> Fixed in 48edb16. I removed the sentence. `OUTCOMES` and `OUTCOME_EXIT` remain the pointer for what each outcome does, so the README no longer names a partial set of directories as the implementation.
jercik marked this conversation as resolved
docs: narrow the outcome and supersession pointers
Some checks failed
commit-msg / commitlint (pull_request) Successful in 17s
Checks / quality-checks (pull_request) Successful in 49s
Review / Review (pull_request_target) Has been cancelled
48edb16afa
Drop the claim that src/wrapper/ and src/review/ implement the outcome
behaviour, since the reconcilers that write PR results live elsewhere,
and say which service reads take no pass id instead of calling every
other read review-wide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Owner

Replying to comment #123246

This is review 01M44ERGWEPRBBND3J1KWTH8B3 of 9753c59. Its inline finding is fixed in 48edb16 and answered in its thread.

The unadjudicated claim 01M44EYK0QZ9K6K0T9FN93PX42 ("Supersession note overstates the scope of unpinned reads") is valid and also fixed in 48edb16. "Every other read is review-wide" covered the forge read that checks whether the head moved. The note now says that the service reads that take no pass id (the review, its findings and its claims) cover the whole review. getReview, getFindings and listClaims are those reads.

> Replying to comment #123246 This is review `01M44ERGWEPRBBND3J1KWTH8B3` of `9753c59`. Its inline finding is fixed in 48edb16 and answered in its thread. The unadjudicated claim `01M44EYK0QZ9K6K0T9FN93PX42` ("Supersession note overstates the scope of unpinned reads") is valid and also fixed in 48edb16. "Every other read is review-wide" covered the forge read that checks whether the head moved. The note now says that the service reads that take no pass id (the review, its findings and its claims) cover the whole review. `getReview`, `getFindings` and `listClaims` are those reads.
README.md Outdated
Lines 165-166
@ -164,1 +163,4 @@
dispatch becomes latest. Claims, findings, and triage settlement remain review-wide facts.
Supersession does not move the run to the newer pass. `review` in
`src/wrapper/orchestrator.ts` pins one pass (`pinnedPassId`) and hands it to the steps
that take a pass id. The service reads that take no pass id (the review, its findings and
its claims) cover the whole review.

medium — Supersession note copies the no-pass-id service read set

The supersession note hard-codes the wrapper's complete set of service reads without a pass ID. If a read is added or its arguments change, this prose can silently become stale and misstate which data stays review-wide during supersession.

ReviewSession in src/contract/types.ts defines the no-pass-ID reads as getReview, getFindings, and listClaims. The copy covers the review, findings, and claims, respectively; no member appears on only one side at this revision. The other read methods take a pass ID. Replace the parenthetical list with a pointer to ReviewSession in src/contract/types.ts, while retaining the statement that those reads cover the whole review.

I read the full README and traced ReviewSession through createReviewSessionWith in src/review/session.ts, review in src/wrapper/orchestrator.ts, waitForSettle, classifyOutcome, and walkClaims. This is a static comparison. The parenthetical is explanatory prose, and its defining interface is in this subject; it is not a consumed specification, dated record, table of contents, or incomplete example. Comparing the interface's read signatures with the parenthetical establishes or refutes the duplication and its current agreement.

lens restated-sets · arm default · tally 1 valid / 0 invalid / 0 uncertain
claim 01M44G1YXHNCHW8J2PJ0ZP2W47 of review 01M44FVDVZRWK3M0P3P51P4FHV

<!-- review:claim:01M44G1YXHNCHW8J2PJ0ZP2W47 --> **medium** — Supersession note copies the no-pass-id service read set > The supersession note hard-codes the wrapper's complete set of service reads without a pass ID. If a read is added or its arguments change, this prose can silently become stale and misstate which data stays review-wide during supersession. > > `ReviewSession` in `src/contract/types.ts` defines the no-pass-ID reads as `getReview`, `getFindings`, and `listClaims`. The copy covers the review, findings, and claims, respectively; no member appears on only one side at this revision. The other read methods take a pass ID. Replace the parenthetical list with a pointer to `ReviewSession` in `src/contract/types.ts`, while retaining the statement that those reads cover the whole review. > > I read the full README and traced `ReviewSession` through `createReviewSessionWith` in `src/review/session.ts`, `review` in `src/wrapper/orchestrator.ts`, `waitForSettle`, `classifyOutcome`, and `walkClaims`. This is a static comparison. The parenthetical is explanatory prose, and its defining interface is in this subject; it is not a consumed specification, dated record, table of contents, or incomplete example. Comparing the interface's read signatures with the parenthetical establishes or refutes the duplication and its current agreement. lens `restated-sets` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M44G1YXHNCHW8J2PJ0ZP2W47` of review `01M44FVDVZRWK3M0P3P51P4FHV`

low — Supersession note duplicates the wrapper call path in README

The README now carries a second account of the wrapper's internal pass-selection call path. A later change to the orchestrator or session interface can leave this account stale for readers who are directed to read the README first.

The diff changes the supersession paragraph to say that review pins pinnedPassId, passes it to steps taking a pass id, and leaves review, findings, and claims reads review-wide. The earlier paragraph already stated the user-visible supersession behavior. The project-docs guideline's “Consolidating stray documentation” rule says to delete prose that restates what code does. The README exception covers human onboarding, installation, and use; this implementation inventory serves none of those. AGENTS.md directs readers to README but records no convention assigning internal call paths to it.

Remove the call-path explanation from README.md. A short user-facing supersession consequence can remain. The implementation in src/wrapper/orchestrator.ts and src/wrapper/wait.ts is the existing home, so no prose needs moving.

I read the entire README and diff, searched for CONTEXT and ADR files (none exist), checked AGENTS.md for documentation rules, and traced pinPass, review, reconcile, waitForSettle, and the ReviewSession interface. The implementation says const pinnedPassId = await pinPass(deps, session, reviewId);, then passes that value to deps.wait, getReport, and classifyOutcome; getReview, getFindings, and listClaims have no pass argument in ReviewSession. I did not verify the external service's read semantics. An explicit repository rule placing this internal walkthrough in README would refute this placement finding; none appears in the inspected tree.

lens project-docs · arm default · tally 1 valid / 0 invalid / 0 uncertain
claim 01M44G49XEAQ08P5GXRJDR26Q1 of review 01M44FVDVZRWK3M0P3P51P4FHV

<!-- review:claim:01M44G49XEAQ08P5GXRJDR26Q1 --> **low** — Supersession note duplicates the wrapper call path in README > The README now carries a second account of the wrapper's internal pass-selection call path. A later change to the orchestrator or session interface can leave this account stale for readers who are directed to read the README first. > > The diff changes the supersession paragraph to say that `review` pins `pinnedPassId`, passes it to steps taking a pass id, and leaves review, findings, and claims reads review-wide. The earlier paragraph already stated the user-visible supersession behavior. The project-docs guideline's “Consolidating stray documentation” rule says to delete prose that restates what code does. The README exception covers human onboarding, installation, and use; this implementation inventory serves none of those. AGENTS.md directs readers to README but records no convention assigning internal call paths to it. > > Remove the call-path explanation from README.md. A short user-facing supersession consequence can remain. The implementation in `src/wrapper/orchestrator.ts` and `src/wrapper/wait.ts` is the existing home, so no prose needs moving. > > I read the entire README and diff, searched for CONTEXT and ADR files (none exist), checked AGENTS.md for documentation rules, and traced `pinPass`, `review`, `reconcile`, `waitForSettle`, and the `ReviewSession` interface. The implementation says `const pinnedPassId = await pinPass(deps, session, reviewId);`, then passes that value to `deps.wait`, `getReport`, and `classifyOutcome`; `getReview`, `getFindings`, and `listClaims` have no pass argument in `ReviewSession`. I did not verify the external service's read semantics. An explicit repository rule placing this internal walkthrough in README would refute this placement finding; none appears in the inspected tree. lens `project-docs` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M44G49XEAQ08P5GXRJDR26Q1` of review `01M44FVDVZRWK3M0P3P51P4FHV`
Author
Owner

Fixed in 25c3d9c. The parenthetical list of no-pass-id reads is gone with the rest of that Notes paragraph; ReviewSession remains the only place that says which reads take a pass id.

<!-- gh-feedback:reply-to:123556 --> Fixed in 25c3d9c. The parenthetical list of no-pass-id reads is gone with the rest of that Notes paragraph; `ReviewSession` remains the only place that says which reads take a pass id.
Author
Owner

Fixed in 25c3d9c. The call-path walkthrough is gone. The supersession paragraph under "Outcomes and exit codes" keeps the user-facing consequence: the run does not switch to the newer pass.

<!-- gh-feedback:reply-to:123557 --> Fixed in 25c3d9c. The call-path walkthrough is gone. The supersession paragraph under "Outcomes and exit codes" keeps the user-facing consequence: the run does not switch to the newer pass.
jercik marked this conversation as resolved
jercik changed title from docs: point the supersession note at the pinned-pass flow to docs: drop the pass-bound operation list from the README 2026-10-04 22:30:49 +00:00
docs: drop the supersession call path from the README
Some checks failed
commit-msg / commitlint (pull_request) Successful in 18s
Checks / quality-checks (pull_request) Successful in 37s
Review / Review (pull_request_target) Has been cancelled
25c3d9c852
The Notes paragraph copied which service reads take no pass id and
walked through the orchestrator's pass pinning, both of which the code
already states. Keep only the user-facing fact, that the run does not
switch to the newer pass, beside the supersession paragraph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Owner

Replying to comment #123246

This is review 01M44FVDVZRWK3M0P3P51P4FHV of 48edb16. Its two inline findings are fixed in 25c3d9c and answered in their threads; 01M44G31Q7QMYAFPWAD1QFJ9QH is the service's duplicate of the first. The other four findings are summary-only and about README text this PR doesn't change. Each is valid, and the PR that owns that text already handles it:

  • 01M44G3HTGPNGMJMBT8SBYN3KB ("Required environment variable list duplicates the code's required set"): #32 replaces the list with a pointer to forgeCredentials, readWrapperInputs and src/main.ts.
  • 01M44G3YQK9CPVGRKQNNS9YPFH ("Composition paragraph copies the reconciler count and names"): #32 points at WrapperDeps instead.
  • 01M44G54JASB7FK86VJACP57ME ("Recovery table duplicates the failure messages and remedies in the job log") and 01M44G608G6EEP9MJFK3BQDMMM ("Action input table restates action.yml"): #34 replaces both tables, the recovery table with the remedy printed on the failure log line and the input table with a pointer to action.yml.
> Replying to comment #123246 This is review `01M44FVDVZRWK3M0P3P51P4FHV` of `48edb16`. Its two inline findings are fixed in 25c3d9c and answered in their threads; `01M44G31Q7QMYAFPWAD1QFJ9QH` is the service's duplicate of the first. The other four findings are summary-only and about README text this PR doesn't change. Each is valid, and the PR that owns that text already handles it: - `01M44G3HTGPNGMJMBT8SBYN3KB` ("Required environment variable list duplicates the code's required set"): https://code.j4k.dev/j4k-oss/review-wrapper/pulls/32 replaces the list with a pointer to `forgeCredentials`, `readWrapperInputs` and `src/main.ts`. - `01M44G3YQK9CPVGRKQNNS9YPFH` ("Composition paragraph copies the reconciler count and names"): https://code.j4k.dev/j4k-oss/review-wrapper/pulls/32 points at `WrapperDeps` instead. - `01M44G54JASB7FK86VJACP57ME` ("Recovery table duplicates the failure messages and remedies in the job log") and `01M44G608G6EEP9MJFK3BQDMMM` ("Action input table restates action.yml"): https://code.j4k.dev/j4k-oss/review-wrapper/pulls/34 replaces both tables, the recovery table with the remedy printed on the failure log line and the input table with a pointer to `action.yml`.
README.md Outdated
Lines 78-80
@ -77,4 +78,5 @@
comes from `formatStuckRemedy` and `formatExecutionRecovery` in `src/wrapper/remedies.ts`.
Supersession, a newer dispatch pass becoming latest during the wait, is a flag on
`WaitResult`, not an outcome. It never changes the exit code.
`WaitResult`, not an outcome. It never changes the exit code, and the run does not switch
to the newer pass.

medium — Supersession wording implies all subsequent reads stay on the pinned pass

An operator diagnosing a superseded run could treat its settlement, findings, and report as one pass-specific snapshot. They are not: only pass-scoped requests keep the selected dispatch pass, while the wait and reconciliation also consume review-wide state. The broad statement that the run does not switch to the newer pass obscures that distinction.

Replace the final clause with: “The selected dispatch pass remains pinned for coverage and report requests; settlement and reconciliation still read review-wide state.” This keeps the intended rule that supersession does not change the exit code, while making the mixed scopes explicit.

I traced waitForSettle and readSettle in src/wrapper/wait.ts, which request coverage with pinnedPassId but read review.triage_settle; classifyOutcome requests findings by review ID; and reconcile in src/wrapper/orchestrator.ts requests the report with pinnedPassId but findings and claims by review ID. The orchestrator supersession test confirms the report request uses the pinned pass. This is a static trace of the wrapper; the service internal storage and the exact contents of a superseded report are unavailable here. The claim would be refuted if those review-scoped reads were guaranteed to be isolated to the pinned pass despite their interfaces and the readSettle comment saying triage settlement is review-level.

lens writing-quality · arm default · tally 1 valid / 0 invalid / 0 uncertain
claim 01M44GSJ5ZH4XAFCBMFQ26DDBB of review 01M44GNBZGWES4QQP6295GRM6H

<!-- review:claim:01M44GSJ5ZH4XAFCBMFQ26DDBB --> **medium** — Supersession wording implies all subsequent reads stay on the pinned pass > An operator diagnosing a superseded run could treat its settlement, findings, and report as one pass-specific snapshot. They are not: only pass-scoped requests keep the selected dispatch pass, while the wait and reconciliation also consume review-wide state. The broad statement that the run does not switch to the newer pass obscures that distinction. > > Replace the final clause with: “The selected dispatch pass remains pinned for coverage and report requests; settlement and reconciliation still read review-wide state.” This keeps the intended rule that supersession does not change the exit code, while making the mixed scopes explicit. > > I traced waitForSettle and readSettle in src/wrapper/wait.ts, which request coverage with pinnedPassId but read review.triage_settle; classifyOutcome requests findings by review ID; and reconcile in src/wrapper/orchestrator.ts requests the report with pinnedPassId but findings and claims by review ID. The orchestrator supersession test confirms the report request uses the pinned pass. This is a static trace of the wrapper; the service internal storage and the exact contents of a superseded report are unavailable here. The claim would be refuted if those review-scoped reads were guaranteed to be isolated to the pinned pass despite their interfaces and the readSettle comment saying triage settlement is review-level. lens `writing-quality` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M44GSJ5ZH4XAFCBMFQ26DDBB` of review `01M44GNBZGWES4QQP6295GRM6H`
jercik marked this conversation as resolved
Author
Owner

Replying to review comment #123765

Valid. The clause is true, since the run never changes its pinned pass, but it doesn't say that only the requests taking a pass id are pinned. This PR is in its third review round and the wording doesn't defeat its pointer change, so #38, stacked on this PR, rewrites the sentence: requests that take a pass id keep the selected pass, the other reads return review-wide state, and ReviewSession in src/contract/types.ts shows which requests take one.

> Replying to review comment #123765 Valid. The clause is true, since the run never changes its pinned pass, but it doesn't say that only the requests taking a pass id are pinned. This PR is in its third review round and the wording doesn't defeat its pointer change, so https://code.j4k.dev/j4k-oss/review-wrapper/pulls/38, stacked on this PR, rewrites the sentence: requests that take a pass id keep the selected pass, the other reads return review-wide state, and `ReviewSession` in `src/contract/types.ts` shows which requests take one.
jercik changed target branch from docs/outcome-set-pointers to main 2026-10-05 09:31:32 +00:00
jercik force-pushed docs/readme-pass-pointers from 25c3d9c852
Some checks failed
commit-msg / commitlint (pull_request) Successful in 18s
Checks / quality-checks (pull_request) Successful in 37s
Review / Review (pull_request_target) Has been cancelled
to 47186d4b70
Some checks failed
commit-msg / commitlint (pull_request) Successful in 26s
Checks / quality-checks (pull_request) Successful in 46s
Review / Review (pull_request_target) Failing after 7m56s
2026-10-05 09:31:36 +00:00
Compare
jercik merged commit 4830406d7b into main 2026-10-05 09:32:37 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
j4k-oss/review-wrapper!36
No description provided.