This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

The forge list read holds no total across pages: internal/core/site/forge.go listAll reads total_count afresh on every page and never compares it with page 1's, so a list that shrinks between two page reads (page 1 total 150 serving entries 0-99, one entry deleted, page 2 total 149 serving the old 101-149) returns 149 entries with no error and the old entry 100 is never seen. If that entry is an existing environment, setup reads it as absent and on confirm PUTs the endpoint that replaces its whole protection set. The read should hold page 1's total and fail closed on a later page reporting a different one.

issueresolvedminoriss-2609261241117925

The forge list read holds no total across pages: internal/core/site/forge.go listAll reads total_count afresh on every page and never compares it with page 1's, so a list that shrinks between two page reads (page 1 total 150 serving entries 0-99, one entry deleted, page 2 total 149 serving the old 101-149) returns 149 entries with no error and the old entry 100 is never seen. If that entry is an existing environment, setup reads it as absent and on confirm PUTs the endpoint that replaces its whole protection set. The read should hold page 1's total and fail closed on a later page reporting a different one.

Grounds

  • pursued: a list whose total moves between two page reads is refused naming both totals; a read that returns whole after a page reported a different total from the first would show it wrong

Frontmatter

idiss-2609261241117925
typeissue
lifecycleresolved
severityminor