Skip to content

aw-sync: daemon pull is opt-in (default off) for v0.14.0b8 — first config.toml in the aw-sync config dir #714

Description

@ErikBjare

Decision by Erik for v0.14.0b8: with #710 merged the daemon can pull, but it must not pull by default. 0.14 is push-only everywhere unless the user opts in — Android by design (ActivityWatch/aw-android#291), desktop because #711 (boundary re-import every pass) is unfixed and because sync v2 will replace pull with "read from the sync folder". Erik opts in on his own machine to test sync v1, the multidevice query, etc.

Requirement

  • One setting, one place: the daemon's pull is controlled by aw-sync's own config, not by aw-qt/aw-tauri launch arguments (they would drift). dirs::get_config_dir() already exists ({config}/activitywatch/aw-sync/, profile-aware, "TODO: add proper config support") — add the first config.toml there, e.g.
    # aw-sync config
    pull = false   # default; set true to import peers from the sync folder every pass
  • Default off ⇒ the daemon's pass is push-only (SyncMode::Push); pull = trueSyncMode::Both. An explicit --mode on the command line still wins.
  • aw-sync sync (the one-shot) is unaffected — it stays pull+push, that is how testers verify an import.
  • aw-sync status prints the effective mode and where the config was read from, and the feat(aw-sync): add status doctor command and fail-loud empty-pull warnings #687 "zero peers … layout problem" warning is suppressed when pull is off (there was no pull).
  • A missing file is created with the commented default on first daemon start, so users find the switch.

Tests: daemon pass with no config ⇒ Push; with pull = true ⇒ Both; --mode pull overrides a pull = false config.

Sequence agreed on ActivityWatch/activitywatch#1445: #712 → this → #711 → v2 (manifest + segment writer). The default flips when #711 is fixed, or is superseded by v2's read-from-staging.

cc @TimeToBuildBob

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions