Repository navigation
fix(cli): bind queued exports to collecting accounts - #94
Conversation
PASS+NOTES — independent CLI shipping verificationI did not author this patch. I verified the actual CLI on the current base and PR head using Poteto Shipping with the Codex adapter and control-cli. Cursor cloud was unavailable, so this was an independent local verification lane. GitHub CLI was used; Origin was unavailable.
Both checkouts built successfully with Actual CLI observations for collect A → interrupted upload → switch account/server to B → server sync: The base's invariant failure is expected and reproduces the original bug. The head blocks the foreign upload and preserves A's saved bytes. Head regression suite: No actionable behavioral/spec findings from independent source and caller review. Two non-blocking documentation notes remain: the public guarded Proof limits: these are actual local CLI executions with fake credentials/connectors and a fake HTTP server, not real provider, native-app, hosted-account, or production proof. No real credentials or provider accounts were used. No source/test files were changed. Both verification checkouts were clean after execution. This verdict applies only to the head and patch-id recorded above; the root shipping agent owns the final live checks and merge. |
## [0.41.2](v0.41.1...v0.41.2) (2026-10-11) ### Bug Fixes * **cli:** bind queued exports to collecting accounts ([#94](#94)) ([fa20249](fa20249))
|
🎉 This PR is included in version 0.41.2 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
An interrupted export collected under Account A could upload under B after switching both login and Personal Server. Recollecting under B could also overwrite A's accepted bytes.
Base:
main. PRs #92 and #93 are merged; this PR has no open PR dependencies.Bind each accepted export to its collecting Account deployment/address, exact file and SHA-256. Both runtimes write unique result paths. Save the receipt before uploading, and condition publication/settlement on the accepted export generation.
Deferred sync requires matching collection identity, reported server ownership and unchanged bytes. Conflicting or unattributed pending data stays local; manual sync exits 5 and automatic/scheduled collection reports
sync_pending. Returning to A can recover with an expired Account login and a valid Personal Server session without recollection.Tradeoff: one accepted export per source. B cannot recollect that source while A's export is unresolved. Legacy/unattributed exports remain inspectable and cannot be silently adopted. Fresh accountless upload and explicit destination consent remain scoped to that collection.
Verification:
pnpm validate: 844 tests pass, plus TypeScript, ESLint and formatting.pnpm preflight:cli: focused tests, build, formatting and isolated transcript generation. Local demo HTTP and native browser launches were disabled; this is not native or hosted proof.All export/upload fixtures are fake and local. No provider or real-account effects were used.