fix(api): guard moderated skill files and tags#2287
Conversation
|
@vyctorbrzezowski is attempting to deploy a commit to the Amantus Machina Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs changes before merge. Latest ClawSweeper review: 2026-05-23 05:43 UTC / May 23, 2026, 1:43 AM ET. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. Source inspection on current main shows public artifact readers and the newer export route can dereference stored version ids without the PR's same-skill guard; the PR body also includes live Convex proof for the older affected endpoint paths. PR rating Rank-up moves:
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. Real behavior proof Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge Security Review findings
Review detailsBest possible solution: Rebase onto current main, apply the same public-version guard semantics to the export route, preserve the legacy markerless digest compatibility behavior, and land after maintainers accept the fail-closed API outcomes. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection on current main shows public artifact readers and the newer export route can dereference stored version ids without the PR's same-skill guard; the PR body also includes live Convex proof for the older affected endpoint paths. Is this the best way to solve the issue? No, not yet. The shared helper and digest marker approach is a maintainable fix, but it is incomplete against current main until the export route is guarded and covered by regression tests. Label justifications:
Full review comments:
Overall correctness: patch is incorrect Security concerns:
Acceptance criteria:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 0907fae0d991. |
6989c43 to
5ffc166
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
5ffc166 to
dcd84ef
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
ClawSweeper PR egg 🔥 Warming up: real-behavior proof passed; findings, security review, or rank-up moves are still in progress. Hatch commandComment Hatchability rules:
What is this egg doing here?
|
e5ac58f to
3ff605d
Compare
Summary
Makes the public skill APIs consistently refuse files, versions, and tags that should not be public. Hidden, deleted, cross-skill, or stale data now returns a blocked/not found response instead of leaking old files.
What changed
getBySlugsuppresseslatestVersionwhen the latest row is soft-deleted or belongs to another skill.resolveVersionByHashsuppresses stale, cross-skill, or soft-deletedlatestVersionrows instead of serializing them.Public behavior
Invalid latest-version state becomes
null/absent in public detail and resolver responses. It is never returned as a serialized stale version object.Moderated file and package compatibility readers fail closed. Cross-skill tags and soft-deleted versions are rejected instead of being treated as public artifacts.
Legacy digest rows without the new owner marker keep their latest version for compatibility; rows with an explicit cross-skill owner marker are suppressed.
Behavior proof
Live Convex runtime proof for the endpoint paths ClawSweeper requested on rebased head
3ff605dd:After that proof, I removed the temporary
convex/proof2287.tshelper and pushed the deployment again without it:Live Convex runtime proof for the compatibility-sensitive digest path from the earlier head:
This creates one legacy markerless digest row and one explicit cross-skill/stale digest row. The legacy row still serializes
latestVersion; the explicit stale row returnsnull, which addresses the compatibility concern without reopening the leak.Focused regression suite on rebased head
3ff605dd:Validation