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

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 intake.

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; 2 other package(s) were analyzed and scored but not selected for generation. 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 fixed 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 03:28:16 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

    • did not run in this run.

    Wrote

    nothing

  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

    • 3 package(s) analyzed: pyasn1 score 90, budget full, 8 advisories, 118 breaking changes; python-jose score 51, budget full, 0 advisories, 0 breaking changes; starlette score 80, budget full, 14 advisories, 0 breaking changes.

    Wrote

    analyze/pyasn1/facts.json · analyze/python-jose/facts.json · analyze/starlette/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 .
    • python-jose: 17 tests kept in 6 file(s), 8 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); 17 tests, 11 pass on head, 0 flaky, 0 fix-pinning confirmed; 590 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_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_exposurecvefailfailfails 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_pysec_2024_232_fix_pinningcvepasspassnot a fix-pinning test: passes on both versions; keep only as characterization if it covers the symbol
test_pysec_2024_232_exposurecvepasspassnot a fix-pinning test: passes on both versions; keep only as characterization if it covers the symbol
test_pysec_2024_233_fix_pinningcvepasspassnot a fix-pinning test: passes on both versions; keep only as characterization if it covers the symbol
test_pysec_2024_233_exposurecvepasspassnot a fix-pinning test: passes on both versions; keep only as characterization if it covers the symbol
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_jwt_encode_decode_roundtripunitpasspasscandidate: passes on head, same on old
test_jwt_decode_wrong_key_raises_jwt_errorunitpasspasscandidate: passes on head, same on old
test_jwt_decode_expired_raises_expired_signature_errorunitpasspasscandidate: passes on head, same on old
test_jwt_get_unverified_header_returns_algunitpasspasscandidate: passes on head, same on old
test_jws_sign_verify_roundtripunitpasspasscandidate: passes on head, same on old
test_base64url_roundtripunitpasspasscandidate: passes on head, same on old
test_long_to_base64_roundtripunitpasspasscandidate: 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

Supply Chain Security and auditors

The person who ran the harness

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