Updates from Gitea, step 5: the daily check's announcement, the docs, ADR 0009

The announcement was cut at the notification's 48 bytes; it now reads
"v0.11.0 is out: see Settings > Firmware". README: Updates from Gitea
and its limits. ADR 0009: the device trusts the two ISRG roots. R1.md:
what was built and the checks on the device, with what wasn't checked.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
2026-10-06 16:16:32 +02:00
co-authored by Claude Sonnet 5.5
parent 4ef41347ab
commit d490a18b9a
8 changed files with 90 additions and 8 deletions
+2 -2
View File
@@ -285,7 +285,7 @@ void UpdateService::serve() {
if (r == Request::BackgroundCheck && gitea_.latest(latest) &&
release::shouldAnnounce(latest, runningVersion(), failedVersion(), announced_)) {
announced_ = latest.tag;
notify("Update " + latest.tag + " available: see Settings > Firmware", NotificationLevel::Info);
notify(latest.tag + " is out: see Settings > Firmware", NotificationLevel::Info); // 48 bytes at most
}
break;
}
@@ -307,7 +307,7 @@ void UpdateService::serve() {
}
// A check or a list someone asked for that failed says so; the daily one stays quiet.
if ((r == Request::Check || r == Request::List) && gitea_.status() == GiteaReleases::Status::Failed)
notify("Releases: " + gitea_.error(), NotificationLevel::Warning);
notify(gitea_.error(), NotificationLevel::Warning);
// IRC comes back, unless the device is about to restart into an update.
if (held_ && phase_ != Phase::Installed && holdMemory) holdMemory(false);
held_ = false;
+1
View File
@@ -69,6 +69,7 @@ class UpdateService : public Service {
void requestProbe(const std::string& host, const std::string& path) { probeHost_ = host; probePath_ = path; probeResult_ = "..."; request_ = Request::Probe; }
std::string probeResult() const { return probeResult_; }
void damageNextDownload(long cutAfter, long flipAt) { damageCut_ = cutAfter; damageFlip_ = flipAt; }
void forgetToday() { store_.putInt("rel_day", 0); nextCheckMs_ = 0; announced_.clear(); } // the daily check runs at the next tick
#endif
// The main loop calls this once it has drawn a frame (part of Probation).