stuck overlay: fetch dispatch-repos.txt live instead of a hardcoded duplicate list #12

Closed
opened 2026-08-28 11:36:37 +00:00 by mathias · 0 comments
Owner

Gap

internal/web/handler.go's defaultStuckRepos (cad-atlas#11) hardcodes the same 7-repo estate
list that mathias/dispatch's dispatch-repos.txt is the canonical source for:

var defaultStuckRepos = []string{
	"mathias/dispatch-sandbox", "mathias/cobalt-dingo", "mathias/parallax",
	"mathias/cad-atlas", "mathias/brain-gardener", "mathias/hyperguild", "mathias/brain",
}

dispatch-repos.txt's own header already warns about exactly this kind of drift: it's "the
PRIMARY source of the dispatch scope." Whenever a repo is added to or removed from
dispatch-repos.txt, cad-atlas's stuck overlay silently goes stale until someone remembers to
update this list too and redeploy — no error, no signal, just a badge count that quietly stops
matching reality (the same shape of bug cad stuck itself exists to catch elsewhere).

Why it wasn't fixed inline

cad-atlas has no filesystem access to mathias/dispatch's dispatch-repos.txt at runtime,
and adding one more live Gitea fetch (GET /repos/mathias/dispatch/contents/dispatch-repos.txt,
parsed the same way cmd/cad/stuck.go's readRepoList already does) was judged out of scope
for cad-atlas#11, which was about the overlay itself, not a new live-fetch dependency. The
CAD_ATLAS_STUCK_REPOS env var override exists as the interim mitigation.

Suggested fix

Fetch dispatch-repos.txt live (same parsing rule already implemented once in
mathias/cad's cmd/cad/stuck.go: one repo per line, # comments and blanks ignored) with a
short TTL cache (mirrors the existing 30s liveTTL pattern in handler.go), falling back to
the hardcoded list only when the fetch fails — never silently to an empty list.

Related

  • cad-atlas#11, mathias/dispatch's dispatch-repos.txt

Closed by the infra#419 archived-repo sweep, 2026-09-16.

mathias/cad-atlas is archived in Gitea: read-only, and its comments endpoint returns HTTP 423. This disposition is in the body because a comment is not possible here.

Superseded by mathias/cad#20, which carries this work in the repo that is still live.

If this work is still live, it belongs on the successor repo, not here — nothing in an archived repo can be worked, labelled or reopened usefully.

## Gap `internal/web/handler.go`'s `defaultStuckRepos` (cad-atlas#11) hardcodes the same 7-repo estate list that `mathias/dispatch`'s `dispatch-repos.txt` is the canonical source for: ```go var defaultStuckRepos = []string{ "mathias/dispatch-sandbox", "mathias/cobalt-dingo", "mathias/parallax", "mathias/cad-atlas", "mathias/brain-gardener", "mathias/hyperguild", "mathias/brain", } ``` `dispatch-repos.txt`'s own header already warns about exactly this kind of drift: it's "the PRIMARY source of the dispatch scope." Whenever a repo is added to or removed from `dispatch-repos.txt`, `cad-atlas`'s stuck overlay silently goes stale until someone remembers to update this list too and redeploy — no error, no signal, just a badge count that quietly stops matching reality (the same shape of bug `cad stuck` itself exists to catch elsewhere). ## Why it wasn't fixed inline `cad-atlas` has no filesystem access to `mathias/dispatch`'s `dispatch-repos.txt` at runtime, and adding one more live Gitea fetch (`GET /repos/mathias/dispatch/contents/dispatch-repos.txt`, parsed the same way `cmd/cad/stuck.go`'s `readRepoList` already does) was judged out of scope for cad-atlas#11, which was about the overlay itself, not a new live-fetch dependency. The `CAD_ATLAS_STUCK_REPOS` env var override exists as the interim mitigation. ## Suggested fix Fetch `dispatch-repos.txt` live (same parsing rule already implemented once in `mathias/cad`'s `cmd/cad/stuck.go`: one repo per line, `#` comments and blanks ignored) with a short TTL cache (mirrors the existing 30s `liveTTL` pattern in `handler.go`), falling back to the hardcoded list only when the fetch fails — never silently to an empty list. ## Related - cad-atlas#11, mathias/dispatch's `dispatch-repos.txt` --- <!-- infra#419:archived-repo-sweep --> **Closed by the infra#419 archived-repo sweep, 2026-09-16.** `mathias/cad-atlas` is archived in Gitea: read-only, and its comments endpoint returns HTTP 423. This disposition is in the body because a comment is not possible here. Superseded by mathias/cad#20, which carries this work in the repo that is still live. If this work is still live, it belongs on the successor repo, not here — nothing in an archived repo can be worked, labelled or reopened usefully.
This repo is archived. You cannot comment on issues.