Skip to content

Preserve newly created file identities through Change Set capture - #90

Draft
jerelvelarde wants to merge 3 commits into
mainfrom
fix/change-set-added-object-capture
Draft

jerelvelarde wants to merge 3 commits into
mainfrom
fix/change-set-added-object-capture

Conversation

@jerelvelarde

@jerelvelarde jerelvelarde commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

What changed

A Change Set that added a file could publish its bytes and then fail while finalizing history: general capture assigned an Object ID different from the proposal. Retain the proposed creation identities in the existing durable capture assignment, including recovery, so the new file keeps its identity in history and the next checkout.

Add public-CLI coverage for additions, mixed changes, interruption/retry, replay and next-session edits. Crash scenarios verify observable phase effects and recovery without the original staging. Include a reproducible local workflow and correct the SDK's first metadata-query example.

Fixes #78 for new transactions. Pending failed 0.7.2 transactions are not migrated by this patch; the documented characterization preserves their ordinary bytes and existing metadata for a separate recovery design.

Validation

Validation on source head 37ffaac7cb1eb37e5ba2a8bf4c05ff077a8d7df3:

  • macOS: CI/public naming policies, formatting and clippy with warnings denied passed.
  • Full workspace regression: 1,107 passed, zero failed, three ignored across 44 suites.
  • Standalone CLI JSON conformance, all advertised capability suites and runner self-tests passed, including the stronger observable crash assertions.
  • Fresh Cargo package extraction, source-sensitivity checks, outside-checkout installation and packed SDK consumer checks passed. Local setup required fetching the release tags omitted by the shallow clone and selecting the working project-local npm cache; no code or test contract was changed for those repairs.
  • GitHub CI passed Linux Core, fresh package installation, npm distribution, documentation and Rust quality gates. Cross-platform release checks were not run by this PR workflow.
  • Actual CLI workflow recording demonstrates the unreleased production-code candidate with synthetic files: creation/edit, replay, a fresh session, conflicting owner edit and separate-path recovery.

The verification document retains the earlier development/legacy characterization. No release has been published. Performance investigation is tracked separately in #91.

Risk

The identity binding is private to Change Set capture; portable schemas and public APIs do not change. Ordinary capture retains its existing identity assignment. This does not make multi-file publication simultaneously invisible to ordinary filesystem readers and does not claim hosted or live-database consistency.

@vercel

vercel Bot commented Sep 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
folderbase-docs Ignored Ignored Sep 14, 2026 11:47pm UTC

This branch has not been deployed

No deployments
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.

change-set apply omits newly added Object from final durable capture

1 participant