Conversation
Two advisories published upstream since the last merge (browserslist unbounded memory growth, HIGH; postcss-selector-parser AST recursion, low) trip CI's npm-audit gate on every new push, blocking the whole open PR train. npm audit fix; 0 vulnerabilities after; tests/tsc/build green. Lockfile-only.
The root cause of the 97-day-stale deals dataset was that no refresh mechanism was ever scheduled - the fix sat on a to-do list as 'set up two cron-job.org jobs'. This puts the schedule in the repo instead: daily news scan (feeds the deals/queue approval pipeline), weekday recorder pings (gpu-price + index history accrue without organic traffic), and a twice-daily freshness deadman that fails the workflow on a 503 so GitHub's built-in failure email is the alert. Watchdog stays off the watched infrastructure (GitHub, not Jetson/Replit) and hits /freshness/check, never /health, per ops/freshness-monitor.md. Activation = one repository secret: GRIDTILT_ADMIN_KEY (the production ADMIN_API_KEY). Until set, the two admin jobs fail with a message saying exactly that. Schedules run from the default branch, so this arms on merge. Registry mechanism note updated.
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.
The root cause behind the 97-day-stale deals dataset (and the 62-day clusters) was never the data — it was that no refresh mechanism was ever scheduled, and the fix sat on a to-do list as "set up two cron-job.org jobs." This puts the schedule in the repo, where it can't be forgotten:
news-scanPOST /api/admin/scan-news-now— feeds the deals/queue approval pipelinerecorder-ping/api/gpu-prices/metrics+/api/kpisso the price/index history series accrue without organic traffic (after the index recorder's 10am ET gate)deadmanGET /api/admin/freshness/check— a 503 names the stale datasets and fails the workflow, so GitHub's built-in failure email is the alertDesign rules carried over from
ops/freshness-monitor.md: the watchdog lives off the infrastructure it watches (GitHub, not the Jetson or Replit), and it hits/freshness/check, never/health, so Replit can't mistake a stale-data 503 for an unhealthy instance.workflow_dispatchenabled for manual runs;permissions: contents: none.Activation (one step): add repository secret
GRIDTILT_ADMIN_KEY= the productionADMIN_API_KEY(Settings → Secrets and variables → Actions). Until it exists, the two admin jobs fail with a message saying exactly that; the public recorder-ping works immediately. Schedules run from the default branch, so this arms on merge. (GitHub pauses schedules after ~60 days of repo inactivity; any commit re-arms them.)Verified:
/api/kpisreturns 200 live, route paths grep-confirmed against the code, YAML parse-validated. Carries the #30 lockfile fix so CI is green here.🤖 Generated with Claude Code
https://claude.ai/code/session_01FY4ziPhfu8VBPFVy5cDMNy