Tracking: 1.0.0 sequencing and critical path #103
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Meta-issue, deliberately not on the
1.0.0milestone so the milestone count stays an honest count of real work units.Each 1.0.0 issue carries its own coordination note, but there is no single view of the ordering. This is it. The dependencies below are real constraints, not preferences — following a different order mostly means doing work twice.
Branching model (changed 2026-08-10, owner instruction)
Branch and PR per issue, based on
next, nevermain. Each issue PR is squash-merged intonextby the manager on a passed review.nextis the branch for the next milestone and must be green and mergeable tomainat any time without notice;sneakmergesnextintomainwhen he chooses, via the single milestone PR #105. Feature branches may be red;nextandmainmay not.Done
next2026-08-10. Three behaviour deltas recorded in its body; eviction-loop cancellation deferred to #102.Wave 1 — the meta-gate
Until these land, every other issue's "
make checkgreen" evidence rests on checks that can pass without having checked:Dockerfile.lint+script/lint. Owner ruling. Supersedes #58, which is closed: with no host lint path left there is no host binary to pin.script/cibuildis a baredocker build ., so Docker can serve theRUN make checklayers from cache and exit 0 having run nothing. Observed elsewhere in the fleet at 0.262 s, fullyCACHED.script/testdoes not follow the conditional-verbose-rerun pattern and has no-cover.Wave 2 — the four release blockers
These block tagging 1.0.0 per
REPO_POLICIES.md:IdleTimeout/ReadHeaderTimeout(slowloris) + request body limits91, 92 and 93 are mutually independent and touch different files (
middleware.go,http.go, handlers/templates) — they can run in parallel. 94 must precede 66.Wave 3 — security, worst first
q/fitoutside the HMAC signature. One signed URL yields 500 unauthorized cache entries and transcodes. Most severe finding in the milestone, and it makes the README's exact-match claim false. Breaking change to the URL signing scheme — any external signer updates in lockstep, so decide early rather than late./v1/e/validation bypass, #82 EXIF stripping, #68 SVG decision.Wave 4 — the performance claims
#64 and #65 together — they touch the same code (
Service.Get) and target the same blowup; splitting them means two passes over one function. #70 (deadmetaCache) is the third leg, and #81 (load test) should run before all three to establish a baseline, otherwise there is no way to show the fixes did anything.README.md:49's 1-5k req/s claim is currently unmeasured.Wave 5 — correctness cleanup on the newly-landed eviction code
#56 (Stats + never-incremented counters), #69 (
CacheTTLnever read), #87 (unboundedhostSems, orphaned.meta), #102 (eviction loop not context-cancellable), #72 (swallowed errors), #73 (dead abstractions), #71 (maintenance_modedoes nothing), #86 (shutdown/exit code — resolve together with 102, same question about who owns shutdown), #96 (migration path move — do while it is still a pure rename, since policy forbids editing migrations post-1.0).73 before #39 — removing the dead interfaces first keeps 39's
urlparserextraction diff small.Wave 6 — features, tests, docs
format=autowithoutVary: Acceptis a correctness bug, not an optimization); #63, #85, #90, #99.Last
README.mdandTODO.mdand will conflict with anything in flight. Do it when the queue is empty.Standing constraints
nextand squash-merged intonextby the manager.mainis protected and only ever receives the milestone PR, whichsneakmerges.make checkvia make targets /script/entrypoints only. All linting runs in Docker viascript/lint(issue 104)..golangci.ymlwithout asking — it is canonical and hash-verified (021cc83f…46bcb).