Skip to content

Releases: atuinsh/atuin

v18.0.1

12 Feb 08:39
1464cb6
Compare
Choose a tag to compare

Patch release - fixing an issue with enhanced keyboard mode. Thanks @candrewlee14!

What's Changed

New Contributors

Full Changelog: v18.0.0...v18.0.1

v18.0.0

09 Feb 12:53
5738d06
Compare
Choose a tag to compare

Please see the full release notes here: https://blog.atuin.sh/release-v18/

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

Full Changelog: https://github.com/atuinsh/atuin/compa...

Read more

v17.2.1

03 Jan 15:52
9f79a34
Compare
Choose a tag to compare

Bug Fixes

  • Typo with default config (#1493)

Full Changelog: v17.2.0...v17.2.1

v17.2.0

03 Jan 12:48
999a98c
Compare
Choose a tag to compare

Release v17.2.0 is out now! Thank you to all contributors, new and old ❤️

We have always recommended that self-hosters keep their servers up to date. From this point forwards, this is now enforced. If clients are running a newer major version of Atuin than the server, they will not sync.

See more: https://forum.atuin.sh/t/release-v17-2-0/36

Community

Self hosting

There's a small issue with this release, currently fixed in v17.2.1

#1493

The TLS config defaults are not quite setup properly, so self hosted users will need to add

[tls]
enable = false
cert_path = ""
pkey_path = ""

to their config.

Bug Fixes

  • Fix typo (#1439)
  • Don't require all fields under [stats] (#1437)
  • Disallow deletion if the '--limit' flag is present (#1436)
  • Respect ZSH's $ZDOTDIR environment variable (#1441)
  • Fix loss of the last output line with enter_accept (#1463)
  • Ignore struct_field_names (#1466)
  • Improve the support for enter_accept with ble.sh (#1465)
  • Discord link expired
  • Discord broken link
  • Fix small issues of enter_accept for the plain Bash (#1467)
  • Time now_local not working
  • Fix quirks on search cancel (#1483)
  • Zsh_autosuggest_strategy for no-unset environment (#1486)
  • Fix error by the use of ${PS1@P} in bash < 4.4 (#1488)
  • Zsh use a special format to escape some characters (#1490)

Documentation

  • Add actuated linkback
  • Add link to forum
  • Align setup links in docs and readme (#1446)
  • Add Void Linux install instruction (#1445)
  • Add fish install script (#1447)
  • Correct link
  • Fix light/dark mode logo
  • Use picture element for logo
  • Add docs for zsh-autosuggestion integration (#1480)
  • Remove stray character from README
  • Update logo (#1481)

Features

  • Add semver checking to client requests (#1456)
  • Add TLS to atuin-server (#1457)
  • Integrate with zsh-autosuggestions (#1479)
  • Support high-resolution duration if available (#1484)
  • Provide auto-complete source for ble.sh (#1487)

Miscellaneous Tasks

  • Remove issue config (#1433)
  • Remove issue template (#1444)

Refactor

  • Factorize __atuin_accept_line (#1476)
  • Refactor and optimize __atuin_accept_line (#1482)

New Contributors

Full Changelog: v17.1.0...v17.2.0

v17.1.0

10 Dec 13:12
da2e58f
Compare
Choose a tag to compare

Bug Fixes

  • Initial list of history in workspace mode (#1356)
  • Add Appkit to the package build (#1358)
  • Bind in the most popular modes (#1360)
  • Only trigger up-arrow on first line (#1359)
  • Clean up the fish script options (#1370)
  • Use fish builtins for enter_accept (#1373)
  • Make atuin account delete void session + key (#1393)
  • New clippy lints (#1395)
  • Accept multiline commands (#1418)
  • Reenable enter_accept for bash (#1408)
  • Respect ZSH's $ZDOTDIR environment variable (#942)

Documentation

  • Update sync.md (#1409)
  • Update Arch Linux package URL in advanced-install.md (#1407)
  • New stats config (#1412)

Features

  • Add a nixpkgs overlay (#1357)
  • Add metrics server and http metrics (#1394)
  • Add some metrics related to Atuin as an app (#1399)
  • Allow configuring stats prefix (#1411)
  • Allow spaces in stats prefixes (#1414)

Miscellaneous Tasks

  • Update to sqlx 0.7.3 (#1416)
  • cargo update (#1419)
  • Update rusty_paseto and rusty_paserk (#1420)
  • Run dependabot weekly, not daily (#1423)
  • Don't group deps (#1424)
  • Add contributor image to README (#1430)
  • Setup git cliff (#1431)

Other

New Contributors

Full Changelog: v17.0.1...v17.1.0

v17.0.1

28 Oct 19:30
2959891
Compare
Choose a tag to compare

A few small issues were found with enter_accept after releasing - patch release to sort them out

Thanks @arcuru for fixing a bunch of things!

What's Changed

New Contributors

Full Changelog: v17.0.0...v17.0.1

v17.0.0

26 Oct 07:16
1a20afe
Compare
Choose a tag to compare

A new release! Thank you so much to everyone that contributed

Self hosted changes

We are no longer building docker images for main, and all images are now tagged either by release (17.0.0) or by short commit sha (1a20afe).

We advise that users stick to running tagged releases, and do not track an unstable branch. If you wish to run potentially unstable and unreleased code, then please do watch the repo and keep your install up to date!

We now also build docker images for ARM! This has been an issue for a long time for us, as GitHub does not provide ARM runners + emulation is very very slow. Thank you so much to @alexellis and @self-actuated for helping us out there!

enter_accept and keybinding changes

For a long time, we have been asked about Atuin requiring two enter presses - once to select the search item, and then once more to run it from your shell. While some users were happy with this, many felt that the additional keypress slowed them down unnecessarily.

v17 introduces the enter_accept config option. If set to true, pressing enter will immediately select and execute the search result selected. If you'd rather select the item and then edit it in your shell, you can press tab instead.

This is enabled by default for new users only. Existing users will need to edit their config. Currently, this does not support NuShell.

We have also temporarily disabled the "up" arrow keybinding by default for NuShell, while awaiting an upstream fix, see #1329 for more.

What's Changed

New Contributors

Read more

v16.0.0

07 Aug 10:35
0d5332a
Compare
Choose a tag to compare

Announcing a new release of Atuin! v16 is out now.

This has been an interesting one. Two pretty core parts of the Atuin sync have
remained the same for the past couple of years, and performed better than I
ever anticipated. I'd always intended to replace the sync, but initially just
released something that worked "fine".

We've had issues though. In some rare circumstances, sync just won't complete.
In others, it requires atuin sync -f, which attempts to upload/download all
history again in case some has been missed. As we grow, it becomes increasingly
important that we revisit sync and ensure it is as reliable as possible - with
lots of users, "rare" circumstances happen more often.

In this release we're introducing the "key value store". This is a new feature,
built on top of new sync and new cryptography.

The reasoning behind this is two-fold - we'd like to extend Atuin's sync and
storage capabilities, but also build a sync protocol we can truly rely upon.

Conrad did an excellent job explaining the
crypto
we are using for this feature,
and I'll be following up with a similar post about the new sync protocol soon!

The goal here is to first prove that this crypto + sync are stable and
scalable, and then switch history sync over. Once done, we should be syncing
history much faster, with fewer errors, and with less data transferred. Your
data will also be kept safe with newer crypto algorithms, and we will have the
ability to upgrade and replace them as needed.

Community

kv store

So first! Atuin v16 adds a kv store. This can be used for storing small
snippets of text and syncing them encrypted across machines. Env, small shell
scripts, whatever you can fit into 100KiB. After a sync, all kv pairs you set
will be available across machines.

Presently this should be considered "beta". Data loss is unlikely, and it has
been tested pretty thoroughly. However we don't make any promises for the
longer-term life or scalability of this, and you probably don't want to go
putting production secrets in there. There are many improvements we can make
to performance and user experience here.

We will also be using it to generally enhance Atuin (eg, synced config, host
aliases, etc). With v17, we hope to polish this off and release it fully.

Please do give it a try and let us know what you think!

# set foo = bar
atuin kv set -k foo bar

# kv supports namespaces
# set foo = bar in the "nsp" namespace
atuin kv set -n nsp -k foo baz

atuin kv get foo => prints "bar"

atuin kv get -n nsp foo => prints "baz"

# run sync to ensure you are up to date
atuin sync

Workspaces

Atuin now has workspaces! This is a pseudo filter-mode, which automatically
enables when you are in a git repository.

To enable workspaces, try

workspaces = true

in your Atuin config. With workspace filtering enabled, Atuin will filter for
commands executed in any directory within a git repo tree! Filtering modes can
still be cycled with ctrl-r.

Self hosted

This release runs database migrations on both the client and the server, though
nothing touching the history tables. No dependency versions have changed.

GitHub org

Atuin now lives in an org! The project has grown a lot since I first released
it back in 2021, and it's reached the point where an org makes more sense. Please ensure
you update any references to https://github.com/atuinsh/atuin!

ARM Builds

For a long time, Atuin has lacked aarch64 builds, which has been in demand
(especially for M1 mac). Cross compilation was never very reliable for us, but
GitHub actions does not offer runners for ARM.

For this release I bought an older M1 mac, which is now setup as a runner on
the main branch. All future releases will have ARM binaries available.

Growth stats

Atuin sync continues to grow! api.atuin.sh, at time of writing:

  • serves 2300 registered users
  • stores 27m (or 35GiB) of shell history
  • averages around 100,000 new lines of history per day
  • sees 40 signups per week
  • gets 1200 MAU, 1000 WAU, and 800 DAU

This data is gathered only from what we can infer from usage patterns, which
are tracked in order to prevent abuse. Your data is end-to-end encrypted and
can only be read by you.

Full changelog

Read more

v15.0.0

28 May 18:41
9e3fa8b
Compare
Choose a tag to compare

Announcing a new release of Atuin! v15 is out now. This release is not particularly feature-heavy, instead we have focused on a number of bugfixes and improvements - with lots of new shiny things planned for v16.

Community

Sync changes

For the first time in a long while, we have made an adjustment to how sync functions. In the longer term, we intend on replacing our current sync algorithm with something that better handles consistency, but v15 should at least ship some performance improvements.

Older versions of Atuin used a fixed page size of 100. This meant that for each request, we could only upload or download 100 history items at a time. For larger histories, this meant a lot of HTTP requests + a fairly slow sync.

Atuin v15 ships a variable page size, defaulting to 1100. This is configurable on the server, via the page_size parameter. A smaller number of larger requests generally performs better in our testing.

For self hosted servers, please note that reverse proxies may require configuration changes to allow for larger requests.

What's Changed

New Contributors

Full Changelog: v14.0.0...v15.0.1

v14.0.1

16 Apr 11:32
7c07907
Compare
Choose a tag to compare

Releasing this now to get some fixes out - will write proper notes including this for v15 :)

Please note that this release had some issues with the binary builds, and as such they were delayed. Apologies for any issues caused!

Also - the deb build was based on a very slightly different branch, patch-deb. This included some fixes so that the package built correctly. It has no changes in the actual binary.

What's Changed

New Contributors

Full Changelog: v14.0.0...v14.0.1