Skip to content

release: Document Sync Agent on-device validation #63

Description

@Adron

Summary

The Document Sync Agent (SyncAgent/) is built and tested — 53 passing tests including a read-only live check. The packaging pipeline embeds it at InterlinedList.app/Contents/Library/LoginItems/InterlinedListSync.app and registers it as an SMAppService.agent via Settings ▸ Document Sync.

What remains cannot be run headless: it needs a real Aqua session and a Developer ID signature. That makes it part of the release gate, not the feature backlog.

What the agent is

A bundled LSUIElement menu-bar utility that mirrors documents to a local Markdown folder (the Obsidian use case). It reads the bearer token from the shared Keychain group $(AppIdentifierPrefix)com.interlinedlist.shared, so it syncs with no separate sign-in. Correlation uses xattr plus path.

Validation checklist

  • Menu-bar GUI smoke — status item appears, Preferences window opens and behaves.
  • Full notarized .pkg install path, end to end:
    • Install the .pkg on a clean machine
    • SMAppService.agent registration succeeds and is visible in System Settings ▸ Login Items
    • The running agent reads the bearer token from the shared Keychain group
    • It syncs with no separate sign-in
    • Confirm the legacy-token → shared-group migration path for a machine that had an older build
  • Exercise the live write paths once — create, update, delete. They share the request-building and envelope decoder that the read paths already cover, but they have never been run against production.

Two things worth deciding while validating

  1. Per-machine settings belong on the server now. /help/app-settings describes per-machine settings as exactly this case — a sync folder path is meaningful on one machine only. The agent's configuration is a natural first tenant for the Applications settings work. Not a blocker for validation, but decide whether it lands before or after the release cut.
  2. Account switching. If multi-account switching is ever built, a running agent mirroring one account's documents to a local folder needs an explicit answer for what a switch means. Flagged in that spike; noted here so the agent's owner sees it.

Acceptance criteria

  • Every box above ticked on a real machine with a notarized build.
  • Any defect found is filed separately rather than fixed silently inside the validation pass.

Notes

work-consolidation.md §3b. Blocked on the release issue producing a signed .pkg — sequence them together.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions