mirror of
https://github.com/atuinsh/atuin.git
synced 2026-10-11 22:29:51 +00:00
Release 18.23.0 ### Bug Fixes - *(common)* Sleep before each backoff attempt ([#4129](https://github.com/atuinsh/atuin/issues/4129)) - *(common)* Include the cause in the sqlite pool creation error ([#4185](https://github.com/atuinsh/atuin/issues/4185)) - *(docs)* Resolve atuin.sh self-hosting link 404 + tidy 404 page ([#4194](https://github.com/atuinsh/atuin/issues/4194)) - *(hook)* Accept a string tool_response from codex ([#4171](https://github.com/atuinsh/atuin/issues/4171)) - *(pty-proxy)* Resolve zsh --shell to an absolute path with :c ([#4097](https://github.com/atuinsh/atuin/issues/4097)) - *(wrapped)* Command Evolution ignoring common_prefix ([#4148](https://github.com/atuinsh/atuin/issues/4148)) - Clarify migration errors caused by conflicting Atuin versions ([#4173](https://github.com/atuinsh/atuin/issues/4173)) - Restart the daemon when enabling output capture ([#4215](https://github.com/atuinsh/atuin/issues/4215)) ### Documentation - Remove msrv chip ([#4112](https://github.com/atuinsh/atuin/issues/4112)) - Slightly more pleasant help UX ([#4111](https://github.com/atuinsh/atuin/issues/4111)) - Clarify atuin-client vs atuin-common crate placement ([#4192](https://github.com/atuinsh/atuin/issues/4192)) ### Features - *(atuin-common)* Cross-platform free-space probing for disk limits ([#4122](https://github.com/atuinsh/atuin/issues/4122)) - *(atuin-common)* Add HighlightedText type with proto conversion ([#4123](https://github.com/atuinsh/atuin/issues/4123)) - *(atuin-common)* Add generic SQLite FTS5 helper ([#4124](https://github.com/atuinsh/atuin/issues/4124)) - *(atuin-daemon)* Full-text search index over captured output ([#4145](https://github.com/atuinsh/atuin/issues/4145)) - *(common)* Add fs::tree_watcher directory watcher utility ([#4188](https://github.com/atuinsh/atuin/issues/4188)) - *(common)* Generic file-tail and jsonl-tail utilities ([#4186](https://github.com/atuinsh/atuin/issues/4186)) - *(common)* SqliteObserver for cross-process SQLite change observation ([#4195](https://github.com/atuinsh/atuin/issues/4195)) - *(config)* Accept unit-aware durations in config ([#4128](https://github.com/atuinsh/atuin/issues/4128)) - *(harnesstools)* Generic AI session-capture interface ([#4191](https://github.com/atuinsh/atuin/issues/4191)) - *(mcp)* Add atuin_output_search tool ([#4157](https://github.com/atuinsh/atuin/issues/4157)) - *(search)* Allow repeated exit-code filters ([#4132](https://github.com/atuinsh/atuin/issues/4132)) - Improve `atuin_common::ansi::to_plain_text` ([#4101](https://github.com/atuinsh/atuin/issues/4101)) - Full-text search over captured command output ([#4126](https://github.com/atuinsh/atuin/issues/4126)) - Json and ndjson output styles for `output search` ([#4158](https://github.com/atuinsh/atuin/issues/4158)) - AI Session Capture Daemon Interface ([#4184](https://github.com/atuinsh/atuin/issues/4184)) - Add easy config shortcuts ([#4213](https://github.com/atuinsh/atuin/issues/4213)) ### Miscellaneous Tasks - *(atuin-common)* Remove eyre in favor of thiserror ([#4103](https://github.com/atuinsh/atuin/issues/4103)) - *(output-capture)* Reconcile can no longer crash ([#4153](https://github.com/atuinsh/atuin/issues/4153)) - Replace daemonize with daemonix ([#4099](https://github.com/atuinsh/atuin/issues/4099)) - Bump sysinfo to 0.39.6 ([#4102](https://github.com/atuinsh/atuin/issues/4102)) - Lower MSRV to 1.95 ([#4100](https://github.com/atuinsh/atuin/issues/4100)) - Remove eyre from atuin-domain ([#4107](https://github.com/atuinsh/atuin/issues/4107)) - Ban eyre from atuin-history ([#4108](https://github.com/atuinsh/atuin/issues/4108)) - Remove eyre from atuin-pty-proxy ([#4110](https://github.com/atuinsh/atuin/issues/4110)) - Less strict versions ([#4143](https://github.com/atuinsh/atuin/issues/4143)) - Cut build-job time ([#4182](https://github.com/atuinsh/atuin/issues/4182)) - Give integration-test root-disk headroom + disk telemetry ([#4208](https://github.com/atuinsh/atuin/issues/4208)) - Sccache + Depot cache for integration-test ([#4211](https://github.com/atuinsh/atuin/issues/4211)) ### Performance - *(atuin)* Avoid clone on keystroke ([#4160](https://github.com/atuinsh/atuin/issues/4160)) - *(atuin)* Avoid per-char String allocation when drawing command cells ([#4164](https://github.com/atuinsh/atuin/issues/4164)) - *(atuin-daemon)* Key the output FTS index by rowid ([#4151](https://github.com/atuinsh/atuin/issues/4151)) - *(atuin-daemon)* Make the output FTS index contentless ([#4154](https://github.com/atuinsh/atuin/issues/4154)) - *(atuin-daemon)* Skip History clone in start_cmd when no tail subscriber ([#4165](https://github.com/atuinsh/atuin/issues/4165)) - *(pty-proxy)* Forward stdout via raw fd write instead of buffered LineWriter ([#4159](https://github.com/atuinsh/atuin/issues/4159)) - *(pty-proxy,common)* Use memchr for hot byte scans ([#4144](https://github.com/atuinsh/atuin/issues/4144)) - Make the daemon's large deletes and CI's integration tests fast ([#4189](https://github.com/atuinsh/atuin/issues/4189)) ### Refactor - *(atuin-common)* Modularize futures::stream with chunked/merge combinators ([#4120](https://github.com/atuinsh/atuin/issues/4120)) - *(atuin-daemon)* Move HistoryId proto message into common.proto ([#4121](https://github.com/atuinsh/atuin/issues/4121)) - *(atuin-daemon)* Restructure output_capture into persistence + engine ([#4125](https://github.com/atuinsh/atuin/issues/4125)) - *(client)* Rename SyncEngine to SyncSession ([#4130](https://github.com/atuinsh/atuin/issues/4130)) - *(daemon)* Replace sync event-bus with a standalone engine ([#4131](https://github.com/atuinsh/atuin/issues/4131)) - *(deps)* Bump DeterminateSystems/update-flake-lock from 28 to 29 ([#4138](https://github.com/atuinsh/atuin/issues/4138)) - *(deps)* Bump DeterminateSystems/nix-installer-action from 22 to 23 ([#4137](https://github.com/atuinsh/atuin/issues/4137)) - *(deps)* Bump eyre from 0.6.12 to 0.6.14 ([#4133](https://github.com/atuinsh/atuin/issues/4133)) - *(deps)* Bump serde_regex from 1.1.0 to 1.2.0 ([#4134](https://github.com/atuinsh/atuin/issues/4134)) - *(deps)* Bump uuid from 1.25.0 to 1.26.1 ([#4135](https://github.com/atuinsh/atuin/issues/4135)) - *(deps)* Bump soupsieve from 2.8.4 to 2.9 in /docs in the uv group across 1 directory ([#4172](https://github.com/atuinsh/atuin/issues/4172)) - *(deps)* Bump atuin-vt100 from 0.19.0 to 0.19.1 ([#4205](https://github.com/atuinsh/atuin/issues/4205)) - *(hooks)* Move agent hook install into atuin-common harnesstools ([#4183](https://github.com/atuinsh/atuin/issues/4183)) ### Testing - *(atuin-common)* Use #[rstest] in place of #[test] ([#4146](https://github.com/atuinsh/atuin/issues/4146)) - Fix flaky empty_history_search_can_be_cancelled e2e test ([#4197](https://github.com/atuinsh/atuin/issues/4197)) ### Bug - Fix transaction lock ([#4152](https://github.com/atuinsh/atuin/issues/4152)) - Deletion state race ([#4180](https://github.com/atuinsh/atuin/issues/4180))
183 lines
5.9 KiB
TOML
183 lines
5.9 KiB
TOML
[package]
|
|
name = "atuin"
|
|
edition = "2024"
|
|
description = "atuin - magical shell history"
|
|
readme = "./README.md"
|
|
|
|
authors.workspace = true
|
|
homepage.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
version.workspace = true
|
|
|
|
exclude = ["vendor/bash-preexec/.github", "vendor/bash-preexec/test"]
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.tar.gz"
|
|
bin-dir = "{ name }-{ target }/{ bin }{ binary-ext }"
|
|
pkg-fmt = "tgz"
|
|
|
|
[package.metadata.binstall.overrides.'cfg(target_os = "windows")']
|
|
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"
|
|
bin-dir = "{ bin }{ binary-ext }"
|
|
pkg-fmt = "zip"
|
|
|
|
[package.metadata.deb]
|
|
maintainer = "Ellie Huxtable <[email protected]>"
|
|
copyright = "2021, Ellie Huxtable <[email protected]>"
|
|
license-file = ["LICENSE"]
|
|
depends = "$auto"
|
|
section = "utility"
|
|
|
|
[package.metadata.rpm]
|
|
package = "atuin"
|
|
|
|
[package.metadata.rpm.cargo]
|
|
buildflags = ["--release"]
|
|
|
|
[package.metadata.rpm.targets]
|
|
atuin = { path = "/usr/bin/atuin" }
|
|
|
|
[features]
|
|
default = [
|
|
"client",
|
|
"sync",
|
|
"clipboard",
|
|
"check-update",
|
|
"daemon",
|
|
"ai",
|
|
"pty-proxy",
|
|
]
|
|
client = ["atuin-client"]
|
|
sync = ["atuin-client/sync"]
|
|
daemon = ["dep:async-stream", "atuin-client/daemon", "atuin-daemon", "atuin-ai?/daemon"]
|
|
ai = ["atuin-ai"]
|
|
pty-proxy = ["dep:atuin-pty-proxy"]
|
|
hex = ["pty-proxy"]
|
|
clipboard = ["arboard"]
|
|
check-update = ["atuin-client/check-update"]
|
|
vendored-tls = ["atuin-client?/vendored-tls"]
|
|
# `atuin update`: self-update via the cargo-dist install receipt. Not a
|
|
# default feature: only the official installer artifacts can self-update
|
|
# (dist enables it in dist-workspace.toml), so package-manager and
|
|
# `cargo install` builds skip axoupdater and its dependency tree — notably
|
|
# axoasset's rustls/aws-lc-rs reqwest backend, which is only avoided by the
|
|
# [patch.crates-io] axoasset fork when building from this repo.
|
|
self-update = ["dep:axoupdater"]
|
|
profiling-traced = [
|
|
"dep:tracing-opentelemetry",
|
|
"dep:opentelemetry",
|
|
"dep:opentelemetry_sdk",
|
|
"dep:opentelemetry-otlp",
|
|
]
|
|
|
|
[dependencies]
|
|
atuin-ai = { workspace = true, optional = true }
|
|
# TODO(taylordotfish): in Rust 1.99 we can change this to `workspace = true`
|
|
atuin-client = {
|
|
path = "../atuin-client",
|
|
version = "18.23.0",
|
|
optional = true,
|
|
default-features = false,
|
|
}
|
|
atuin-common = { workspace = true, features = ["unicode", "os", "ai"] }
|
|
atuin-daemon = { workspace = true, optional = true }
|
|
atuin-domain = { workspace = true }
|
|
atuin-dotfiles = { workspace = true }
|
|
atuin-history = { workspace = true }
|
|
atuin-vt100 = { workspace = true }
|
|
atuin-kv = { workspace = true }
|
|
atuin-pty-proxy = { workspace = true, optional = true }
|
|
atuin-scripts = { workspace = true }
|
|
|
|
ansi-to-tui = { workspace = true }
|
|
async-stream = { workspace = true, optional = true }
|
|
async-trait = { workspace = true }
|
|
axoupdater = { workspace = true, optional = true }
|
|
clap = { workspace = true }
|
|
clap_complete = { workspace = true }
|
|
clap_complete_nushell = { workspace = true }
|
|
colored = { workspace = true }
|
|
crossterm = { workspace = true, features = ["use-dev-tty"] }
|
|
derive_more = { workspace = true }
|
|
easy-cast = { workspace = true }
|
|
enum_dispatch = { workspace = true }
|
|
eyre = { workspace = true }
|
|
frizbee = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
indicatif = { workspace = true }
|
|
interim = { workspace = true }
|
|
itertools = { workspace = true }
|
|
locked-tripwire = { workspace = true }
|
|
norm = { workspace = true }
|
|
opentelemetry = { workspace = true, optional = true }
|
|
opentelemetry-otlp = { workspace = true, optional = true }
|
|
opentelemetry_sdk = { workspace = true, optional = true }
|
|
ratatui = { workspace = true }
|
|
regex = { workspace = true }
|
|
rpassword = { workspace = true }
|
|
runtime-format = { workspace = true }
|
|
rustix = { workspace = true }
|
|
semver = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
shlex = { workspace = true }
|
|
sysinfo = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
time = { workspace = true }
|
|
tiny-bip39 = { workspace = true }
|
|
tokio = { workspace = true }
|
|
# settings editor with comment and relative ordering preservation
|
|
toml_edit = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-appender = { workspace = true }
|
|
tracing-opentelemetry = { workspace = true, optional = true }
|
|
tracing-subscriber = { workspace = true }
|
|
unicode-width = { workspace = true }
|
|
url = { workspace = true }
|
|
uuid = { workspace = true }
|
|
|
|
[target.'cfg(any(target_os = "windows", target_os = "macos"))'.dependencies]
|
|
arboard = { workspace = true, optional = true }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
arboard = { workspace = true, optional = true, features = ["wayland-data-control"] }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
daemonix = { workspace = true }
|
|
|
|
# Enable tree-sitter shell parsing on platforms where tree-sitter's bundled C
|
|
# compiles cleanly. tree-sitter 0.26's portable/endian.h fails on illumos,
|
|
# Windows cross-compiles, and potentially other exotic targets.
|
|
[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "illumos"))'.dependencies]
|
|
atuin-ai = { workspace = true, optional = true, features = ["tree-sitter"] }
|
|
tree-sitter = { workspace = true }
|
|
tree-sitter-bash = { workspace = true }
|
|
tree-sitter-fish = { workspace = true }
|
|
tree-sitter-powershell = { workspace = true }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
divan = { workspace = true }
|
|
parking_lot = { workspace = true }
|
|
proptest = { workspace = true }
|
|
rstest = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
toml_edit = { workspace = true, features = ["serde"] }
|
|
|
|
[[bench]]
|
|
name = "render_char"
|
|
harness = false
|
|
|
|
# for the PTY e2e tests (tests/e2e_pty.rs)
|
|
[target.'cfg(unix)'.dev-dependencies]
|
|
nix-pty = { package = "nix", version = "0.28", features = ["term"] }
|
|
portable-pty = "0.9"
|
|
|
|
[lints]
|
|
workspace = true
|