docs: say where the token goes when the origin pin is off #41
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/origin-pin-scope"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #37, from review
01M44HQNME6B9VAE2MGYCZKPXJ(summary-only finding01M44J54BBK4B8V4BDJEWYP7XH).The
expected-service-origindescription inaction.ymlsaid that with the pin off "only thehttps:scheme is enforced". That is wrong:reviewCredentials()always callsserviceOrigin(), which also rejects an unparseable URL and a path ending in/v1, pin or no pin.src/credentials.test.tscovers the/v1rejection with the pin unset.The description now says what an unset pin gives up: the capability token is sent to whatever https origin
REVIEW_SERVICE_URLnames. It doesn't list the other checksserviceOrigin()makes.It targets
main, because the sentence is older than #37. #34 removes the README's copy of this description.🤖 Generated with Claude Code
Review
01M457CXZ067FRC2MQ7MR7PZTQ— heada68a0d7020f6db2e17ce3772a32e8e38c040a46fReview — j4k-oss/review-wrapper @
a0eb315dc5Scope: diff against base tree
e69943819640Status: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection
Computed under:
Findings (1)
low — README's
expected-service-originrow keeps the wording action.yml just replaced and misstates what is enforced when the pin is off01M457F404F76GCPPQ924RPMQXREADME.md(snippet)01M457GFJATTEH0DNYPW5AYHQJ· valid: The grounded README excerpt (exact match) says that with the pin off 'only the https: scheme is enforced.' The reviewer traces serviceOrigin() in src/credentials.ts as rejecting both a non-https protocol and a path matching //v1/?$/ whether or not the pin is set. That trace is specific and internally consistent. A prior claim on this same anchor reported a direct reviewCredentials() call with an empty pin and an https .../v1 URL that threw 'must not end with the /v1 API prefix', which supports it. So the README misstates what is enforced. The other claim in this batch quotes the new action.yml ending ('the capability token is sent to whatever https origin REVIEW_SERVICE_URL names'), which confirms that this diff, which touches only action.yml, left the README row stale. Nothing in the batch refutes this. The impact is misleading documentation, and a /v1 URL fails loudly at credential loading, so low severity fits.01M457F7VH58P8H3HQESMP9P1G(writing-quality)Other claims
01M457F7VH58P8H3HQESMP9P1Gmedium — The newexpected-service-originconsequence is written only inaction.yml; the README's copy of the same description still gives the old wording →01M457F404F76GCPPQ924RPMQXCoverage
Coverage pass: 01M457CY0RG0DWN4K9YXX5C18X
Accounting: complete
Slot health: healthy
This is review
01M44K8JC1NST1842HWPYZG6DRof847c48b. Neither pass has delivered all five slots: run 64348 lost two to model capacity, and dispatch run 64459 lost writing-quality, test-trimming and project-docs to sandbox infrastructure failures. I'll re-ask once the sandbox recovers.The one finding so far,
01M44KDQDDN3TNYPPW9MY309TB(the README says an unset origin pin leaves only thehttps:check), is summary-only and valid. This PR corrects the description inaction.yml; the README row is a copy of it. #34 replaces that README table with a pointer toinputsinaction.yml, so the copy goes away. The duplicate claim01M44M5SHRX77G73JD4EFS6HD8is covered by this finding.@ -9,3 +9,4 @@Origin REVIEW_SERVICE_URL must match exactly, e.g. https://review.j4k.dev.Left unset — or set to the empty string an undefined vars expressionexpands to — the pin is off and only the https scheme is enforced.expands to — the pin is off: the origin is not compared, andREVIEW_SERVICE_URL is still validated.medium —
expected-service-origindescription replaces the security consequence of leaving the pin off with an unspecified "is still validated"lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44PKWXVGGJX4FMQ5FKXPKX9of review01M44K8JC1NST1842HWPYZG6DRFixed in
4b4bcbc. The description now ends "the pin is off, and the capability token is sent to whatever origin REVIEW_SERVICE_URL names", as proposed. It makes no claim about which checks remain, so it can't drift fromserviceOrigin. I retitled the PR to match.docs: say an unset origin pin still validates the service URLto docs: say where the token goes when the origin pin is offDispatch run 64849 completed review
01M44K8JC1NST1842HWPYZG6DRof847c48bwith all five slots. The finding onaction.ymlhas its own thread and is fixed in4b4bcbc.01M44KDQDDN3TNYPPW9MY309TB(the README row still says only thehttps:scheme is enforced) stands as answered above: #34 replaces that README table with a pointer toinputsinaction.yml. The four duplicate claims are covered by it.@ -9,3 +9,4 @@Origin REVIEW_SERVICE_URL must match exactly, e.g. https://review.j4k.dev.Left unset — or set to the empty string an undefined vars expressionexpands to — the pin is off and only the https scheme is enforced.expands to — the pin is off, and the capability token is sent towhatever origin REVIEW_SERVICE_URL names.low —
expected-service-origindescription says the token goes to whatever origin REVIEW_SERVICE_URL names, but non-https origins are rejected firstlens
general-bug· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44Q4MW5M5F02YR6MA37DYH7of review01M44Q3C0VKVB6T4BS7N5R5133low —
expected-service-origindescription says the token goes to whatever origin REVIEW_SERVICE_URL names, but non-https origins are rejected firstlens
general-bug· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44Q4MW5M5F02YR6MA37DYH7of review01M44Q3C0VKVB6T4BS7N5R5133Fixed in
a68a0d7. The description now ends "the capability token is sent to whatever https origin REVIEW_SERVICE_URL names". With the pin off,serviceOrigin()still rejects a URL that is nothttps:before the token is read, so "whatever origin" promised the token to anhttp:URL it never reaches. The PR body says the same.superseded by review
01M457CXZ067FRC2MQ7MR7PZTQfor heada68a0d7020f6db2e17ce3772a32e8e38c040a46fFixed in
a68a0d7. This is a second copy of the claim in thread #125567, posted by the same review at the same moment; the answer there covers it.@ -9,3 +9,4 @@Origin REVIEW_SERVICE_URL must match exactly, e.g. https://review.j4k.dev.Left unset — or set to the empty string an undefined vars expressionexpands to — the pin is off and only the https scheme is enforced.expands to — the pin is off, and the capability token is sent towhatever origin REVIEW_SERVICE_URL names.low —
expected-service-origindescription says the token goes to whatever origin REVIEW_SERVICE_URL names, but non-https origins are rejected firstlens
general-bug· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44Q4MW5M5F02YR6MA37DYH7of review01M44Q3C0VKVB6T4BS7N5R5133low —
expected-service-origindescription says the token goes to whatever origin REVIEW_SERVICE_URL names, but non-https origins are rejected firstlens
general-bug· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44Q4MW5M5F02YR6MA37DYH7of review01M44Q3C0VKVB6T4BS7N5R5133Fixed in
a68a0d7. The description now ends "the capability token is sent to whatever https origin REVIEW_SERVICE_URL names". With the pin off,serviceOrigin()still rejects a URL that is nothttps:before the token is read, so "whatever origin" promised the token to anhttp:URL it never reaches. The PR body says the same.superseded by review
01M457CXZ067FRC2MQ7MR7PZTQfor heada68a0d7020f6db2e17ce3772a32e8e38c040a46fFixed in
a68a0d7. This is a second copy of the claim in thread #125567, posted by the same review at the same moment; the answer there covers it.Round 2, review
01M44Q3C0VKVB6T4BS7N5R5133of4b4bcbc; run 64911 delivered all five slots. Its finding01M44Q4MW5M5F02YR6MA37DYH7is fixed ina68a0d7and answered in thread #125567. The duplicate01M44Q58J73J0RFY40J9KQGC6Wis covered by that fix.Round 3, review
01M457CXZ067FRC2MQ7MR7PZTQofa68a0d7, all five slots delivered. Its one finding,01M457F404F76GCPPQ924RPMQX(the README'sexpected-service-originrow still says only thehttps:scheme is enforced), is summary-only and valid, and it is the claim round 1 raised as01M44KDQDDN3TNYPPW9MY309TB. #34 still replaces that README table with a pointer toinputsinaction.yml, so the stale copy goes away there. The duplicate01M457F7VH58P8H3HQESMP9P1Gis covered by it.Thread #125568 was a second copy of the round-2 claim answered in #125567; it is answered the same way.