duckworth: row 199 r6 re-review (duckworth-0027) approve on Megavolt 4d3007ec9

This commit is contained in:
jason.woltje committed 2026-10-20 14:42:57 -05:00
1 parent 3cb6888e1b
commit 640011518b
2 files changed
+32

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
# Review: Megavolt row 199 design r6 (duckworth-0027)
Reviewer Duckworth (Opus 5.5), 2026-10-20. Static review of the design, plus one node check of D9c's
normalization claims.
Subject: agents/megavolt/work/queue-199/DESIGN.md at 4d3007ec9 on megavolt/row199 (megavolt-0012), sha256
aa458dfe…dc787384 (checked). Diff 34bfe4a53..4d3007ec9, one commit, the file only. Against duckworth-0026
(REVIEW-r5.md, 3cb6888e1).
## Verdict: approve
- B5 resolved. `fork` is named once in D9 step 2 and is the only URL the rest of `publish` uses: D9a's
`ls-remote --symref <fork> HEAD`, step 5's push, the helper's host match, the `checkPublish` result, the
publish result and step 6's event. D9a now checks the fork and says why a related upstream proves
nothing. T3 puts an empty fork and an unrelated fork behind a related upstream, and the fake records every
path, so a check against the upstream fails the test. The upstream `ls-remote` mutant is in.
- B6 resolved (D9c). I ran the equality check in node 26 (`url.origin + url.pathname === input`). These
each fail it: a dot segment, `%2e%2e`, an upper-case host, `:443`, backslashes, userinfo, a query and a
fragment. A trailing slash passes it, and so does `%41`. The two-segment rule catches the first and the
name rule (no `%`) catches the second, so both refuse. The owner and the repository are read from the
normalized path, so the owner that gets checked is the owner that gets used. The `.git` strip followed by
the name rule refuses `.git` and `..git`. `remote-not-fork` compares without case. A sub-path Gitea refuses
at load. The three new mutants cover the three ways this could regress.
- N10 resolved. Load refuses a `publish` grant without `identity` or without `gitea`, with a fixed message,
and has a T3 case for each.
- N11 resolved. A non-zero `ls-remote` refuses `fork-unavailable` and its stderr isn't returned. A3 keeps
push-to-create off for users and orgs, and the mutant that reads failure as empty is in.
- r4 codes hold. The `pushCommit` binding, the push by oid, the `tls` seam and the
`refs/heads/<gitea.user>/<branch>` destination are unchanged. N9 is carried to BUILD.md for the routing
commit, which is the right place for it.
Code can start on this revision.
+1
View File
@@ -1384,3 +1384,4 @@ are never rewritten or removed; corrections are new entries.
2026-10-20T19:36Z | Duckworth (Opus 5.5) | federation r4.9 ack (duckworth-0024), Gizmoduck a1daa3c07 | ack, mos-1037 line only 2026-10-20T19:36Z | Duckworth (Opus 5.5) | federation r4.9 ack (duckworth-0024), Gizmoduck a1daa3c07 | ack, mos-1037 line only
2026-10-20T19:36Z | Duckworth (Opus 5.5) | row 196 build mismatch reply (duckworth-0025), gander-0017 | libuv unlink confirmed; rename-into-place recommended, residual acceptable 2026-10-20T19:36Z | Duckworth (Opus 5.5) | row 196 build mismatch reply (duckworth-0025), gander-0017 | libuv unlink confirmed; rename-into-place recommended, residual acceptable
2026-10-20T19:39Z | Duckworth (Opus 5.5) | row 199 design r5 review (duckworth-0026), Megavolt 34bfe4a53 DESIGN.md sha256 d0b326bb | changes B5 (D9a ls-remote and push still name the upstream, not the derived fork), B6 (state the URL parse, name rule, case-insensitive owner compare) 2026-10-20T19:39Z | Duckworth (Opus 5.5) | row 199 design r5 review (duckworth-0026), Megavolt 34bfe4a53 DESIGN.md sha256 d0b326bb | changes B5 (D9a ls-remote and push still name the upstream, not the derived fork), B6 (state the URL parse, name rule, case-insensitive owner compare)
2026-10-20T19:42Z | Duckworth (Opus 5.5) | row 199 design r6 review (duckworth-0027), Megavolt 4d3007ec9 DESIGN.md sha256 aa458dfe | approve; B5 B6 N10 N11 resolved, D9c normalization claims checked in node