feat: add signed marketplace feed config#98316
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 8, 2026, 11:27 PM ET / 03:27 UTC. Summary PR surface: Source +131, Tests +139. Total +270 across 7 files. Reproducibility: not applicable. as a feature/config PR. The staged behavior is source-verifiable, and the PR body/comments provide terminal proof for signed config validation and fail-closed selected-profile behavior. Review metrics: 1 noteworthy metric.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land this only as an accepted trust-stack slice, then continue with signed refresh enforcement in #98338 so signed profiles become usable rather than permanently fail-closed. Do we have a high-confidence way to reproduce the issue? Not applicable as a feature/config PR. The staged behavior is source-verifiable, and the PR body/comments provide terminal proof for signed config validation and fail-closed selected-profile behavior. Is this the best way to solve the issue? Yes as an acceptable staged stack slice after maintainer approval, but not as the complete signed-feed solution. The complete end state still needs signed refresh enforcement in #98338 and later trust-state visibility. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1252a3da59a8. Label changesLabel justifications:
Evidence reviewedPR surface: Source +131, Tests +139. Total +270 across 7 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (13 earlier review cycles; latest 8 shown)
|
a419080 to
a54b57d
Compare
a54b57d to
321dff3
Compare
|
@clawsweeper re-review Applied the trust-anchor hardening for this config slice: signed feed key IDs must be unique, normalized Ed25519 public keys must be unique, and focused schema/catalog validation has been rerun. PR body is updated with the new head and validation. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
321dff3 to
16cbe67
Compare
|
@clawsweeper re-review Final head is 16cbe67. In addition to duplicate key-id/material rejection, this now strictly rejects malformed raw base64url Ed25519 public keys before decoding. Focused schema/catalog validation and Codex review are clean; PR body updated. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Added source-harness proof at head 16cbe67 showing valid signed config acceptance, malformed raw-key rejection, duplicate trust-anchor rejection, and selected signed-profile no-fetch fail-closed behavior. |
|
@clawsweeper re-review Proof and implementation have been refreshed since the current stale verdict: head |
Patrick-Erichsen
left a comment
There was a problem hiding this comment.
Approved at the current live head after the scoped CI repairs and full exact-head validation passed. The staged signed-feed configuration decision is explicitly accepted. This approval does not merge the PR.
756be49 to
187a48f
Compare
|
@clawsweeper re-review Rebased onto #98299 head c6525aa and refreshed current-head proof at 187a48f. PR body now shows signed config acceptance, malformed raw-key rejection, duplicate trust-anchor rejection, and selected signed-profile rejection before fetch. Local format and git diff checks passed. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
187a48f to
09734e8
Compare
|
@clawsweeper re-review Rebased onto #98299 head Validation passed: focused marketplace schema/catalog/envelope Vitest (3 files / 78 tests), targeted |
|
🦞🧹 I asked ClawSweeper to review this item again. |
09734e8 to
f4eca07
Compare
|
@clawsweeper re-review Restacked #98316 onto Scope is back to the source-profile config slice only: seven config/catalog files, no verifier-foundation commits duplicated from #98299. Fresh local proof on this head:
Local |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Merged via squash.
|
* feat: add signed marketplace feed config * Clarify marketplace feed trust keys * Preserve marketplace feed signing key type alias * Fail closed for unwired signed marketplace feeds * refactor: inline marketplace trust key config --------- Co-authored-by: Gio Della-Libera <[email protected]> Co-authored-by: Patrick Erichsen <[email protected]>
Summary
Stack
feeds-trust-envelope-verifier).mainas a draft because the dependency branch is on the fork; review should focus on the top commit09734e867buntil feat: add hosted feed envelope verifier #98299 lands. This head is rebased onto feat: add hosted feed envelope verifier #98299 head297003b252c, including the DSSE decoded-payload-byte verifier fix.Scope boundaries
This is still a config-contract slice. It does not verify signed feed envelopes during marketplace refresh yet, does not persist snapshot trust state, does not add CLI/operator trust output, and does not change install eligibility. Signed profiles are accepted as local trust config but return zero marketplace entries until the later enforcement slice consumes signed envelopes.
Validation