Skip to content

Releases: neiromaster/enver

v0.9.2

Choose a tag to compare

@neiromaster neiromaster released this 11 Sep 13:51

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

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:46

Changelog

  • b474ae6 feat(npm): publish under @enver-go scope, add --no-provenance flag

v0.9.0

Choose a tag to compare

@neiromaster neiromaster released this 08 Sep 16:13

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

Choose a tag to compare

@github-actions github-actions released this 04 Sep 15:12

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

Choose a tag to compare

@neiromaster neiromaster released this 03 Sep 16:54

Changelog

  • 125b3df fix(xdg): prefer HOME over the platform home directory fallback

v0.8.1

Choose a tag to compare

@neiromaster neiromaster released this 30 Aug 11:47

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

Choose a tag to compare

@neiromaster neiromaster released this 29 Aug 06:42
ce884f3

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...
Read more

v0.7.0

Choose a tag to compare

@neiromaster neiromaster released this 23 Aug 06:58

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

Choose a tag to compare

@neiromaster neiromaster released this 22 Aug 15:23

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

v0.5.3

Choose a tag to compare

@neiromaster neiromaster released this 21 Aug 05:13

Changelog

  • 1d586d1 feat(remove): auto-clear default when deleting the default profile
  • 381851a feat(release): ship combined enver+enverx shell completions