The role asserts Arcane settings by GETting /api/environments/0/settings, diffing against what it wants, and PUTting only on a difference. On v2.10.1 that GET returns 22 keys and includes none of the ones the role manages - autoUpdate, autoUpdateExcludedContainers, authPasswordPolicy, authSessionTimeout. A key that never comes back always looks different, so the PUT fires every run and the task always reports changed.
Predates the long-session opt-in. Proved by running with soe_arcane_long_session off, where the wanted dict holds exactly what main holds: Assert Arcane's managed settings still reports changed.
Harmless functionally - the PUT is idempotent server-side and the values are correct - but it makes changed=0 meaningless as a signal for that role, which is the thing you would otherwise use to tell a real drift from noise.
The values do land. Confirmed by reading the SQLite settings table directly on desktop-derek: authSessionTimeout = 525600, autoUpdate = true.
Worth knowing before picking a fix: dragonfly pins v2.8.0 and desktop-derek tracks latest (v2.10.1 today), so whatever replaces the diff has to work on both. Reading the value back another way is one option; accepting the PUT as unconditional and keying changed_when off what the response actually reports is another.
Found while adding the long-session opt-in (chore(soe): make the Arcane long-lived login an opt-in), which inherits the churn rather than causing it.
The role asserts Arcane settings by GETting
/api/environments/0/settings, diffing against what it wants, and PUTting only on a difference. On v2.10.1 that GET returns 22 keys and includes none of the ones the role manages -autoUpdate,autoUpdateExcludedContainers,authPasswordPolicy,authSessionTimeout. A key that never comes back always looks different, so the PUT fires every run and the task always reports changed.Predates the long-session opt-in. Proved by running with
soe_arcane_long_sessionoff, where the wanted dict holds exactly what main holds:Assert Arcane's managed settingsstill reports changed.Harmless functionally - the PUT is idempotent server-side and the values are correct - but it makes
changed=0meaningless as a signal for that role, which is the thing you would otherwise use to tell a real drift from noise.The values do land. Confirmed by reading the SQLite settings table directly on desktop-derek:
authSessionTimeout = 525600,autoUpdate = true.Worth knowing before picking a fix: dragonfly pins v2.8.0 and desktop-derek tracks
latest(v2.10.1 today), so whatever replaces the diff has to work on both. Reading the value back another way is one option; accepting the PUT as unconditional and keyingchanged_whenoff what the response actually reports is another.Found while adding the long-session opt-in (
chore(soe): make the Arcane long-lived login an opt-in), which inherits the churn rather than causing it.