You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parses RFC 9116 security.txt (incl. multiple CSAF: fields), follows CSAF provider metadata to VEX documents as DECLARED requests, records /.well-known/tea without querying it
Extracts GitHub/GitLab repo links from the page (ignoring badge/share links)
Reviewer-supplied SBOM/VEX by URL or upload is accepted on the CLI and in ScanRequest, rated High with evidence kind SBOM_SUPPLIED, and the web page (web/) has an upload field and a URL field for it (Q3)
Verify on dev: scan one real site that publishes a CSAF provider-metadata.json (pick from the CSAF aggregator list) → the checked list shows security.txt and provider metadata as FOUND, and at least one VEX document parsed
Phase: 2 — complete it (after the flow works) Blocked by:#6 Sprint:#17 Estimate: build 3h · CI+review 4h → ships 2026-10-30 (P50) / 2026-11-03 (P80), else W45 (uncalibrated: first sprint) Waiting on: none (Q3 decided) Runtime:runtime:claude (default)
Passive-only rule applies: only requests a browser loading the page would send, plus the design's discovery paths.
Decision (Q3 on #17, default accepted by @hsinatfootprintai, 2026-10-22): this issue adds the reviewer-supplied SBOM/VEX input everywhere: CLI flags, ScanRequest.sbom_url/sbom_document, and an upload + URL field on the web page. Acceptance criterion 3 is updated. If #9 hasn't merged when this starts, build against its page component and rebase. Issue is ready.
This issue was not handed to an agent because the repository's default user has no box that accepts issue runs with a signed-in agent right now. Nothing was changed. Next: open a workspace session on a box that accepts issue runs, then re-add the trigger label.
This issue was not handed to an agent because the repository's default user has no box that accepts issue runs with a signed-in agent right now. Nothing was changed. Next: open a workspace session on a box that accepts issue runs, then re-add the trigger label.
The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.
Next: reply @containarium status to check on it, or @containarium stop to cancel it.
It was produced on a member's box and has not been built or tested by the platform. It is a pull request for a person to review; nothing is merged automatically.
The agent's decisions, and where it departed from the issue or the design, quoted:
1. Tests, go vet and staticcheck were NOT run (go/npm not executable here) and no commit was made
(git commit needed approval); changes are staged on agent/issue-13. Expect CI to be the first
compile and test run.
2. Added a minimal internal/sbom (CycloneDX, SPDX, OpenVEX, CSAF VEX component extraction) because
S4 is not in the repo yet; it reads components only, so VEX statements are not applied to
vulnerabilities (S4 scope).
3. CSAF VEX documents are found only via ROLIE feeds named in provider-metadata.json (max 3 feeds,
10 documents); changes.csv and directory listings are not fetched, since the design forbids
synthesized paths.
4. The reviewer-supplied sbom_url is fetched as a DECLARED request, so it appears in checked and
counts against the request budget and SSRF guard; the design has no separate reason for it.
Uploads are capped at 2 MiB.
5. Discovery runs after the page's scripts so a small budget still goes to what a browser loads;
with a tiny budget the discovery probes show as REFUSED. Existing scanner tests were updated for
the four new probes in checked.
6. Repo links are extracted into discover.Result.RepoLinks but not emitted in the report: ScanReport
has no field for them and I did not change the proto (no buf available). S6 can consume them.
7. web/ has no page yet (only generated code), so I added a framework-free form module (scanForm.ts)
with the URL and upload fields plus a request builder, not a Next.js page. It still needs
mounting in the app.
8. Name-keyed merging (components without a purl) keeps the High-confidence version without
recording a Conflict; the conflict logic is outside this slice.
Closing:#30 should not use a closing keyword, because the PR does not meet every item. A person closes this issue when #30 merges, once #14 and #32 carry the deferred items (they do). Issues #12, #14, #15 and #32 list this issue on their Blocked by: line, and start waits for it to be closed, so it has to be closed by hand to release them. Merged agent PRs do not close their issues unless the PR carries a closing keyword.
Activity
hsinatfootprintai commentedon Oct 22, 2026
Decision (Q3 on #17, default accepted by @hsinatfootprintai, 2026-10-22): this issue adds the reviewer-supplied SBOM/VEX input everywhere: CLI flags,
ScanRequest.sbom_url/sbom_document, and an upload + URL field on the web page. Acceptance criterion 3 is updated. If #9 hasn't merged when this starts, build against its page component and rebase. Issue is ready.containarium-ci commentedon Oct 25, 2026
This issue was not handed to an agent because the repository's default user has no box that accepts issue runs with a signed-in agent right now. Nothing was changed. Next: open a workspace session on a box that accepts issue runs, then re-add the trigger label.
— run
5e737080containarium-ci commentedon Oct 26, 2026
This issue was not handed to an agent because the repository's default user has no box that accepts issue runs with a signed-in agent right now. Nothing was changed. Next: open a workspace session on a box that accepts issue runs, then re-add the trigger label.
— run
a13fb610containarium-ci commentedon Oct 26, 2026
The agent on the box this repository sends issues to has picked this issue up. It works on its own branch and cannot push; when it finishes, the platform checks what it produced and, if that passes, opens it as a pull request for review.
Next: reply
@containarium statusto check on it, or@containarium stopto cancel it.— run
365bb550Agent proposal: [S5] Discovery: security.txt, CSAF provider metadata,…
containarium-ci commentedon Oct 26, 2026
The agent proposed a change for this issue: #30
It was produced on a member's box and has not been built or tested by the platform. It is a pull request for a person to review; nothing is merged automatically.
The agent's decisions, and where it departed from the issue or the design, quoted:
— run
365bb550hsinatfootprintai commentedon Oct 26, 2026
Scope decisions for S5 after reviewing PR #30 (recorded so the PR and the follow-ups agree):
internal/discover/repolinks.go) but does not report them:ScanReporthas no field for them. The report field (a.protochange, regenerated outputs) is added by S6, the first consumer. Criterion 2 of this issue is delivered by S6, not by Agent proposal: [S5] Discovery: security.txt, CSAF provider metadata, /.well-known/tea record, repo links, reviewer… (#13) #30.--sbom,--sbom-url) and theScanRequestfields. Its unmountedweb/src/scanForm.ts(and test) should be removed from Agent proposal: [S5] Discovery: security.txt, CSAF provider metadata, /.well-known/tea record, repo links, reviewer… (#13) #30, since feat(web): static Next.js report page and touchstone serve (#9) #28 owns the page andscan-form.tsx. Criterion 3 is met for the CLI only until Web: SBOM/VEX inputs on the scan form (follow-up to S5) #32 lands.internal/sbom(added by Agent proposal: [S5] Discovery: security.txt, CSAF provider metadata, /.well-known/tea record, repo links, reviewer… (#13) #30 because S4 is absent) stays; S4 ([S4] SBOM/VEX parsers: CycloneDX, SPDX, OpenVEX, CycloneDX VEX, CSAF VEX, with VEX applied in vuln #12) reconciles with it.Closing: #30 should not use a closing keyword, because the PR does not meet every item. A person closes this issue when #30 merges, once #14 and #32 carry the deferred items (they do). Issues #12, #14, #15 and #32 list this issue on their
Blocked by:line, andstartwaits for it to be closed, so it has to be closed by hand to release them. Merged agent PRs do not close their issues unless the PR carries a closing keyword.