v0.275.0: a backup's data and its version travel together (R-696, 07 §6.6, D4 option A); R-695, R-691, R-694
gates / gates (push) Successful in 23s
gates / gates (push) Successful in 23s
The unit's data files are stamped with the versions that wrote them; the capture keeps the definition the data belongs to; a restore never starts data under another version's definition (unit restores refuse a mismatch; the off-site restore writes the snapshot's definition); every tier's time is its data's; the conversion-copy release needs a dump on the new engine. File-browser sync single-flight + no empty kept folder (R-695); the kept view joins the folder's owning group, language switch resyncs (R-691); a restore-generated login is not shown as the password (R-694). Red-proofs in felhom.eu/documentation/audits/version-travel-2026-09-26/. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -270,6 +270,14 @@ func (s *Server) languageSwitchHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
s.logger.Printf("[INFO] [web] language switch: household language set to %s", lang)
|
||||
s.reportTriggerNow() // the hub learns the language on the next report, in seconds rather than minutes
|
||||
// R-691 (v0.275.0): the file browser's „Megőrzött adatok" / "Kept data" source is named in the box's
|
||||
// language when the sync writes its config — so the sync runs now, not at the next unrelated change.
|
||||
// A no-op when the box keeps no data (the source is absent) and when nothing changed.
|
||||
if s.langSwitchSync != nil {
|
||||
s.langSwitchSync()
|
||||
} else {
|
||||
go s.SyncFileBrowserMounts()
|
||||
}
|
||||
http.Redirect(w, r, stripLangQuery(redirectBackTo(r, "/launcher")), http.StatusFound)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user