github fishi0x01/vsh v1.0.0

5 hours ago

ENHANCEMENTS:

  • concurrent recursive operations for cp, mv and rm via goroutine pool, tunable with --worker-count flag (default: 10) (#126)
  • update README and add make demo target to generate demo gif (#127)
  • require -r flag for recursive cp and rm operations on directories (#128)
  • replace unmaintained c-bata/go-prompt with charmbracelet/bubbletea for a richer interactive TUI: styled completion dropdown with selection marker, stable prompt prefix colour, history navigation, and a braille spinner during long-running operations (#139)
  • prompt confirmation before recursive rm -r in interactive mode; use -f to skip the prompt (#140)
  • concurrent reads for grep and replace (find phase) and concurrent writes for replace, tunable with --worker-count flag (default: 10) (#142)

BUG FIXES:

  • fix add using unresolved relative path when cwd is set via VAULT_PATH (#131)
  • fix variable shadowing in SetData causing KV2 branch to be dead code (#132)
  • fix concurrency and error handling issues: cache race condition, swallowed errors in recursive operations, logger data race, and resource leak in debug logging (#133)
  • fix ls <arg> from root incorrectly listing all backends when argument is not a valid path (#136)
  • fix rm -r confirmation prompt garbled by spinner; fix spurious blank lines between completion dropdown entries (#141)
  • fix add and replace confirmation prompts garbled by spinner (#142)

DEPENDENCIES:

  • set CGO_ENABLED=0 in make compile-releases to guarantee truly static release binaries (#139)
  • bump Go to 1.26 and update dependencies (#134)
  • remove notokenhelper release variant — inline token helper logic into main.go (#135)
  • replace c-bata/go-prompt with charmbracelet/bubbletea, charmbracelet/bubbles, and charmbracelet/lipgloss (#139)

REFACTORING:

  • move cli, client, completer, log packages under internal/ to prevent unintended external imports, rename log package to logger to avoid shadowing stdlib, and replace package-level globals in main.go with an app struct (#137)

Don't miss a new vsh release

NewReleases is sending notifications on new releases.