Skip to content

Make cloud sync opt-in and gate collection on onboarding - #85

Merged
sagnik11 merged 1 commit into
mainfrom
autter/cli-sync-collection-bugs-95427a
Nov 7, 2026
Merged

sagnik11 merged 1 commit into
mainfrom
autter/cli-sync-collection-bugs-95427a

Conversation

@sagnik11

@sagnik11 sagnik11 commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Problem

  • "Cloud upload: off" while uploading. whoami / sync status / doctor treated sync as on only with prompt_storage != local and an HTTP notes backend. The metrics, commit-summary and transcript uploaders only checked prompt_storage != local. On a fresh install, running autter login without connected onboarding left the notes backend on git notes, so the status line said off while the daemon uploaded metrics, commit summaries and transcripts.
  • Collection before consent. Plain commands started the background service, the transcript worker swept all ~/.claude/projects history on startup, and telemetry was on unless telemetry_oss was set to "off".

Changes

  • One sync predicate. Config::platform_sync_enabled() and platform_sync_enabled_now() now share sync_mode_permits_upload: sync is on only when storage is not local and the notes backend is HTTP (or both). The status line uses the same function, so "off" means nothing is sent.
  • Login doesn't enable sync. Onboarding asks the connected/local question even when you're already signed in (for example via the install nonce). Outside connected mode, autter login no longer says "restarting to upload" or restarts the service.
  • No collection before onboarding.
    • The transcript worker starts only after onboarding is finished or connected mode is explicitly configured.
    • Plain commands connect to a running service but don't start one before setup.
    • doctor reports a stopped service as skipped instead of starting it.
    • Telemetry is off until telemetry_oss is "on".
  • Docs. README and data-privacy updated to match.
  • Tests. Fixtures that expect connected mode now use a shared connected_mode helper.

Behavior changes to note

  • Existing users who uploaded with prompt_storage: default but no HTTP notes backend will stop uploading until they run autter onboard --connect. Their status line already said "off".
  • Users who never answered the telemetry question now send no telemetry.

Not in this PR

  • Limiting the transcript sweep to repos the user opted into.
  • A regression test that whoami says "off" if and only if nothing is uploaded.

Lint, fmt and tests were not run locally; CI is the first check.

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

The status line and the uploaders used different rules for "is sync on".
whoami/sync status/doctor required prompt_storage != local AND an HTTP notes
backend, while metrics, commit summaries and transcript uploaders only checked
prompt_storage != local. A fresh install that ran `autter login` without
connected onboarding showed "Cloud upload: off" while uploading.

- One predicate for sync: Config::platform_sync_enabled() and
  platform_sync_enabled_now() share sync_mode_permits_upload (not local AND
  HTTP notes backend). The status line calls the same function.
- Login no longer turns on sync: onboarding asks the mode even when already
  signed in, and login stops promising/restarting for uploads when not
  connected.
- No collection before onboarding: the transcript worker (and its sweep of
  agent history) starts only after onboarding or explicit connected mode;
  plain commands and doctor no longer start the background service before
  setup; anonymous telemetry is off until telemetry_oss is "on".
- Docs and test fixtures updated (shared connected_mode test helper).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sagnik11
sagnik11 merged commit dede3cd into main Nov 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant