Split per-type registration points into per-type files #150
Reference in New Issue
Block a user
Delete Branch "benvin/modular-layout"
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?
Parallel package-type PRs conflict because every type edits the same shared lines (README tables, provider.go, server.go imports, the package type list, UI maps, the e2e caching table). A new type now only adds files.
- move README per-type sections into docs/<type>/{remote,local,virtual}.md - split provider.go capability and metadata types into cap_*.go and metadata_*.go - register providers via internal/provider/all, one file per type - declare each package type in its own file, registering via init() - split the e2e caching table and UI type colours/snippets per typeNo findings.
create/updatecallValidatePatterns()(internal/api/v2/remotes.go:99,131; pkg/models/remote.go:155) and reject any non-compiling regex in patterns/blocklist/mutable_patterns/immutable_patterns/ban_tags with 400. Skip only happens for rows already stored → say invalid regexes are rejected with 400 on create/update.check_mutable) — misleading: the ETag key is written with the same TTL as the freshness key (SetETag(..., ttl), engine.go:160-161, 566), so oncemutable_ttlexpires the ETag is gone and the conditional HEAD never runs (TestMutableRevalidation only passes by expiring thettl:key alone). Withmutable_ttl: 0nothing expires. → document that revalidation needs a surviving ETag and in practice currently does not fire, or fix the ETag TTL in code in a separate PR.