[feature] migration: carry the env vault's portable manifest in pb export / import - #4
Merged
Merged
Conversation
…est; import restores it, plan says pb env pull Also moves the env vault CHANGELOG entries from [0.2.0] (misfiled during a rebase — 0.2.0 shipped before the vault merged) into [Unreleased].
YJack0000
force-pushed
the
claude/env-vault-migrate-bundle
branch
from
August 13, 2026 17:25
c0f8479 to
9f7e43f
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
pb exportnow carries the project env vault's portable manifest;pb importrestores it;pb plantells you to rebuild values withpb env pull.Three exclusions are load-bearing and test-enforced:
pb env pull; the local layer is per-machine by definition (itslocal_namesare cleared both at export time and again byEnvRegistry::adopton import — belt and braces, separately tested)..pbx).Details: readable
Manifestgainsenv_projectsrecords (id, environments with synced-var counts andsynced_at, sync pin — no local-layer counts, no domain); import skips an existing project id with a note (never overwrites);pb planemits onepb env pull --project <id>item per linked project,auto: falsebecause the pull is only valid under the pinned infisical account (the item names it and thepb use infisical <email>fix); an unlinked project with a synced layer becomes an export-time gap. Old bundles without the section still import;BUNDLE_VERSIONunchanged (an old patchbay reading a new bundle drops the section silently — everything it names is rebuildable, so a refused bundle would be the worse trade).Also: moves the env vault CHANGELOG entries out of
[0.2.0](misfiled during a rebase — 0.2.0 shipped before the vault merged) into[Unreleased].Verification
cargo test --workspace: 598 passing (494 core / 73 cli / 30 mcp / 1 doctest; +13 for this change), clippy-D warningsclean. New tests cover the export round trip, both exclusions against raw bundle bytes, existing-id skip, dry-run, the plan item, and a payload with the section absent.