| Commit message (Collapse) | Author | Age |
| ... | |
| | |
| |
| |
| |
| | |
git-subtree-dir: crates/atuin-nucleo
git-subtree-split: 4253de9faabb4e5c6d81d946a5e35a90f87347ee
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
| |
| |
| | |
Fix issue introduced by #3249. Nushell 0.112 will introduce the breaking
change; not 0.111.
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
I tried adding a windows arm64 build to the last release, which was
perhaps a little naive of me. I thought it working on x86 windows and
arm everything else would be enough đź’€
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
We were using buildjet as our runners previously, but it looks like they
have gone under. Luckily, GitHub now provides the arm runners we need
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
| |
* Run Atuin AI's `init` during main `init` for bash, zsh, and fish
* Note that logging into Hub will enable sync
* Add instructions for users with existing sync accounts
* Ensure daemon respects `auto_sync` setting
* Update docs on disabling Atuin AI
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
Listen to signals as well as state
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
## Summary
This PR enables the Atuin CLI to authenticate with Atuin Hub, unifying
authentication across CLI sync and Hub features (AI, runbooks, etc.).
### Key Changes
- **Dual auth support**: New `AuthToken` enum supports both `Bearer`
(Hub) and `Token` (legacy CLI) authentication
- **Smart protocol selection**: New `sync_protocol` setting
(`auto`/`hub`/`legacy`) determines auth method. By default,
`api.atuin.sh` uses Hub auth; custom sync addresses use legacy auth
- **Hub login flow**: `atuin login` now initiates an OAuth-like flow for
Hub users—generates a code, user authorizes in browser, CLI polls for
completion
- **Account linking**: After Hub auth, silently attempts to link
existing CLI sync account to Hub account for seamless migration
- **Graceful fallback**: `sync_auth_token()` prefers Hub token when
available, falls back to CLI session token
### Auth Flow
1. User runs `atuin login` (with default sync address)
2. CLI requests auth code from Hub, displays URL
3. User opens URL, logs in/registers on Hub
4. Hub attaches API token to code
5. CLI polls, receives token, saves as hub session
6. If user had existing CLI sync account, it's automatically linked
### Backward Compatibility
- Existing self-hosted users: unaffected (legacy auth via `Token`
header)
- Existing `api.atuin.sh` users: continue working with CLI session until
they run `atuin login`
- New users: go through Hub flow automatically
## Test Plan
- [ ] New user registration via Hub flow
- [ ] Existing CLI user can still sync without changes
- [ ] `atuin login` links CLI account to Hub account
- [ ] Self-hosted users unaffected by changes
- [ ] AI commands work after Hub auth
---------
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
| |
The flag for `job spawn` changed, which prevents the script from
compiling on Nushell 0.111+.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
| |
atuin-server used axum 0.7 while tonic already pulled in axum 0.8,
resulting in both versions compiled into the binary. Migrates to
axum 0.8: path params use {param} syntax, FromRequestParts uses
native async traits (dropping async-trait dep from atuin-server).
|
| |
|
|
|
|
| |
Our crates used thiserror 1.x while the ratatui ecosystem already
pulled in thiserror 2.x, resulting in both versions in the binary.
The API is compatible; this consolidates to a single version.
|
| |
|
|
|
| |
Adds strip = "symbols" to the cargo dist profile, removing debug
symbols and symbol tables from the release binary (~5MiB savings).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#3234)
It feels much, much nicer this way. This has also been asked for pretty
consistently since we made inline rendering the default. Now we can have
everything :)
Maintains a shadow vt100 renderer so that we can restore the terminal
state upon popup close. This happens on a background thread, so our
impact on terminal performance should still be super minimal, if
anything
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow `atuin search -i` to work in command substitution contexts like
`VAR=$(atuin search -i)`.
Previously this would fail with "The cursor position could not be read
within a normal duration" because stdout was captured by the subshell,
preventing terminal queries from working.
Changes:
- When stdout isn't a terminal, fall back to /dev/tty for TUI rendering
(Unix only)
- Force fullscreen mode in this case (inline mode requires cursor
position queries that don't work with captured stdout)
- Write the selected command to stdout (instead of stderr) when stdout
is captured, so it gets assigned to the variable
Fixes #3207
|
| |
|
|
| |
(#3235)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
violation (#3232)
The script store build() replays all records from the record store into
SQLite but never cleared the database first. Stale rows from previous
builds caused unique constraint violations on the name index when
scripts were renamed or recreated.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many users do not seem to read the docs. So, make the install script
handle most of the things that we include in the docs quickstart.
Ensures that the install script still functions as expected in
non-interactive environments - setup scripts, ci, etc. Offers a flag
just in case this check fails, to force non-interactive setup.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
| |
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.44
to 1.1.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bytecodealliance/rustix/releases">rustix's
releases</a>.</em></p>
<blockquote>
<h2>1.0.0</h2>
<p>This release introduces the <a
href="https://docs.rs/rustix/1.0.0/rustix/buffer/trait.Buffer.html"><code>Buffer</code>
trait</a>, which is used in <a
href="https://docs.rs/rustix/1.0.0/rustix/io/fn.read.html"><code>read</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/io/fn.pread.html"><code>pread</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.recv.html"><code>recv</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.recvfrom.html"><code>recvfrom</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/rand/fn.getrandom.html"><code>getrandom</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.readlinkat_raw.html"><code>readlinkat_raw</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/event/epoll/fn.wait.html"><code>epoll::wait</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/x86_64-unknown-freebsd/rustix/event/kqueue/fn.kevent.html"><code>kevent</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/x86_64-unknown-illumos/rustix/event/port/fn.getn.html"><code>port::getn</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.getxattr.html"><code>getxattr</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.lgetxattr.html"><code>lgetxattr</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.fgetxattr.html"><code>fgetxattr</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.listxattr.html"><code>listxattr</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.llistxattr.html"><code>llistxattr</code></a>,
and <a
href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.flistxattr.html"><code>flistxattr</code></a>,
and adds support for reading data into uninitialized buffers, as well as
safely reading data into the spare capacity of <code>Vec</code>s.</p>
<p>This release also simplifies the way network addresses are handled.
Instead of having separate functions with <code>_v4</code>,
<code>_v6</code>, <code>_unix</code>, <code>_xdp</code>, and now
<code>_netlink</code> suffixes, rustix now uses a <a
href="https://docs.rs/rustix/1.0.0/rustix/net/trait.SocketAddrArg.html"><code>SocketAddrArg</code>
trait</a> so that functions such as <a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.bind.html"><code>bind</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.connect.html"><code>connect</code></a>,
<a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.sendto.html"><code>sendto</code></a>,
and <a
href="https://docs.rs/rustix/1.0.0/rustix/net/fn.sendmsg_addr.html"><code>sendmsg_addr</code></a>
can accept any type of address, and are easier to extend to new address
types in the future.</p>
<p>And, this release simplifies the <code>ioctl</code> API, replacing
opcode wrapper types with const generics.</p>
<p>This updates several APIs to add Linux 6.13 features, and raw
linux-raw-sys types are no longer exposed in the public API, so it
should be easier to stay up to date with new Linux releases.</p>
<p>And many more new features, bug fixes, and cleanups. See the <a
href="https://github.com/bytecodealliance/rustix/blob/main/CHANGES.md#changes-from-038x-to-1x">CHANGES.md
file</a> for the full list of breaking changes.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/c4caf5caaa7e93828a2e4a4cdba1dd0171e45717"><code>c4caf5c</code></a>
chore: Release rustix version 1.1.4</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/5953a2c6bc7bc97c308a8e6a0fd4a8bf79997117"><code>5953a2c</code></a>
Prune pins in CI that are no longer needed. (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1588">#1588</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/9116c05d2eab3484748a629e72bdff17117c4f5b"><code>9116c05</code></a>
Bump dependencies (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1567">#1567</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/5ee0ca360f41b3699b7c543d1153e94c65988610"><code>5ee0ca3</code></a>
hurd: Fix l_type and l_whence types (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1569">#1569</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/89505893fc3b4b9b9a22625cd3a670f6d6cf2f44"><code>8950589</code></a>
Clobber vector registers and do not use preserves_flags in riscv64
syscalls (...</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/7b0d2ae013976c959627598c057644ae8922708e"><code>7b0d2ae</code></a>
Update pins for MSRV compatibility (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1585">#1585</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/99458d830840dafb8a8c5b8b54cf05beabc2e581"><code>99458d8</code></a>
feat(redox): <code>renameat</code> and <code>renameat_with</code> (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1586">#1586</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/a9c8dcbbb74df7a7c4ec6cf50629a810bab6500d"><code>a9c8dcb</code></a>
Remove reference to yanked crate in README.md (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1587">#1587</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/8bf15a0eb444087e4c3ed04e01ed488cc429af2d"><code>8bf15a0</code></a>
Drop custom makedev implementation for Redox (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1582">#1582</a>)</li>
<li><a
href="https://github.com/bytecodealliance/rustix/commit/74b886d40d7b5209a8d448550e4595e8e06158a1"><code>74b886d</code></a>
Update pins for MSRV compatibility (<a
href="https://redirect.github.com/bytecodealliance/rustix/issues/1584">#1584</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/bytecodealliance/rustix/compare/v0.38.44...v1.1.4">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bumps [dashmap](https://github.com/xacrimon/dashmap) from 5.5.3 to
6.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/xacrimon/dashmap/releases">dashmap's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.0</h2>
<ul>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/pull/308">xacrimon/dashmap#308</a></li>
</ul>
<h2>v6.0.1</h2>
<p>This is a patch release, now the main release for v6 as v6.0.0 was
yanked shortly after release.</p>
<p>Thanks to <a
href="https://github.com/JesusGuzmanJr"><code>@​JesusGuzmanJr</code></a>
for notifying me about a critical bug that was introduced so that I
could resolve it: <a
href="https://redirect.github.com/xacrimon/dashmap/issues/304">#304</a>.</p>
<p>PRs for this release: <a
href="https://redirect.github.com/xacrimon/dashmap/issues/305">#305</a>
+ <a
href="https://github.com/xacrimon/dashmap/commit/d5c8be6213ca85d7e3ccbcc1eb5b95651ce7e253">https://github.com/xacrimon/dashmap/commit/d5c8be6213ca85d7e3ccbcc1eb5b95651ce7e253</a></p>
<h2>v6.0.0</h2>
<p>This release contains performance optimizations, most notably 10-40%
gains on Apple Silicon but also 5-10% gains when measured in Intel
Sapphire Rapids. This work was accomplished in:</p>
<ul>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/303">#303</a></li>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/287">#287</a></li>
</ul>
<p>Minor QoL improvements were made in:</p>
<ul>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/302">#302</a></li>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/300">#300</a></li>
</ul>
<p>Special to the following contributors for making this release
possible:</p>
<ul>
<li><a
href="https://github.com/conradludgate"><code>@​conradludgate</code></a></li>
<li><a
href="https://github.com/arthurprs"><code>@​arthurprs</code></a></li>
<li><a
href="https://github.com/joshtriplett"><code>@​joshtriplett</code></a></li>
<li><a
href="https://github.com/dtzxporter"><code>@​dtzxporter</code></a></li>
</ul>
<h2>v6.0.0-rc.1</h2>
<p>This release contains performance optimizations, most notably 10-40%
gains on Apple Silicon but also 5-10% gains when measured in Intel
Sapphire Rapids. This work was accomplished in:</p>
<ul>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/303">#303</a></li>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/287">#287</a></li>
</ul>
<p>Minor QoL improvements were made in:</p>
<ul>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/302">#302</a></li>
<li><a
href="https://redirect.github.com/xacrimon/dashmap/issues/300">#300</a></li>
</ul>
<p>Special to the following contributors for making this release
possible:</p>
<ul>
<li><a
href="https://github.com/conradludgate"><code>@​conradludgate</code></a></li>
<li><a
href="https://github.com/arthurprs"><code>@​arthurprs</code></a></li>
<li><a
href="https://github.com/joshtriplett"><code>@​joshtriplett</code></a></li>
<li><a
href="https://github.com/dtzxporter"><code>@​dtzxporter</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/xacrimon/dashmap/commit/f2d248eb59fe4a06decd8b54a4365ef41400b73c"><code>f2d248e</code></a>
v6.1.0</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/da6ac5eab31165c57c8487fafd81ade9adb6d158"><code>da6ac5e</code></a>
Add typesize::TypeSize implementation for DashMap/DashSet (<a
href="https://redirect.github.com/xacrimon/dashmap/issues/308">#308</a>)</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/633aadbd812151a54a60b1845d48c312a2135a14"><code>633aadb</code></a>
v6.0.1</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/d5c8be6213ca85d7e3ccbcc1eb5b95651ce7e253"><code>d5c8be6</code></a>
add shrink_to_fit test</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/488dbfa908ada92551560991b0b8a0d17e6679f3"><code>488dbfa</code></a>
fix deadlock in shrink_to_fit (<a
href="https://redirect.github.com/xacrimon/dashmap/issues/305">#305</a>)</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/458238c114b5d21b26432ac620835166e07eb115"><code>458238c</code></a>
v6.0.0</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/1e3df1aa8eb1b2c266eac83765136f0d10d8e21d"><code>1e3df1a</code></a>
v6.0.0-rc.1</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/bdb86b03b4194a209094f146f250c9d9f62baa85"><code>bdb86b0</code></a>
Merge branch 'arthurprs-small-optimizations'</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/4cdfc396a35713afdb8feb7183b8ea57c100fbbe"><code>4cdfc39</code></a>
fix: merge errors</li>
<li><a
href="https://github.com/xacrimon/dashmap/commit/74b34f836d7aa65a1f11c86465c7a96a80346624"><code>74b34f8</code></a>
Merge branch 'small-optimizations' of github.com:arthurprs/dashmap into
arthu...</li>
<li>Additional commits viewable in <a
href="https://github.com/xacrimon/dashmap/compare/v.5.5.3...v6.1.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reduces memory usage of the atuin-daemon search index by ~80% through
string interning, compact UUID storage, and eliminating redundant data.
## Changes
* **Eliminate Vec\<Invocation\>**: Replaced the per-command
`Vec<Invocation>` with just `most_recent_id: [u8; 16]` and
`most_recent_timestamp: i64`. We only ever needed the most recent
history ID for search results - the full invocation history was never
used.
* **UUID byte storage**: Store UUIDs as `[u8; 16]` instead of 36-byte
strings, saving 40 bytes per UUID.
* **String interning with lasso**: Use `ThreadedRodeo` to deduplicate
`cwd` and `hostname` strings in the filter sets. These values are highly
repetitive (most commands run from a small set of directories on the
same host), so interning has an outsized effect.
* **DashSet → HashSet**: Since `CommandData` lives inside a `DashMap`
(already synchronized), the inner sets don't need their own locks.
Switched to `HashSet<Spur>` for directories/hosts and `HashSet<[u8;
16]>` for sessions.
* **Arc\<str\> for commands**: Changed the `commands` DashMap key and
`frecency_map` keys from `String` to `Arc<str>`, enabling zero-copy
sharing between the two maps.
* **Remove dead code**: Removed `CommandData.command` field that was
duplicating the DashMap key.
## Results
With 60k history entries, observed memory usage dropped from ~200MB to
~40MB.
|