Skip to content

feat(connectors): implement control plane v2 - #2386

Draft
chovy-ai wants to merge 1 commit into
mainfrom
codex/remote-main-20260814
Draft

feat(connectors): implement control plane v2#2386
chovy-ai wants to merge 1 commit into
mainfrom
codex/remote-main-20260814

Conversation

@chovy-ai

Copy link
Copy Markdown
Contributor

Summary

Connector catalog refresh previously entered the lifecycle operation manager with an empty connector key, so it could conflict with unrelated installs. This breaking v2 change separates catalog synchronization from connector lifecycle work and makes operation recovery explicit.

  • replace incremental refresh operations with a versioned Last-Known-Good catalog snapshot
  • add long-poll delivery with immediate first pull and a 10-minute fallback
  • use connector-scoped revisions and explicit conflicting lock claims
  • persist accepted, running, outcome_unknown, recovering, completed, and failed operation states
  • use a fresh v2 SQLite schema with no v1 compatibility path
  • fail closed on revocation and schedule deterministic automatic uninstall
  • expose only the local Connector Market v2 API

Verification

  • node tools/scripts/generate-openapi.mjs --check
  • go test ./packages/connector/host ./packages/connector/daemon ./packages/connector/store-sqlite ./packages/connector/runtime ./services/tuttid/api
  • pnpm --filter @tutti-os/connector-market typecheck
  • pnpm --filter @tutti-os/connector-market test (57 passed)
  • pnpm --filter @tutti-os/client-tuttid-ts typecheck
  • pnpm --filter @tutti-os/desktop typecheck
  • pnpm check:changed -- --push-ready (30 lanes passed)

Fallback Three Questions

  • Source: long-poll delivery can be interrupted while a desktop is asleep, offline, or reconnecting.
  • Why source cannot fully fix it: the current delivery channel does not provide a durable per-device acknowledgement cursor.
  • Removal condition: remove the 10-minute fallback after delivery provides durable per-device cursors with monitored completeness.

Checklist

  • If this changes agent lifecycle, platform behavior, safety boundaries, or execution guarantees, I added or updated regression coverage.
  • I ran the focused tests/checks for the changed packages.
  • I updated architecture or protocol documentation where applicable.
  • I checked README variants; no translated README update is required.
  • I ran repository push-ready checks.
  • The commit includes a DCO Signed-off-by trailer.

Signed-off-by: chovy <zweybn@gmail.com>
@chovy-ai

Copy link
Copy Markdown
Contributor Author

Related rollout PRs: tutti-lab/tsh#2727 and tutti-lab/tsh-server#821.

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