machines2windows and wsl treated separately
data planegitsource bytes stay in remotes
local truthsqlitewatcher queue and idempotency ledger
commandsleasedat-least-once execution semantics
Provider Readiness
ClerkVITE_CLERK_PUBLISHABLE_KEY
missing envConvexclient url loaded
configuredR2devdrop-dev, devdrop-artifacts
plannedEarly Test Machines
wsl-devlinux / wsl
/home/aadi/L-Projects/devdrop_syncready for initwindows-devwindows
D:\Aadi\W-Projects\devdrop_syncseparate machine identityCommand Surface
devdrop initgenerate .devdrop policy and workspace filesdevdrop pullmaterialize a workspace skeleton on another machinedevdrop daemon statusreport local daemon and provider healthContract Primitives
Machineidentity, roles, heartbeat, revocation
Workspacecanonical root, membership, policy version
Commandleased operation with idempotency key
WipSnapshotcontent-addressed dirty state bundle
Policypath decisions for sync, rebuild, secret, lazy blob
No raw recursive sync.The daemon publishes debounced state to Convex, while Git and R2 move content only through explicit policy decisions.