@@ -4,7 +4,7 @@ All notable changes to envroll are recorded here. Format follows
44[ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) and this project
55adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7- ` cargo-dist ` reads this file during the release pipeline — the section
7+ ` cargo-dist ` reads this file during the release pipeline. The section
88under each ` ## [VERSION] ` heading becomes the GitHub release notes for
99that tag. Keep entries user-facing.
1010
@@ -17,7 +17,7 @@ that tag. Keep entries user-facing.
1717 and ` list ` . Click the GIF to open the MP4 with pause/scrub controls.
1818 Source tape lives at ` docs/demo.tape ` ; regenerate with
1919 ` vhs docs/demo.tape ` .
20- - ** Releases auto-publish to crates.io** on every ` vN.M.P ` tag push —
20+ - ** Releases auto-publish to crates.io** on every ` vN.M.P ` tag push:
2121 no more manual ` cargo publish ` . The new
2222 ` .github/workflows/publish-crates.yml ` workflow runs in parallel with
2323 cargo-dist's release pipeline and validates that the tag matches
@@ -29,7 +29,7 @@ that tag. Keep entries user-facing.
2929### Added
3030
3131- ** envroll is now on crates.io.** Install with ` cargo install envroll `
32- from any machine that has a Rust toolchain — no need to grab a
32+ from any machine that has a Rust toolchain. No need to grab a
3333 prebuilt binary or build from source. The published crate ships the
3434 same ` envroll ` binary the GitHub Releases pipeline produces.
3535
@@ -45,7 +45,7 @@ that tag. Keep entries user-facing.
4545 by release version. The old ` tests/v0_1_3_features.rs ` (which had
4646 already grown past v0.1.3 with v0.1.4's ` --install ` tests) is split
4747 into ` tests/completions.rs ` , ` tests/import_export.rs ` , and
48- ` tests/rename_key.rs ` . No behavioral change — same 27 tests, same
48+ ` tests/rename_key.rs ` . No behavioral change: same 27 tests, same
4949 coverage.
5050
5151### Note on versioning policy
@@ -54,7 +54,7 @@ This is the first release that follows the semver policy correctly for
5454a ` 0.x ` crate: ** new features get a MINOR bump** , not a PATCH. The
55550.1.0 → 0.1.5 history shipped multiple feature releases as patches
5656(basename project IDs, ` --target ` , completions, import/export,
57- rename-key, ` --install ` ) — those tags stay as published, but every
57+ rename-key, ` --install ` ). Those tags stay as published, but every
5858release from here on gets the right bump. Bug-fix-only releases will
5959be ` 0.2.x ` ; the next batch of features will be ` 0.3.0 ` .
6060
@@ -66,7 +66,7 @@ be `0.2.x`; the next batch of features will be `0.3.0`.
6666 remote get-url origin` is configured. ` git@github.com : acme /myapp.git`
6767 registers as ` myapp ` instead of the old ` remote-3a1b9c8d4e5f6a7b ` . As
6868 a side effect, ** multiple worktrees of the same repo now share their
69- envs automatically** — they all derive the same basename, so they all
69+ envs automatically** : they all derive the same basename, so they all
7070 point to the same vault entry. The old hash-prefixed format
7171 (` remote-<16hex> ` ) is gone for new projects; the full normalized URL is
7272 still persisted in the manifest's ` id_input ` field, so the rare
@@ -80,7 +80,7 @@ be `0.2.x`; the next batch of features will be `0.3.0`.
8080
8181### Migration note
8282
83- Pre-0.1.5 projects with ` remote-<hash> ` IDs keep working as-is — the ID
83+ Pre-0.1.5 projects with ` remote-<hash> ` IDs keep working as-is. The ID
8484is recorded in the manifest, not re-derived from the URL on every
8585command. To get the new pretty name on an existing project, either:
8686
@@ -94,12 +94,12 @@ command. To get the new pretty name on an existing project, either:
9494
9595### Added
9696
97- - ** ` envroll completions <shell> --install ` ** — one command that figures
97+ - ** ` envroll completions <shell> --install ` ** : one command that figures
9898 out the convention path for your shell, creates whatever directories
9999 are missing, writes the completion file, and (for shells that need it)
100100 appends a marker-guarded block to your shell's rc file so completion
101101 loads on next shell start. No sudo, no manual ` .zshrc ` editing.
102- Idempotent — re-running doesn't duplicate anything.
102+ Idempotent: re-running doesn't duplicate anything.
103103 - Supported shells: bash, zsh, fish, powershell, elvish.
104104 - The plain ` envroll completions <shell> ` form (print-to-stdout) still
105105 works for CI / container builds / users who want to wire it manually.
@@ -113,30 +113,30 @@ command. To get the new pretty name on an existing project, either:
113113### Fixed
114114
115115- Documentation no longer assumed ` /usr/local/share/zsh/site-functions/ `
116- exists by default — most fresh macOS installs don't have it. The
116+ exists by default. Most fresh macOS installs don't have it. The
117117 ` --install ` flow uses ` ~/.zsh/completions/ ` instead and creates the
118118 directory as needed.
119119
120120## [ 0.1.3] - 2026-05-01
121121
122122### Added
123123
124- - ** ` envroll completions <shell> ` ** — print bash / zsh / fish /
124+ - ** ` envroll completions <shell> ` ** : print bash / zsh / fish /
125125 powershell / elvish completion scripts to stdout. (See 0.1.4 for the
126126 one-command install variant.)
127- - ** ` envroll import <file> --as <name> ` ** — adopt an existing
127+ - ** ` envroll import <file> --as <name> ` ** : adopt an existing
128128 ` .env ` -style file lying around on disk as a new env in the current
129129 project. Onboarding accelerator: when a new contributor arrives with
130130 five legacy ` .env.dev ` / ` .env.staging ` / ` .env.bak.2024 ` files, they
131131 can now ` for f in .env.*; do envroll import "$f" --as "${f#.env.}"; done `
132132 instead of shuffling files in and out of ` ./.env ` .
133- - ** ` envroll export <env> [--output dotenv|json|shell] ` ** —
133+ - ** ` envroll export <env> [--output dotenv|json|shell] ` ** :
134134 anti-lock-in escape hatch. Decrypts a single env to stdout in one of
135- three formats: ` dotenv ` (the default — round-trips through ` import ` ),
135+ three formats: ` dotenv ` (the default, round-trips through ` import ` ),
136136 ` json ` (single object, ready to pipe into AWS Secrets Manager), or
137137 ` shell ` (POSIX-safe ` export KEY='...' ` lines, eval-able). Never
138138 masked.
139- - ** ` envroll rename-key OLD NEW [--in <env> | --all] [--force] ` ** —
139+ - ** ` envroll rename-key OLD NEW [--in <env> | --all] [--force] ` ** :
140140 rename a key (e.g. ` DATABASE_URL ` → ` DB_URL ` ) across one or every env
141141 in the project. Skips envs that don't contain ` OLD ` ; refuses on
142142 collisions unless ` --force ` .
@@ -151,7 +151,7 @@ command. To get the new pretty name on an existing project, either:
151151
152152### Added
153153
154- - ** ` envroll init --target <filename> ` ** — register a project with a
154+ - ** ` envroll init --target <filename> ` ** : register a project with a
155155 non-default working-copy filename. Designed for modern JS frameworks
156156 that read from ` .env.local ` (Next.js, Vite, Astro, Remix, Nuxt) or any
157157 other custom path (` application.env ` for Spring Boot, ` config/.env `
@@ -168,7 +168,7 @@ command. To get the new pretty name on an existing project, either:
168168### Fixed
169169
170170- Manifests created by 0.1.0 / 0.1.1 (which didn't have the field) are
171- fully backwards-compatible — serde defaults the field to ` .env ` so
171+ fully backwards-compatible: serde defaults the field to ` .env ` so
172172 existing vaults keep working.
173173
174174## [ 0.1.1] - 2026-05-01
@@ -180,7 +180,7 @@ command. To get the new pretty name on an existing project, either:
180180 - ` aarch64-apple-darwin ` (macOS Apple Silicon)
181181 - ` x86_64-apple-darwin ` (macOS Intel)
182182 - ` aarch64-unknown-linux-gnu ` (Linux ARM, e.g., Raspberry Pi 4+)
183- - ` x86_64-unknown-linux-gnu ` (Linux Intel/AMD — the common one)
183+ - ` x86_64-unknown-linux-gnu ` (Linux Intel/AMD, the common one)
184184 - ` x86_64-pc-windows-msvc ` (Windows)
185185- ** Curl / iwr installers** auto-generated by cargo-dist:
186186 - ` curl -LsSf https://github.com/AdriiiPRodri/envroll/releases/download/v0.1.1/envroll-installer.sh | sh `
@@ -191,23 +191,23 @@ command. To get the new pretty name on an existing project, either:
191191## [ 0.1.0] - 2026-05-01
192192
193193First public release. Single statically-linked Rust binary that
194- versions, switches, and encrypts environment variables — local -first,
194+ versions, switches, and encrypts environment variables. Local -first,
195195no SaaS, no daemon.
196196
197197### Added
198198
199199- ** Vault model** : encrypted age-scrypt blobs versioned via libgit2,
200200 living outside the project repo at ` ~/.local/share/envroll/ ` .
201201- ** Atomic env activation** : ` envroll use staging ` is a tempfile +
202- rename of ` ./.env ` 's symlink target — never half-written.
202+ rename of ` ./.env ` 's symlink target. Never half-written.
203203- ** Core verbs** : ` init ` , ` projects ` , ` list ` (` ls ` ), ` current ` , ` fork ` ,
204204 ` save ` , ` use ` , ` status ` , ` rename ` , ` rm ` , ` edit ` , ` log ` , ` diff ` ,
205205 ` get ` , ` set ` , ` copy ` , ` exec ` , ` remote {set,show,unset} ` , ` sync ` .
206206- ** Stable exit codes** (frozen 10–59 for v1.x, 60–99 reserved).
207207- ** ` --format json ` ** output on every read command, with stable schemas
208208 documented under ` docs/json-schemas/ ` .
209209- ** Threat model + recovery matrix** documented verbatim in
210- ` SECURITY.md ` and the README — passphrase loss = no recovery, by
210+ ` SECURITY.md ` and the README. Passphrase loss = no recovery, by
211211 design.
212212- macOS aarch64 binary (Linux + Windows added in 0.1.1).
213213
0 commit comments