What happens
A daemon built from origin/master exits at startup when the profile's Git correlation store is at schema version 5, the shape that beta.53 and beta.54 write. The error is the typed reset refusal:
Error: config error: git correlation persisted shape requires reset: the store records Git correlation schema version 5; this build stores Git evidence as per-session rows at version 6
refused authority: git correlation
this binary does not open or migrate that shape; reset it (its old data is deleted, nothing is backed up):
tracedecay update refreshes the binary and daemon, then resets every refused profile authority
tracedecay wipe --all --yes resets the complete profile database state now
The refusal names tracedecay update as the remedy, but update cannot reach its reset. run_update_flow resets refused authorities only in reset_refused_profile_authorities, which runs after with_exclusive_maintenance_window has restored the daemon. The restore waits up to 3 minutes for a daemon that exits on every start, then fails. The reset never runs. Under real systemd, Restart=always makes the unit loop.
The shape change is #2202 (1b8ca37877), which is not in beta.54. So once it ships, every operator who runs tracedecay update from beta.54 hits this: update exits 1 and the managed daemon stays down until they run tracedecay wipe --all --yes by hand.
Reproduction (isolated home, fake systemctl that runs the unit's ExecStart under a capped scope)
- Install the managed service with the beta.53 release binary, so the daemon writes a schema-5 profile.
- Replace the installed binary with a build of
origin/master (aba3191152 plus unrelated CLI changes) and run tracedecay update.
Waiting for the restored daemon to reach RunningEnabled (service StoppedEnabled, socket missing, protocol not required)… (x8)
Error: config error: update failed: ...; daemon state restoration also failed: config error: TraceDecay daemon did not return to RunningEnabled: service is StoppedEnabled, socket '.../home/.tracedecay/daemon.sock' is missing, and protocol readiness is not required
exit=1
The daemon log for the restored start contains only the reset refusal above. It never reaches daemon_listening.
Expected
tracedecay update across a persisted-shape change ends with a running daemon and core tools that work. That needs one of two things: the daemon answers the protocol and refuses per request (the path reset_refused_profile_authorities probes), or the updater resets the refused authority before it waits on the restore.
Found while verifying the update-path fixes (updater restore identity, tracked host without its CLI).
What happens
A daemon built from
origin/masterexits at startup when the profile's Git correlation store is at schema version 5, the shape that beta.53 and beta.54 write. The error is the typed reset refusal:The refusal names
tracedecay updateas the remedy, butupdatecannot reach its reset.run_update_flowresets refused authorities only inreset_refused_profile_authorities, which runs afterwith_exclusive_maintenance_windowhas restored the daemon. The restore waits up to 3 minutes for a daemon that exits on every start, then fails. The reset never runs. Under real systemd,Restart=alwaysmakes the unit loop.The shape change is #2202 (
1b8ca37877), which is not in beta.54. So once it ships, every operator who runstracedecay updatefrom beta.54 hits this:updateexits 1 and the managed daemon stays down until they runtracedecay wipe --all --yesby hand.Reproduction (isolated home, fake
systemctlthat runs the unit's ExecStart under a capped scope)origin/master(aba3191152plus unrelated CLI changes) and runtracedecay update.The daemon log for the restored start contains only the reset refusal above. It never reaches
daemon_listening.Expected
tracedecay updateacross a persisted-shape change ends with a running daemon and core tools that work. That needs one of two things: the daemon answers the protocol and refuses per request (the pathreset_refused_profile_authoritiesprobes), or the updater resets the refused authority before it waits on the restore.Found while verifying the update-path fixes (updater restore identity, tracked host without its CLI).