Release v18.0.0

Please read the full release notes here!

Changelog

Bug Fixes

  • Prevent input to be interpreted as options for zsh autosuggestions (#1506)
  • Avoid unexpected atuin history start for keybindings (#1509)
  • Prevent input to be interpreted as options for blesh auto-complete (#1511)
  • Work around custom IFS (#1514)
  • Fix and improve the keybinding to up (#1515)
  • Fix incorrect timing of child shells (#1510)
  • Disable musl deb building (#1525)
  • Work around bash < 4 and introduce initialization guards (#1533)
  • Set umask 077 (#1554)
  • Disables unix specific stuff for windows (#1557)
  • Fix invisible tab title (#1560)
  • Shorten text, use ctrl-o for inspector (#1561)
  • Integration on older fishes (#1563)
  • Save sync time when it starts, not ends (#1573)
  • Print literal control characters to non terminals (#1586)
  • Escape control characters in command preview (#1588)
  • Use existing db querying for history list (#1589)
  • Add acquire timeout to sqlite database connection (#1590)
  • Update repo url in CONTRIBUTING.md (#1594)
  • Dedupe was removing history (#1610)
  • Only escape control characters when writing to terminal (#1593)
  • Strip control chars generated by \[\] in PS1 with bash-preexec (#1620)
  • Check for format errors when printing history (#1623)
  • Skip padding time if it will overflow the allowed prefix length (#1630)
  • Never overwrite the key (#1657)
  • Erase the prompt last line before Bash renders it
  • Erase the previous prompt before overwriting
  • Support termcap names for tput (#1670)
  • Set durability for sqlite to recommended settings (#1667)
  • Correct download list for incremental builds (#1672)
  • Add Settings::utc() for utc settings (#1677)

Documentation

  • Add repology badge (#1494)
  • Add forum link to contributing (#1498)
  • Refer to image with multi-arch support (#1513)
  • Remove activity graph
  • Fix Destination file already exists in Nushell (#1530)
  • Clarify enter/tab usage (#1538)
  • Improve style (#1537)
  • Remove old docusaurus (#1581)
  • Mention environment variables for custom paths (#1614)
  • Create pull_request_template.md (#1632)
  • Update CONTRIBUTING.md (#1633)

Features

  • Enable enhanced keyboard mode (#1505)
  • Rework record sync for improved reliability (#1478)
  • Include atuin login in secret patterns (#1518)
  • Add redraw (#1519)
  • Make it clear what you are registering for (#1523)
  • Support high-resolution timing even without ble.sh (#1534)
  • Add extended help (#1540)
  • Add interactive command inspector (#1296)
  • Vim mode (#1553)
  • Add better error handling for sync (#1572)
  • Add history rebuild (#1575)
  • Introduce keymap-dependent vim-mode (#1570)
  • Make deleting from the UI work with record store sync (#1580)
  • Add metrics counter for records downloaded (#1584)
  • Make cursor style configurable (#1595)
  • Make store init idempotent (#1609)
  • Don’t stop with invalid key (#1612)
  • Add registered and deleted metrics (#1622)
  • When in vim-normal mode apply an alternative highlighting to the selected line (#1574)
  • [breaking ] Bind the Atuin search to “/” in vi-normal mode (#1629)
  • Update widget names (#1631)
  • Make history list format configurable (#1638)
  • Add change-password command & support on server (#1615)
  • Automatically init history store when record sync is enabled (#1634)
  • Add store push (#1649)
  • Reencrypt/rekey local store (#1662)
  • Add prefers_reduced_motion flag (#1645)
  • Add verify command to local store
  • Add store purge command
  • Failure to decrypt history = failure to sync
  • Add store push --force
  • Add store pull
  • Disable auto record store init (#1671)
  • Add progress bars to sync and store init (#1684)

Miscellaneous Tasks

  • Remove the teapot response (#1496)
  • Schema cleanup (#1522)
  • Update funding (#1543)
  • Make clipboard dep optional as a feature (#1558)
  • Add feature to allow always disable check update (#1628)
  • Use resolver 2, update editions + cargo (#1635)
  • Disable nix tests (#1646)
  • Set ATUIN_ variables for development in devshell (#1653)
  • Use github m1 for release builds (#1658)
  • Re-enable test cache, add separate check step (#1663)
  • Run rust build/test/check on 3 platforms (#1675)

Refactor

  • Use enum instead of magic numbers (#1499)
  • String → HistoryId (#1512)
  • Refactor and localize HISTORY => __atuin_output (#1535)
  • Refactor vim mode (#1559)
  • Refactor handling of key inputs (#1606)

Styling

  • Use consistent coding style (#1528)

Testing

  • Add multi-user integration tests (#1648)

Stats

  • Misc improvements (#1613)

New Contributors

A special thank you to everyone who contributed for the first time as part of this release!

2 Likes

I absolutely love the new inspector with the delete command option. I had several incorrectly typed commands (with typos etc.) that I run repeatedly (unintentionally) due to them being shown close to the top results found with fuzzy search. Deleting these commands one by one manually with the atuin search --delete command option would be too time-consuming. But deleting them with the inspector is a breeze. I suppose a bit too much of a breeze… A confirmation dialog pop-up Do you really want to remove command\n <xyz>\n from the history? [Enter/Esc] would probably be useful, but other than that, marvellous.

Vim mode works great as well. Migration to using records with encrypted database was painless. And look at all those additional features, fixes, and contributions. Wonderful release. Good job, everyone involved :heart:

I’m also digging the inspector, woo neat :sunglasses: . v18 didn’t seem to detect my vimness automatically (fish_key_bindings set to fish_vi_key_bindings), but love that slapping vim-normal or vim-insert into config works as advertised :tada: .

For the inspector, my fingers wanted to hit some buttons (maybe ctrl-p/ctrl-n) to move around in history. And maybe have a way to look at stats of a base command with some/all arguments removed. I don’t know how relevant that is as feedback, but in its current state the inspector is already good fun. Thanks!

1 Like

Thanks for the feedback!

The inspector will defo be getting a few changes, so I’ll bear that in mind :pray: