Problem
Persistent web clients auto-rejoin their persisted groups at connect (#93). A per-record rejoin failure (corrupted joined_groups record, IndexedDB open failure for the group store, stored-key/topic mismatch caught by the defensive check in build_rejoin_init) is deliberately warn-and-skip so it never fails the connect — but nothing user-visible distinguishes "this group failed to rejoin" from "this tab never joined it". An app can only infer it via client.group(topic) == None after a reload, which conflates the two cases.
Ask
Additive field on WebSyncStatus, e.g. failed_rejoins: Vec<String> (user topics), populated during the rejoin pass and carried forward like the other snapshot fields. Lets a UI show "household needs re-authentication" instead of silently dropping the group from view.
Follow-up from the #93 round (rejoin implemented in web_engine.rs load_rejoin_inits/build_rejoin_init; the warn-only contract is documented in REQUESTS.md's #93 entry).
Problem
Persistent web clients auto-rejoin their persisted groups at connect (#93). A per-record rejoin failure (corrupted
joined_groupsrecord, IndexedDB open failure for the group store, stored-key/topic mismatch caught by the defensive check inbuild_rejoin_init) is deliberately warn-and-skip so it never fails the connect — but nothing user-visible distinguishes "this group failed to rejoin" from "this tab never joined it". An app can only infer it viaclient.group(topic) == Noneafter a reload, which conflates the two cases.Ask
Additive field on
WebSyncStatus, e.g.failed_rejoins: Vec<String>(user topics), populated during the rejoin pass and carried forward like the other snapshot fields. Lets a UI show "household needs re-authentication" instead of silently dropping the group from view.Follow-up from the #93 round (rejoin implemented in
web_engine.rsload_rejoin_inits/build_rejoin_init; the warn-only contract is documented in REQUESTS.md's #93 entry).