FastF1 root issue is still not fixed. Evidence: practice-update runs on 2026-06-06 repeatedly logged FastF1 failed to load any schedule data; manual `/usr/bin/python3.12 score_r...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge5d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_medium
Description
MC-4796
FastF1 root issue is still not fixed. Evidence: practice-update runs on 2026-06-06 repeatedly logged FastF1 failed to load any schedule data; manual `/usr/bin/python3.12 score_race.py --race monaco-2026` on 2026-06-08 failed with FastF1 schedule backends unavailable and could not pull results. Prior work fixed/scoped OpenF1 401 fallback and cached FP preservation, but did not fix FastF1 schedule/session loading for practice updates/scoring. Deliverable: make FastF1 schedule/session lookup robust on Luci (cache disabled or local calendar/event resolution as needed), then verify practice update and score_race can run without the schedule-data failure. Also ensure scorer uses submitted_prediction.json/ledger when it differs from final_prediction.json.
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
api (human)
Mission Control
5d ago
5d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.MC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
[visibility-only] Queued message recorded for Hermes Luci. MC did not claim the ticket or spawn a runtime.
luci-board-manager5d ago
[visibility-only controller] Routed MC-4796 to Hermes Kanban mc-internal card t_28809b5b assigned to claudebuilder. Worker must use isolated worktree /home/lucienne/workspace/state/kanban-worktrees/mc-4796-f1-fastf1-root on branch wt/MC-4796-fastf1-root; live f1-predictor checkout remains read-only/dirty evidence. MC did not spawn or claim any runtime.
luci-board-manager5d ago
[visibility-only controller] claudebuilder failed to start MC-4796 card t_28809b5b: Anthropic HTTP 400 extra-usage quota. Reclaimed and reassigned the same Kanban card to codexbuilder; MC still did not spawn/claim a runtime. Isolated worktree remains /home/lucienne/workspace/state/kanban-worktrees/mc-4796-f1-fastf1-root.
api5d ago
Fixed and verified.
Root cause: on Luci, FastF1's requests-cache path can break schedule/session discovery/loading even though the same calls work with FastF1 cache disabled. Previous MC-4768 work fixed OpenF1 401 fallback/preservation, but not this FastF1 root path.
Changes committed/pushed: 312305d fix: bypass FastF1 cache for session loads
- Added pipeline/utils/fastf1_safe.py wrappers.
- Use cache-disabled FastF1 schedule/session lookup + session.load in score_race, FP deep analysis, historical FastF1 step, and calendar refresh.
- Scorer now uses submitted_prediction.json before later final_prediction.json, so post-deadline reruns do not overwrite the scoring source of truth.
- Added regression tests for cache-disabled FastF1 session lookup/load and submitted-ledger scoring.
- Persisted Monaco 2026 score result.
Verification:
- /usr/bin/python3.12 -m pytest -q => 79 passed.
- /usr/bin/python3.12 pipeline/09_fp_deep_analysis.py --race monaco-2026 --sessions FP1,FP2,FP3 => FastF1 loaded FP1/FP2/FP3, 22 drivers each, wrote summary.
- /usr/bin/python3.12 score_race.py --race monaco-2026 => FastF1 loaded race + qualifying, computed Monaco score: 8.0 / 22.5.
Score breakdown: EBP +2, pole +0, top-10 finishers +5, exact positions +1.0, podium bonus +0, fastest lap +0.
api5d ago
MC-4796 implementation handoff
Commit: 94b1ede287b5805ff4168d1546a1e4dbe2a80062 on wt/MC-4796-fastf1-root
Push: blocked; `git push -u origin HEAD` failed with `fatal: could not read Username for 'https://github.com': No such device or address`.
Git clean status: clean after commit (`git status --short --branch` prints only `## wt/MC-4796-fastf1-root`).
What changed:
- Added `pipeline/utils/fastf1_fallback.py` to create FastF1 Event/Session objects from checked-in `config/races_2026.json` when remote FastF1 schedule backends fail.
- Wired fallback into `pipeline/09_fp_deep_analysis.py` and `score_race.py`; FP script now also runs directly as a file without PYTHONPATH.
- Scorer now prefers `data/predictions/<race>/submitted_prediction.json`, then ledger-referenced submitted files, then `final_prediction.json`/legacy flat files.
- Added `httpx` to requirements because existing OpenF1 fallback/tests import it.
Verification run:
- `PYTHONPATH=/home/lucienne/workspace .venv/bin/python -m py_compile score_race.py practice_update.py pipeline/09_fp_deep_analysis.py pipeline/utils/fastf1_fallback.py` passed.
- `PYTHONPATH=/home/lucienne/workspace .venv/bin/python -m pytest -q` -> 81 passed.
- `PYTHONPATH=/home/lucienne/workspace .venv/bin/python practice_update.py --race monaco-2026 --dry-run` -> FastF1 loaded FP1/FP2/FP3, analysed 22 drivers each session, produced dry-run Monaco practice update from FastF1.
- `PYTHONPATH=/home/lucienne/workspace .venv/bin/python score_race.py --race monaco-2026` -> loaded Monaco Race + Qualifying via FastF1, selected `data/predictions/monaco-2026/submitted_prediction.json`, scored 8.0 / 22.5.
Data artifacts used:
- Copied ignored live-checkout Monaco prediction artifacts into this isolated worktree for verification only: `data/predictions/monaco-2026/final_prediction.json`, `submitted_prediction.json`, `metadata.json`.
- The copied submitted prediction differs from final prediction; scorer selected the submitted file as intended.
- Generated Monaco FP/result artifacts and FastF1 cache were removed or left ignored after verification; no generated data was committed.
Other note:
- `graphify update .` was attempted per project rule but failed because the installed `graphify` entry point cannot import the `graphify` Python module.
Controller gate still needed: merge/deploy/live fast-forward are still controller-held; I did not mark MC done.
Controller decision
luci-board-manager5d ago
[visibility-only controller] Internal Kanban watchdog triaged card t_28809b5b. MC-4796 was already terminal done; fetched origin and verified 312305d is an ancestor of origin/kanban/mc-4768-openf1-401-fallback. Closed the blocked internal card as superseded; alternate local Kanban commit 94b1ede was not pushed/merged. No human action needed.