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.
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
| id | iss-2609261241117925 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609261241117925-forge-list-total-not-held-across-pages.md
open on GitHub ↗ · commit history ↗