frc-scheduler-server: pr-fix-known-vulns-run4

What happened, why, and what came out of it. Written by the harness from its own records; a person decides what to do with it. The same story opens the run's folder as README.md; the example's write-up is on its example page.

repository frc-scheduler-serverlanguage pythonmode diffbase 2ad04243861bhead cfa8f4a3292bmodel qwen/qwen3.8-27bstarted 2026-09-12T01:41:41+00:00harness 0.1.0run 76a3fa863e76
This run has not reached the review packet yet; the last stage that wrote was self-verification.

Who, what, why, where, when

WhoThe AI Test Harness 0.1.0 did the work without a person in the loop. A person decides the result; nothing in this run has been merged.
WhatTests for python-jose 3.3.0 to 3.4.0, chosen from a work list of 64 packages, 5 of which this change touched. Repository frc-scheduler-server, change 2ad04243861b..cfa8f4a3292b, mode diff.
Whypython-jose (score 51, budget full): reachable from first-party code; 159 source lines changed; 5 advisories before the change, 0 after.
WhereEvery test ran in a sealed sandbox (podman, network none, image docker.io/library/python:3.12-slim); the model was qwen/qwen3.8-27b in agent mode; the run's own files are in this folder.
WhenStarted 2026-09-12 01:41:41 UTC. The last stage to write was validation execution at 2026-09-12 05:54:29 UTC.

Decisions the harness made

Actions it took

Actions it did not take, by design

How it happened, stage by stage

What each stage read, did and wrote, with the file behind every number.

  1. Self-verificationstage 0

    Read

    the harness's own code and the failure register

    Did

    • 12 register checks, all passed; sandbox probe skipped; model probe skipped.

    Wrote

    selfcheck/selfcheck.json

  2. Intakestage 1

    Read

    the repository at base and head, its dependency manifest

    Did

    • Resolved 63 packages at head and 63 at base with ; looked every version up in OSV: 4 with advisories at head; 5 changed; work list of 64 rows.

    Wrote

    intake/worklist.json · intake/graph.new.json · intake/sbom.new.cdx.json · intake/vulns.json

  3. Analysisstage 2

    Read

    the work list; package source, advisories, the application's call sites

    Did

    • 1 package(s) analyzed: python-jose score 51, budget full, 0 advisories, 0 breaking changes.

    Wrote

    analyze/python-jose/facts.json

  4. Generationstage 3

    Read

    the fact bundle per package; the model; the sealed sandbox for baseline runs

    Did

    • Model qwen/qwen3.8-27b, mode agent.
    • python-jose: 13 tests kept in 4 file(s), 45 model calls.

    Wrote

    generate/python-jose/manifest.json · tests/ · model-calls/

  5. Validation executionstage 4

    Read

    the candidate tests; the environments at head, base or the fixed candidate

    Did

    • python-jose: sandbox runs new, new-rerun, old on podman (image digest not recorded); 13 tests, 7 pass on head, 0 flaky, 0 fix-pinning confirmed; 566 lines of the package covered.

    Wrote

    execute/python-jose/results.json · new/ · execute/python-jose/mutation/mutation.json · execute/python-jose/relevance.json

  6. Triagestage 5

    Read

    every verdict and finding from stage 4

    Did

    • did not run in this run.

    Wrote

    nothing

  7. Packetstage 6

    Read

    triage, the tests, the advisories

    Did

    • did not run in this run.

    Wrote

    nothing

  8. Attestationstage attest

    Read

    the manifest, the tests, the results; UDLM's chain code

    Did

    • did not run in this run.

    Wrote

    nothing

  9. Assessmentstage assess

    Read

    every record the run wrote, against the blueprint's goals

    Did

    • did not run in this run.

    Wrote

    nothing

  10. Test pull requeststage propose

    Read

    the packet and the records

    Did

    • did not run in this run.

    Wrote

    nothing

  11. Feedbackstage 7

    Read

    the pull request as a person decided it

    Did

    • did not run in this run.

    Wrote

    nothing

python-jose 3.3.0 → 3.4.0

Tests, one row each

TestCategoryOldNewVerdictAction
test_pysec_2025_185_fix_pinningcvefailfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_pysec_2025_185_exposurecvefailfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_ghsa_6c5p_j8vq_pqhj_fix_pinningcvefailfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_ghsa_6c5p_j8vq_pqhj_exposurecvepassfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_ghsa_cjwg_qfpm_7377_fix_pinningcvefailfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_ghsa_cjwg_qfpm_7377_exposurecvefailfailfails on the fixed version: test bug or the advisory is misread; back to generation
test_jwt_encode_decode_roundtrip_hs256unitpasspasscandidate: passes on head, same on old
test_jwt_decode_wrong_key_raises_jwt_errorunitpasspasscandidate: passes on head, same on old
test_jwt_decode_expired_token_raises_expired_signature_errorunitpasspasscandidate: passes on head, same on old
test_jwt_get_unverified_header_returns_algunitpasspasscandidate: passes on head, same on old
test_jwt_get_unverified_claims_returns_claims_without_verificationunitpasspasscandidate: passes on head, same on old
test_base64url_encode_decode_roundtripunitpasspasscandidate: passes on head, same on old
test_ensure_binary_and_timedelta_total_secondsunitpasspasscandidate: passes on head, same on old

What is in this folder, and who it is for

What is in this folder, and who it is for

Every file exists for a reader or a tool named here. The plain-English files come first; the machine files stay because they are the proof and the replay.

Everyone

  • README.md: The story of this run: who, what, why, where, when, the outcome, the decisions and the actions.

Reviewers (the developer or team that owns the change)

Product Security

  • intake/vulns.json: Known vulnerabilities for every package version in either graph, from OSV, including malicious-package reports.
  • analyze/python-jose/vulns.json: The advisories on this package's versions, with the symbols they name and the fixed versions.

Supply Chain Security and auditors

The person who ran the harness

Tools (kept for replay and proof; not meant to be read)