Skip to content

TEMP: probe FRED endpoints from a GitHub runner (do not merge) - #116

Closed
mmcky wants to merge 2 commits into
mainfrom
probe-fred-from-actions
Closed

TEMP: probe FRED endpoints from a GitHub runner (do not merge)#116
mmcky wants to merge 2 commits into
mainfrom
probe-fred-from-actions

Conversation

@mmcky

@mmcky mmcky commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Throwaway diagnostic for #115: the canary's FRED fetch times out from GitHub-hosted runners while the lecture repos' own builds reach FRED fine. This PR exists only so the probe step runs on a runner; it will be closed and the branch deleted once the log is read.

@mmcky

mmcky commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Probe done — results recorded on #115. From a GitHub runner (egress 20.57.77.194) FRED's edge stalls fredgraph.csv for the user agents qeld-builder and Mozilla/5.0 (read timeout) but answers Python-urllib/3.12 and curl/8.5.0 in ~50 ms with the full 14,181-byte file; the unkeyed API returns 400 as expected. Closing, branch deleted.

@mmcky mmcky closed this Sep 1, 2026
@mmcky
mmcky deleted the probe-fred-from-actions branch September 1, 2026 06:20
mmcky added a commit that referenced this pull request Sep 1, 2026
…ilder (#117)

* FRED from GitHub runners: no custom User-Agent; canary one leg per builder

The first canary run of us_business_cycle_monthly.csv timed out on its
first FRED request (#115) — twice. A probe from a runner (PR #116, closed)
showed why: FRED's edge answers `Python-urllib/3.12` and `curl/8.5.0` in
~50 ms and stalls `qeld-builder` and even `Mozilla/5.0` until the read
times out, while every variant succeeds from a workstation, which is how
the custom agent survived local testing. The Fred class now sends no
User-Agent by default (urllib's own), with the measurement in its
docstring; fred_data.py drops the same header.

Two workflow fixes found on the same runs: the canary ran a set-writing
builder once per dataset (three identical World Bank fetches), so
`snapshots.py list --by-builder` gives it one leg per builder; and the
`dataset` dispatch input filtered only the refresh matrix, so it now
filters the canary too.

See #115.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Copilot review on #117: single-pass grouping, array flags, accurate docstring

snapshots.py groups the canary legs in one pass keyed by builder; the
plan step builds its CLI flags as bash arrays so the dataset input is one
argument however it is spelled; and _fred.py says "no custom User-Agent"
rather than "none", since urllib always sends Python-urllib/x.y.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant