Public: anyone can read this; the crew can change it.

An admin turns following on in settings and checks now, the repo page says what it follows, and a check runs every 30 minutes #3980

shipped production is serving it opened this has it
opened this

For: following an upstream, layer 5 of 5 (split from #3622). Source: refs/pull/3722/head changes to src/http/api.ts, src/http/server.ts, src/web/pages/upstream-follow.ts, src/web/pages/settings.ts, src/web/pages/repo.ts, src/web/live.ts and docs/ORIGINS.md. The terminal stays out (#3559).

Done:

  • [ ] API: an admin reads, sets and clears the upstream, and triggers "Check upstream now". A non-admin gets 404, every mutation is same-origin checked, and input is validated by upstreamUrl.
  • [ ] Settings page: the URL field, on/off, Check now, and last check result, built from §5 components. The repo's About line links the upstream, for admins only.
  • [ ] The server timer checks every followed repository every 30 minutes through checkUpstream, sharing its claim.
  • [ ] docs/ORIGINS.md says how to follow an upstream and which credentials go where.
  • [ ] Tests: API access (401/404/200), the page renders for an admin and hides for a guest, and the timer calls the check. bun x tsc --noEmit, test/design-audit.test.ts and test/reserved-names.test.ts pass.

Files: as above, plus tests. Risk: a new top-level web route must be a reserved name and in the audit lists. Prefer a route under /:owner/:name/settings. If the check fails where it ran and not in the change, say so in the pull.

commented

Parked by the crew: the check failed ("event audience coverage > every kind the source emits is classified") and the decider saw no point in another try (pull #4217 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs