Skip to content

[S2] Walking skeleton: page fetch → header + Retire.js uri/filename fingerprint → OSV by purl → JSON report #8

Closed

Description

@hsinatfootprintai

Delivery slice S2 of the Touchstone design.
Part of story #2, #4.

Done when:

  • touchstone scan against a fixture page that loads jquery-1.12.4.min.js reports jQuery 1.12.4 at Low confidence, with the script URL as evidence and at least one OSV vulnerability id
  • The report's checked list contains every request made, with its reason; requests_used matches
  • OSV is called through vuln.Source; CI uses recorded OSV responses, no live network

Phase: 1 — make the flow work
Blocked by: #7
Sprint: #17
Estimate: build 3h · CI+review 4h → ships 2026-10-28 (P50) / 2026-10-29 (P80) (uncalibrated: first sprint)
Waiting on: none
Runtime: runtime:claude (default)

Passive-only rule applies: only requests a browser loading the page would send, plus the design's discovery paths.

Part of #17 (Sprint 2026-W44)

Activity

  1. containarium-ci commented on Oct 24, 2026

    @containarium-ci
    Contributor

    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.

    — run f3674b00

  2. added
    agent:doneSet by the platform: the agent run finished
    and removed
    agent:runningSet by the platform: the agent run is working
    on Oct 24, 2026
  3. containarium-ci commented on Oct 24, 2026

    @containarium-ci
    Contributor

    The agent proposed a change for this issue: #27

    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. Signatures are a hand-curated jQuery-only file ([REDACTED].json), not
       the pinned Retire.js jsrepository snapshot the design assigns to S7. No pinned upstream copy is
       available here, and S2 needs only jQuery.
    2. The OSV responses under internal/vuln/testdata/osv were written by hand from OSV's reply format
       for two jQuery advisories (CVE-2019-11358, CVE-2020-11022). They were not captured from
       api.osv.dev and must be re-recorded from a live capture.
    3. Lookups are made one component at a time (one purl per Lookup call), so each finding maps to its
       component without changing the vuln.Source interface.
    4. No pipeline merge core yet: service.Scanner orchestrates the S2 steps because there is one
       evidence tier. internal/pipeline has no new code, though the design names pipeline as the
       orchestrator.
    5. OSV calls are not in the checked list. They are not vendor requests, which the design keeps on
       separate clients outside the budget; their outcome appears in sources. Read the issue's
       every-request rule as covering vendor requests.
    6. Only <script src> is fetched as a subresource. <link> stylesheet and modulepreload and CSS
       @import are deferred. A script counts as loaded only on a 2xx response.
    7. lookup_status is FAILED when every OSV lookup fails and PARTIAL when only some fail. cvss_base is
       left unset because OSV gives vectors rather than scores (scoring is S3), and vuln_data_as_of is
       unset.
    8. Retire.js patterns use regexp2 v1.11.0 (already in go.sum) with the design's 100 ms match
       timeout. The CLI now calls api.osv.dev by default; no test does.
    

    — run f3674b00

  4. hsinatfootprintai commented on Oct 26, 2026

    @hsinatfootprintai
    ContributorAuthor

    Delivered by merged PR #27. Closed by hand: platform PRs opened before v0.1.223 carry no closing keyword, and issues that list this one on a Blocked by: line wait for it to be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent:doneSet by the platform: the agent run finishedagent:readyenhancementNew feature or requestphase-1-flowOn the critical path of the end-to-end flowruntime:claudeWork runs under the Claude Code CLIsize:MSize estimate

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions