Repository navigation
Releases: neiromaster/enver
Releases · neiromaster/enver
Release list
v0.9.2
Changelog
- c3bd976 test(update): exercise the windows stale-lock recovery branch
- 0d52423 test(update): assert delegate is invoked on the failure path
- d9c3f17 fix(update): resolve go-install versions and scope brew detection
- 15c2368 fix(install): probe realpath -m support and document bash pipe
- a6dc99c feat(update): self-replace the binary with a platform lock
- 9ca862a feat(update): detect install method and delegate to the owning package manager
- b0e40cf feat(update): add semver helpers and GitHub release client
- 09ba43b feat(update): add enver update command with --check exit codes
- 9c6abad feat(install): add windows powershell installer script
- 741ed9a feat(install): add unix one-liner installer script
- cf9fe08 docs(install): align header comment with the bash pipe
- 35aeb02 chore(update): tidy go.mod so x/mod is a direct dependency
v0.9.1
Changelog
- b474ae6 feat(npm): publish under @enver-go scope, add --no-provenance flag
v0.9.0
Changelog
- 22d0a8a style(npm): add trailing newlines to shim, tests, and publish script
- 99eee52 style(ci): add trailing newline to shim job
- 86c6ae7 fix(release): derive npm dist-tag from version and harden publish idempotency
- de08958 fix(npm): use node 24 for trusted publishing and add repository to platform packages
- 790e97c fix(npm): propagate child signal and handle spawn errors
- 55f9953 fix(npm): forward signals exactly once and report interrupted runs loudly
- 5248d86 feat(npm): add publish-npm.sh release script
- a3540b4 feat(npm): add @neiromaster/enver meta package with bin shim
- 34e8ed1 ci: run shim tests in CI and make SIGINT test cross-platform
- 979d358 ci(release): publish to npm via trusted publishing
- 68da662 chore(deps): bump golang.org/x/crypto in the go group (#8)
- 2fb6661 chore(deps): bump actions/upload-artifact from 4 to 7 (#7)
v0.8.4
Changelog
- 9189d3c test(x): expect fork+wait delivery under GOCOVERDIR
- 987c709 test(runner): cover execChild spawn and exit-code paths
- 13038cf test(runner): correct execChild test comments
- 99bc4d9 test(e2e): pin the fallback destination and tidy ladder helpers
- 96263fd test(e2e): pin the config-home ladder rungs
- 8c13f7d test(e2e): mark the GOCOVERDIR reassignment as best effort
- 543b336 test(e2e): left-anchor the fallback hint assertion
- 9205c77 test(e2e): key the coverage opt-in on GOCOVERDIR
- 8622501 test(e2e): insert the -cover flag via slices.Insert
- 99617f0 test(e2e): build the binary instrumented when coverage is requested
- bd8fea4 test(app): pin the empty results as non-nil
- 9c1f7f4 test(app): implement sliceEq via slices.Equal
- 98e0a89 test(app): cover Chdir and MatchingProfiles
- 07366bd fix(runner): keep unix coverage counters by waiting instead of execve
- 9d354b3 fix(cover): keep unit covdata in set mode so the merge works
- 1ceac35 ci: run the coverage gate via make cover-gate
- 70e4592 ci: gate coverage on the merged unit+e2e profile
- 8d5fa06 ci: annotate gate failures and keep the coverage artifact on failure
- d23da69 chore(make): tidy coverage artifact handling
- 9b6c5ab chore(make): add a cover target feeding one shared covdata dir
v0.8.3
Changelog
- 125b3df fix(xdg): prefer HOME over the platform home directory fallback
v0.8.1
Changelog
- 050b7aa test(e2e): pin unset tombstones through the binary
- d6d7804 test(e2e): pin the tombstone round-trip through import
- 2295c9c refactor(envname): add SortedUnion
- fb60564 refactor(config): stamp carried fences with their declaring layer
- 9f1d2a0 refactor(config): let the final sweep own the no-tombstone invariant
- 9f25d15 refactor(cmd): extract text-styling primitives into style.go
- de5e41f fix(show): let a live key beat its tombstone
- 2343cb7 fix(show): derive the color gate from the output writer
- 4ac9553 fix(dotenv): round-trip tombstone rows through import
- c93e0ae fix(dotenv): count unset rows in the -o confirmation
- d779115 feat(show): colorize text output
- f20584e feat(dotenv): render unset keys as commented-out lines
- 83d5ef8 docs(cli): document the unsets map in show --format json
- 58816c6 build(test): always bypass the go test cache in make test
v0.8.0
Changelog
- c103099 test(xdg): build the ladder expectations with filepath.Join
- 0ff55e4 test(platform): pin windows unset fixes and shell passthrough
- 0fc8ddf test(keygen): pin loud failure when a forced scan hits a corrupt config
- 00f986d test(keygen): assert scan params next to salt check
- 399ca30 test(envname): pin Equal, Has, MatchesAny, and Valid
- 1dad511 test(e2e): pin list json output unmasked
- 019a754 test(e2e): pin extends chains and inherited unsets through the binary
- f8adb7f test(e2e): fix temp-dir leak and stale nolint marks, join paths, tighten completion assert
- 049d86f test(e2e): drop the dead cleanup defer in TestMain
- 3b7d96b test(e2e): drive layered unset scenarios through real dispatch
- 4a50d11 test(e2e): cover the x runner exit and env contracts
- c1971fe test(e2e): cover the crypto lifecycle
- 9eea488 test(e2e): cover read paths, layers, and defaults
- d9f16a2 test(e2e): cover noninteractive refusals and completion
- 1366450 test(e2e): cover import, remove, rename, and validate
- 451b0ee test(e2e): add black-box harness and smoke tests
- a588fdb test(config): pin crypt paths on absent and profileless configs
- 656110c test(cmd): parse command flags in the import and default tests
- aed23e4 test(cmd): execute the real-child x test in a helper process
- 932bace test(app): close final-review coverage gaps and unexport dead app exports
- d423bd8 refactor: unify sorting on slices and maps
- d080606 refactor: make MergedEnv pure and drop duplicated os.Environ snapshot
- 69123f2 refactor: extract envname leaf package from config
- 526ea8a refactor: dedupe the XDG config-home ladder into xdg.ConfigHome
- a9cd21d refactor: consolidate key resolution into app.ResolveKeyOrPrompt
- 2a54d76 refactor: comments resolve with values, old node walkers deleted
- 5ab7720 refactor(ui): replace sentinel MultiSelect with MultiSelectChecked
- 46cf287 refactor(ui): fold rowActive and selected into one theme field
- e763316 refactor(ui): derive ordered selection from the rank order
- be54df9 refactor(tui): env card enforces the identifier rule at submit
- 0d30e23 refactor(edit): compute the override key set once per session
- bc01423 refactor(crypto): slim key cache to v/salt/key
- 29b3bca refactor(crypto): drop the test-only EncryptValue wrapper
- 5715f86 refactor(config): writers read comments from Profile.Comments
- 2d97ead refactor(config): type Issue.Kind and Severity
- 12efa0a refactor(config): simplify UpsertProfile extends write and reuse writePath
- f58eebf refactor(config): resolve comments and values in one fold via Resolved
- 28ed6b2 refactor(config): one salt walker behind ScanCrypt
- 86fa73e refactor(config): one lenient node reader for missing and empty configs
- d1ee252 refactor(config): name the encrypt-side secret predicate ShouldEncrypt
- 454f3d6 refactor(config): drop the redundant comments return from ReadProfile
- e654ff6 refactor(config): detect extends cycles with errors.Is
- 87ad88e refactor(config): ReadProfile reads comments via decode path
- 7bb33fd refactor(cmd): sort with slices.SortFunc and cmp
- 8b56a30 refactor(cmd): route keygen through the app injection seams
- 8d930b6 refactor(cmd): name the write-target preamble and existence guard
- d1fb653 refactor(cmd): let RenameProfile own the already-exists rule
- 6619e11 refactor(app): promote the import core out of the command layer
- 9b77385 refactor(app): promote keygen with an ErrAborted sentinel
- ef54709 refactor(app): collapse load default resolve into ResolveDefault
- baf073d refactor(api): expose HasEnvKey, drop dead export, co-locate originLookup
- 1074093 refactor(add): load the write target through loadTarget
- cdef1fe fix: build releases outside the go workspace
- 9db4667 fix(tui): reject invalid env identifiers at key input
- 121110d fix(runner): pass the typed command name as argv[0] on Windows
- 820815f fix(list): mark unresolvable extends chains in text output
- 16d0882 fix(edit,add): show external extends seeds as picker rows
- 690aa55 fix(edit): match inherited and override keys through EnvKeyEqual
- bf746c0 fix(edit): harden the unset editor after code review
- cdae687 fix(edit): dim fenced rows in the inherited part of the edit menu
- 5f5b3c1 fix(edit): clear carried fences in the edit-menu probes too
- d61df2e fix(e2e): make the fence probe windows-safe
- 67079b7 fix(crypto): writer and reader share one KDF bounds check
- 26abbb1 fix(crypto): refuse re-encrypting a file whose values use a different salt
- 9f96ea8 fix(crypto): keygen verifies passphrase before the stranding gate
- 9876de0 fix(crypto): keygen passphrase check and profile-scoped salt guard
- b173172 fix(crypto): era-consistent KDF params, lazy keygen scan, salt conflicts
- 47f475d fix(crypto): enforce key cache version and build caches via NewKeyCache
- 2e9518a fix(crypto): encrypt joins the same-salt KDF era file-wide
- 52b5da6 fix(crypto): bound parsed KDF params and error echo
- d32f9f1 fix(crypto): actionable wrong-key errors for encrypt and decrypt
- 5012439 fix(config): validate env key names at load and write boundaries
- 65c979a fix(config): surface load errors from ValidateGlobal
- 5729736 fix(config): reject non-mapping roots on the write path
- a29cdac fix(config): make encrypt and decrypt fail loudly on broken input
- e4cc06c fix(config): make Merge clone instead of sharing state
- 7501c2b fix(config): inherited unset fence wins over redefinition; wholesale unset write
- 71eeba5 fix(config): fully redact short secrets in MaskValue
- 695d112 fix(config): contradictory-unset respects unset layer provenance
- 0101d58 fix(config): case-aware key overlay and dedup for Windows
- fa0fcde fix(config): carry self-consumed unsets against ancestors too
- b994d33 fix(config): carry chain-origin unsets across layers era-gated
- 7e7da84 fix(cmd): validate import extends against the merged view and refuse cycles
- 15f4a2c fix(cmd): unify destructive-confirm aborts into one exit-zero helper
- c6dbd6a fix(cmd): surface target-file load errors in add, edit, and default
- 7a9dc3d fix(cmd): resolve the add backdrop from the same view as the cycle check
- fb6c544 fix(cmd): rescue pending deletions when the edit picker aborts
- cf4ed8d fix(cmd): reject a profile argument combined with default --clear
- bb15e19 fix(cmd): refuse renames that would dangle extending profiles
- cc643bc fix(cmd): mask secret values in the edit menu listing
- 7e1e43b fix(cmd): complete existing profile names for add
- ce046d0 fix(cli): unset fence carried through expansion, export, list, and import
- 00347b0 fix(cli): list own-var count respects the inherited fence
- cbf258e fix(cli): import replace confirms fence wipe and reports fenced keys
- 1ac7245 fix(app): migrate app_test call sites to EncryptValueWithParams
- f01e47d fix(add): reject cyclic extends picks...
v0.7.0
Changelog
- 84fb128 tooling: pin lefthook v2.1.11 and golangci-lint v2.12.2 as go tools
- b3ed87d tooling: bump golangci-lint to v2.13.1
- 13d30d6 fix: make tests pass on the Windows CI matrix
- 2a261c1 fix: address code-review findings on keygen guard, JSON output, and --chdir
- bfa6357 fix(keygen): guard --force against destroying encrypted values
- 2ee0de7 feat: --chdir flag on enver and enverx
- f160c8c feat(show,list): add --format json output
- 53bd166 feat(config): mask and encrypt URL credentials (scheme://user:pass@)
- 1a8d293 ci: add windows-latest to the test matrix
- 37b4e86 build: bump go directive to 1.27.0
v0.6.0
Changelog
- 5526c9b fix(enverx): wire interactive passphrase recovery for detached runner
- 71f76e3 fix(crypto): validate key cache and salt length
- 524c349 fix(crypto): treat nil variadic salt element as no salt (v1)
- fc465f6 fix(build): adapt requireKey to ResolveKey's salt signature
- f1d268c feat(ui): hidden Password prompt
- 62ade16 feat(keygen): passphrase-based keygen with --random, recovery in requireKey
- 88a79e4 feat(crypto): argon2id passphrase KDF, enc:v2 format, key cache
- c103a52 feat(config): EncryptFile salt passthrough, FirstEncryptedValue
- 9c3a8bc feat(app): key resolution with salt, passphrase recovery fallback