🚨 ci(cron-rankings): EMERGENCY add FORM4_FETCH_SKIP=1 to unblock 150m timeout#245
Merged
Conversation
…imeout `compute-rankings.yml` manual workflow_dispatch cancelled at the 150m timeout-minutes ceiling on 2026-05-25 00:13 UTC. Production data ~44h stale (last successful chore commit 9015748 Sat 2026-05-23 03:38 UTC). incident-commander session-8 verdict: (δ) BUDGET EXHAUSTED, NOT code regression. PR #238's filing.xml() cache-hit invariant verified intact against vendored edgartools 5.31.5 source (~lxml-find cost only). Root cause: 150m timeout set in Phase 4g for 4-loop reality; PR #205 added Form-4 (5th SEC EDGAR loop, +20-30m cold) 12 days ago without bumping the budget. Cache eviction over 44h Fri→Sun gap made all 5 cold simultaneously → > 150m. Path B mitigation (user-authorized): add FORM4_FETCH_SKIP=1 to workflow-level env block in .github/workflows/compute-rankings.yml. Form-4 fetch is observability-only (form4_enabled=False, _FORM4_FLAGS_ENABLED=False) so skipping has ZERO scoring impact — composite + risk_flags + rankings + per-stock JSON all identical. Metadata.form4_* fields coerce to None for this run; Q3 cohort-audit gate (2026-08-19) has plenty of subsequent crons. Expected: cron completes in 12-25m on warm partial cache; up to ~90m worst-case if fundamentals/Tier-2 caches are ALSO cold (still under 150m). Inline YAML comment (extensive) documents the rationale + revert-after timing. PHASE_STATUS_INFLIGHT.md in-flight entry documents the full incident-commander timeline + durable follow-ups (performance-engineer rebaseline + cache-restore canary + per-loop wall-clock budget + workflow_dispatch.inputs UI controls + post-fresh-data REVERT of this env-var). CI workflow YAML change ONLY. No compute / schema / scoring / valuation / Python / TypeScript code change. https://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced May 25, 2026
dackclup
added a commit
that referenced
this pull request
May 26, 2026
…stale INFLIGHT markers (#267) Phase B (post-tag housekeeping) per the v1.3.0 release plan. Pure doc-pointer maintenance; no code touched. Scope (3 files): - CLAUDE.md §Phase status — Latest release tag pointer bumped v1.2.0-phase4.5 (6d414a9) → v1.3.0-phase4.5e (5db3b97); prior tag preserved as historical reference - PHASE_STATUS.md §Current state — same pointer bump + one-line description of what the release closes - PHASE_STATUS_INFLIGHT.md — 11 stale (in flight) header markers updated to (merged YYYY-MM-DD, SHA) with PR number prefix; PRs drained: #244 / #245 / #246 / #250 / #251 / #252 / #256 / #257 / #258 / #263 / #266. Bodies stay in place (full historical record preserved); future weekly housekeeping commit moves them between sections per PR #237 convention. Note on tag: v1.3.0-phase4.5e was created locally during the release session but `git push origin <tag>` failed HTTP 403 from sandbox (proxy permits branch pushes, not tag-ref pushes). User runs the tag commit + push from their own machine on the squash- merge SHA 5db3b97. This PR's pointer bumps reference the tag AS IF live per release-tag SKILL.md §7 (anchors to commit SHA, not tag-availability state). Markdown-only diff; ruff / schema_check / pytest N/A. PHASE_STATUS_INFLIGHT.md side-file satisfies §Conventions "ship with every PR" lockstep per PR #237 convention. https://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4 Co-authored-by: Claude <noreply@anthropic.com>
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚨 P1 EMERGENCY MITIGATION
compute-rankings.ymlmanualworkflow_dispatchcancelled at the 150mtimeout-minutesceiling on 2026-05-25 00:13 UTC. Production data is now ~44h stale (last successful chore commit9015748Sat 2026-05-23 03:38 UTC).Root cause (
incident-commandersession-8 verdict)(δ) Budget exhausted, NOT code regression.
PR #238's
filing.xml()cache-hit invariant verified intact against vendored edgartools 5.31.5 source (load-bearing-correct, ~lxml-find cost only). Root cause:Cache eviction over 44h Fri→Sun gap made all 5 cold simultaneously → > 150m.
Mitigation applied
Added
FORM4_FETCH_SKIP: "1"to workflow-levelenv:block in.github/workflows/compute-rankings.yml. Form-4 fetch is observability-only (form4_enabled=False,_FORM4_FLAGS_ENABLED=False) so skipping has ZERO scoring impact:Metadata.form4_*Q3 cohort-audit gate (2026-08-19) has plenty of subsequent crons to repopulate Form-4 observability.
Expected wall-clock: 12-25m on warm partial cache; up to ~90m worst-case if fundamentals/Tier-2 caches also cold (still under 150m).
After this merges
workflow_dispatchagain —gh workflow run compute-rankings.yml --ref mainOR Actions UI buttonchore: update rankings 2026-05-25defense-layer-auditor+stock-detail-auditorper CLAUDE.md auto-routingDurable follow-ups (NOT this PR — separate sessions)
performance-engineerissue: rebaselinetimeout-minutesagainst 5-loop cold-cache reality (target: 300m OR off-cycle pre-cache workflow per issue Fundamentals fetch resilience to SEC API throttling #15)Metadata(parity with existingfundamentals_latency_p95_seconds— add for tier2 / form4 / OSAP)workflow_dispatch.inputs.*_skipUI controls so operator can mitigate without YAML editFiles touched
.github/workflows/compute-rankings.ymlFORM4_FETCH_SKIP: "1"env var + extensive inline rationalePHASE_STATUS_INFLIGHT.mdCI workflow YAML change ONLY. No compute / schema / scoring / valuation / Python / TypeScript code change. CLAUDE.md + AGENTS.md substance unchanged.
Test plan
python3 -c "import yaml; yaml.safe_load(...)"— YAML parse OKincident-commander(opus) verdict + recommendation reviewedworkflow_dispatchpost-merge → verify completes < 90mchore: update rankings 2026-05-25commit appears on maindefense-layer-auditor+stock-detail-auditorhttps://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4
Generated by Claude Code