Carrying on: when the connection breaks during a release download, the device waits up to a minute for Wi-Fi, asks for the rest of the file with a Range request and continues. The slot's write handle and the hash so far are kept; the parser never sees the break.
Same file only: the answer must be a 206 from that byte to the end, of the same size, with the same ETag (sent as If-Range). The Update File's signature and hash still decide.
Giving up: tries go on while each brings more bytes, 20 at most; three in a row that bring nothing end it. Nothing is kept across a restart.
Memory: carrying on asks for 64 KB free instead of 80 (78 KB is free between two connections of an install; the first attempt on the device was refused for that).
update damage cut <n> now breaks every connection of the next download after n bytes.
Docs: guide, README, debug page, milestone R1.
Tested
Host tests: 626 pass, 5 new.
On the device: v0.23.0 (2.5 MB) installed over four connections broken every 800000 bytes; a download whose connections brought nothing given up after three, nothing switched.
Not checked: a real Wi-Fi drop mid-download, a file that changed on the server. The website check was not run locally: the Site job is its check.
Closes #54.
- **Carrying on**: when the connection breaks during a release download, the device waits up to a minute for Wi-Fi, asks for the rest of the file with a `Range` request and continues. The slot's write handle and the hash so far are kept; the parser never sees the break.
- **Same file only**: the answer must be a `206` from that byte to the end, of the same size, with the same `ETag` (sent as `If-Range`). The Update File's signature and hash still decide.
- **Giving up**: tries go on while each brings more bytes, 20 at most; three in a row that bring nothing end it. Nothing is kept across a restart.
- **Memory**: carrying on asks for 64 KB free instead of 80 (78 KB is free between two connections of an install; the first attempt on the device was refused for that).
- **`update damage cut <n>`** now breaks every connection of the next download after n bytes.
- Docs: guide, README, debug page, milestone R1.
## Tested
- Host tests: 626 pass, 5 new.
- On the device: v0.23.0 (2.5 MB) installed over four connections broken every 800000 bytes; a download whose connections brought nothing given up after three, nothing switched.
- Not checked: a real Wi-Fi drop mid-download, a file that changed on the server. The website check was not run locally: the Site job is its check.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
For carrying on a download that broke (issue #54): the head's ETag and
Content-Range are read, a 206 is checked to be the rest of the same
file, and a policy says how many tries a download is worth. Host-tested.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
When the connection breaks during a release download (issue #54), the
device waits up to a minute for Wi-Fi, asks for the rest of the file
with a Range request and carries on: the slot and the hash so far are
kept. It gives up after three tries in a row that bring nothing.
Nothing is kept across a restart.
Carrying on asks for 64 KB free, not 80: between two connections of an
install 78 KB is free, and the first attempt on the device was refused
for that. update damage cut now breaks every connection after n bytes.
Tried on the device: v0.23.0 installed over four connections, and a
download that brought nothing given up with nothing switched.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
twisla
merged commit 8aa2848c5f into main2026-10-11 16:30:06 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #54.
Rangerequest and continues. The slot's write handle and the hash so far are kept; the parser never sees the break.206from that byte to the end, of the same size, with the sameETag(sent asIf-Range). The Update File's signature and hash still decide.update damage cut <n>now breaks every connection of the next download after n bytes.Tested
🤖 Generated with Claude Code
https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk