[Unit] Description=socialmag refresh — login states, activity, timeline capture # The browser is not a service. There is nothing to order against, so a pass # that finds no CDP records the third state and exits 0. [Service] Type=oneshot WorkingDirectory=@REPO@ Environment=SOCIALMAG_CDP_ENDPOINT=@CDP_ENDPOINT@ # --skip-foreground is the whole reason this can run on a desktop someone is # using. Every other platform reads a JS-state signal in a hidden tab; tiktok # still activates, so it is left out and keeps its last stored result with its # own older checkedAt. Stale is honest. Drop the flag for a full pass by hand. ExecStart=@VENV@/bin/socialmag-refresh --skip-foreground # No Restart=: a down browser is a waiting state the refresher records and exits # 0 for. The timer brings the next attempt, not a crash loop.