List up to 20 folders per request in a scan; an unknown folder is not an empty one #6

Merged
HoroTW merged 1 commit from hakalya/fox-68-batched-listings into main 2026-10-12 13:38:23 +00:00 AGit
Collaborator

FOX-68. A full scan was one request per folder, one at a time, about 0.3 s each whatever the folder holds (measured: 2.7 folders/s on a real drive, under 2 % CPU, no 429). One request can list many folders for little more (25 to 50 folders in 0.6 s on the test account), so the walk asks for up to 20 per request, still one request at a time. Each folder record passes the same completeness checks as before; a record that does not name the folder asked for is not used and that folder is listed alone. Also: an unknown folder id answers HTTP 200 with status ID_INVALID and no entries (measured); that was taken for an empty folder and is now 'no such folder'; any other non-OK status is an error. Tests: 174 pass (8 new). Not measured: timing with many large different folders; behaviour on the production account. Measurements and limits in docs/PROTOCOL.md 8.1. 🤖 Generated with Claude Code

FOX-68. A full scan was one request per folder, one at a time, about 0.3 s each whatever the folder holds (measured: 2.7 folders/s on a real drive, under 2 % CPU, no 429). One request can list many folders for little more (25 to 50 folders in 0.6 s on the test account), so the walk asks for up to 20 per request, still one request at a time. Each folder record passes the same completeness checks as before; a record that does not name the folder asked for is not used and that folder is listed alone. Also: an unknown folder id answers HTTP 200 with status ID_INVALID and no entries (measured); that was taken for an empty folder and is now 'no such folder'; any other non-OK status is an error. Tests: 174 pass (8 new). Not measured: timing with many large different folders; behaviour on the production account. Measurements and limits in docs/PROTOCOL.md 8.1. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
A scan of every folder was one request per folder, one after another, and each
request takes about 0.3 s whatever the folder holds. One request can list many
folders for little more (measured: 25 to 50 folders in 0.6 s), so the walk now
asks for up to 20 at a time, still one request at a time.

Every folder record of such an answer passes the checks of a folder listed
alone. A record that does not name the folder asked for is not used; that
folder is listed alone.

Measured on the way: a folder the server does not know is answered with HTTP
200, status ID_INVALID and no entries, not with 404. It was taken for an empty
folder; it is "no such folder" now, and any other status that is not OK is an
error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HoroTW merged commit f9f2faadb4 into main 2026-10-12 13:38:23 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
HoroTW/icloud-drive-linux!6
No description provided.