✨ Making your shell magical
This report summarizes scanner evidence for atuinsh/atuin, a Rust project with 31,968 GitHub stars. SynthScan examined 214,831 lines of code across 732 source files, recording 698 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 4.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 605 finding(s).
Are imports declared and package/API names verified? 8 finding(s).
Are wrappers, guards, and repeated structures necessary? 85 finding(s).
Which changes need focused human review? 698 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 698 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cross.toml | 1 | [target.x86_64-unknown-illumos] | COMMENT |
| LOW | cliff.toml | 1 | # git-cliff ~ default configuration file | COMMENT |
| LOW | .vale.ini | 41 | # 14 of 15 hits are FAQ headings in the reader's own voice. | COMMENT |
| LOW | crates/atuin-domain/deny.toml | 1 | # cargo-deny config scoped to atuin-domain. | COMMENT |
| LOW | crates/atuin-domain/src/caps/client.rs | 41 | } | COMMENT |
| LOW | crates/atuin-domain/src/caps/axum.rs | 21 | #[allow(clippy::unused_async, reason = "must be async to implement axum::handler::Handler")] | COMMENT |
| LOW | crates/atuin-domain/src/caps/mod.rs | 1 | //! Capability system used by atuin. | COMMENT |
| LOW | crates/atuin-domain/src/caps/mod.rs | 21 | //! with a 412, after which the client polls `/api/v0/capabilities` to get the new capability list | COMMENT |
| LOW | crates/atuin-domain/src/caps/middleware.rs | 21 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] | COMMENT |
| LOW | crates/atuin-history/deny.toml | 1 | # cargo-deny config scoped to atuin-history. | COMMENT |
| LOW | crates/atuin-history/src/stats.rs | 381 | s.stats.common_subcommands.extend(subcommand.iter().map(|p| p.to_string())); | COMMENT |
| LOW | crates/atuin-history/src/stats.rs | 401 | #[case::one_removal("sudo doas echo", Some(("sudo", "doas echo")))] | COMMENT |
| LOW | crates/atuin-history/src/stats.rs | 421 | #[with(&["sudo test"][..])] settings: Settings, | COMMENT |
| LOW | crates/atuin-history/src/stats.rs | 441 | assert_eq!(interesting_command(&settings, input), expected); | COMMENT |
| LOW | crates/atuin-client/config.toml | 1 | ## Base directory for Atuin data files (databases, keys, session, etc.) | COMMENT |
| LOW | crates/atuin-client/config.toml | 21 | ## (e.g. `--before`/`--after`) that don't carry an explicit offset | COMMENT |
| LOW | crates/atuin-client/config.toml | 41 | ## is ran, so sync intervals may well be longer | COMMENT |
| LOW | crates/atuin-client/config.toml | 61 | ## leave unspecified to use same mode set in "filter_mode" | COMMENT |
| LOW | crates/atuin-client/config.toml | 81 | ## when atuin is invoked from a shell up-key binding | COMMENT |
| LOW | crates/atuin-client/config.toml | 101 | COMMENT | |
| LOW | crates/atuin-client/config.toml | 121 | ## prevent commands matching any of these regexes from being written to history. | COMMENT |
| LOW | crates/atuin-client/config.toml | 141 | ## Useful when you have long scripts in your history that you want to distinguish | COMMENT |
| LOW | crates/atuin-client/config.toml | 161 | ## 1. AWS key id | COMMENT |
| LOW | crates/atuin-client/config.toml | 181 | ## mode in the Atuin search is forced to be the specified one. | COMMENT |
| LOW | crates/atuin-client/config.toml | 201 | COMMENT | |
| LOW | crates/atuin-client/config.toml | 221 | # "jj", | COMMENT |
| LOW | crates/atuin-client/config.toml | 241 | # "ls", | COMMENT |
| LOW | crates/atuin-client/config.toml | 261 | [preview] | COMMENT |
| LOW | crates/atuin-client/config.toml | 281 | ## linux/mac default: | COMMENT |
| LOW | crates/atuin-client/config.toml | 301 | ## If enabled, `atuin init` will first re-exec your shell inside `atuin pty-proxy`, | COMMENT |
| LOW | crates/atuin-client/config.toml | 321 | COMMENT | |
| LOW | crates/atuin-client/config.toml | 341 | # shells = "auto" | COMMENT |
| LOW | crates/atuin-client/config.toml | 361 | COMMENT | |
| LOW | crates/atuin-client/config.toml | 381 | ## When enabled and running inside tmux, Atuin will use a popup window for interactive search. | COMMENT |
| LOW | crates/atuin-client/config.toml | 401 | ## { type = "directory", width = 30, expand = true } | COMMENT |
| LOW | crates/atuin-client/config.toml | 421 | ## Minimal - more space for commands: | COMMENT |
| LOW | …in-client/proptest-regressions/ai_session/database.txt | 1 | # Seeds for failure cases proptest has generated in the past. It is | COMMENT |
| LOW | …optest-regressions/ai_session/database/heads/tests.txt | 1 | # Seeds for failure cases proptest has generated in the past. It is | COMMENT |
| LOW | …/atuin-client/proptest-regressions/packfile/packer.txt | 1 | # Seeds for failure cases proptest has generated in the past. It is | COMMENT |
| LOW | crates/atuin-client/benches/record/sqlite_store.rs | 21 | /// | COMMENT |
| LOW | crates/atuin-client/src/hub.rs | 41 | pub hub_address: Url, | COMMENT |
| LOW | crates/atuin-client/src/hub.rs | 281 | COMMENT | |
| LOW | crates/atuin-client/src/database.rs | 201 | /// SQL predicate to match for a [`CmdOrigin`]. | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 1721 | } | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 1841 | let mut exits: Vec<_> = remaining.iter().map(|h| h.exit).collect(); | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 1961 | #[rstest] | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 1981 | #[case::regex_anchored_end("r/ls / ie$", 1)] | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 2001 | #[case::short_terms("l/h/", 2)] | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 2061 | #[case::prefix(SearchMode::Prefix, DbSearchMode::Prefix)] | COMMENT |
| LOW | crates/atuin-client/src/database.rs | 2141 | COMMENT | |
| LOW | crates/atuin-client/src/theme.rs | 721 | #[case::at_ansi("@ansi_(255)", Color::AnsiValue(255))] | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 41 | COMMENT | |
| LOW | crates/atuin-client/src/history.rs | 181 | Self::Two => None, | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 301 | /// Client stores data unencrypted, and only encrypts it before sending to the server. | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 581 | author_kind, | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 601 | /// ``` | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 621 | /// let history: History = History::import() | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 641 | /// .timestamp(time::OffsetDateTime::now_utc()) | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 661 | builder::HistoryCaptured::builder() | COMMENT |
| LOW | crates/atuin-client/src/history.rs | 681 | /// .cwd("/home/user") | COMMENT |
| 492 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/atuin-ai/src/stream.rs | 1 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/stream.rs | 3 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/snapshots.rs | 177 | // ── sanitize_path ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/snapshots.rs | 225 | // ── atomic_write_file ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/snapshots.rs | 276 | // ── SnapshotStore ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 250 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 252 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 307 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 309 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 444 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 446 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 573 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 575 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 655 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 657 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 728 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 730 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 824 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/tui/view/mod.rs | 826 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/events.rs | 11 | // ─── User actions ─────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/events.rs | 25 | // ─── Stream lifecycle ─────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/events.rs | 54 | // ─── Suggest command (terminal tool call) ─────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/events.rs | 62 | // ─── Tool lifecycle ───────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/events.rs | 93 | // ─── Timers ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/events.rs | 104 | // ─── Session management ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/events.rs | 108 | // ─── Slash commands ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/events.rs | 117 | // ─── Model selection ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/events.rs | 125 | // ─── Skills ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/effects.rs | 27 | // ─── Network ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/effects.rs | 36 | // ─── Tool orchestration ───────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/effects.rs | 66 | // ─── Persistence ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/effects.rs | 86 | // ─── Turn lifecycle ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/effects.rs | 91 | // ─── Timers ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/fsm/effects.rs | 99 | // ─── Exit ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/mod.rs | 153 | // ─── View state (owned by FSM for atomic transitions) ─────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/mod.rs | 613 | // ─── Cancel during Turn ───────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/mod.rs | 761 | // ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/fsm/mod.rs | 763 | // ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 53 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 57 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 175 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 177 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 273 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 275 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 322 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 324 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 452 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/permissions/shell.rs | 454 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 164 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 214 | // ─── Build FSM ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/commands/inline.rs | 281 | // ─── Snapshot store ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/commands/inline.rs | 286 | // ─── Discover skills ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/commands/inline.rs | 290 | // ─── Resume notice (frozen at startup) ────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 302 | // ─── Slash commands + skills ──────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 311 | // ─── IO context ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 352 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/inline.rs | 354 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 156 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 325 | #------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 492 | #------------------------------------------------------------------------------ | COMMENT |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/atuin-client/benches/_util/context.rs | 8 | /// Generally useful for establishing stable and robust benchmarks. It's an anti-pattern to use a | COMMENT |
| MEDIUM | crates/atuin-client/src/ai_session/database.rs | 199 | #[error("unknown ai-session harness discriminant {0}")] | COMMENT |
| MEDIUM | crates/atuin-client/src/ai_session/database.rs | 3889 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-client/src/ai_session/database.rs | 4047 | #[case::harness(harness_filter(HarnessKind::Pi), &[])] | COMMENT |
| MEDIUM | crates/atuin-client/src/ai_session/model.rs | 575 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-client/src/ai_session/database/write.rs | 607 | '$[#]', u.up_harness || ':' || u.up_session_id) FROM chain c JOIN up u ON u.harness \ | CODE |
| MEDIUM | …es/atuin-client/src/ai_session/database/heads/tests.rs | 185 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | …es/atuin-client/src/ai_session/database/heads/tests.rs | 315 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | …es/atuin-client/src/ai_session/database/heads/tests.rs | 693 | fn rows_for_a_branch_of_nodes_are_its_path(#[case] harness: HarnessKind) { | CODE |
| MEDIUM | crates/atuin-common/src/harnesstools/json_hooks.rs | 105 | let command = format!(r#""{executable_str}" hook {harness}"#); | CODE |
| MEDIUM | crates/atuin-common/src/harnesstools/sync.rs | 186 | #[error("the session is open in a running harness on this machine{}", pid_note(*.0))] | COMMENT |
| MEDIUM | crates/atuin-common/src/harnesstools/sync.rs | 188 | #[error("the session may be open in a running harness on this machine")] | COMMENT |
| MEDIUM | crates/atuin-common/src/harnesstools/mod.rs | 93 | #[error("unknown harness. known harnesses: {0:?}")] | COMMENT |
| MEDIUM | crates/atuin-common/src/harnesstools/fork/tests.rs | 125 | #[values(CLAUDE, CODEX, OPENCODE, PI)] harness: AnyHarness, | COMMENT |
| MEDIUM | …s/atuin-common/src/harnesstools/sync/liveness/tests.rs | 289 | #[case] harness: &str, | COMMENT |
| MEDIUM | crates/atuin-common/src/harnesstools/session/error.rs | 9 | #[error("harness runtime not found at {0}")] | COMMENT |
| MEDIUM | crates/atuin-common/src/harnesstools/session/mod.rs | 426 | #[values(JsonlHarness::Ccode, JsonlHarness::Codex, JsonlHarness::Pi)] harness: JsonlHarness, | COMMENT |
| MEDIUM | crates/atuin-daemon/tests/common/mod.rs | 8 | #![allow(dead_code, reason = "each integration test crate uses a different subset of the harness")] | COMMENT |
| MEDIUM | crates/atuin-daemon/src/grpc/ai/agent/pb.rs | 37 | #[error("unrecognized harness kind: {0}")] | COMMENT |
| MEDIUM | …s/atuin-daemon/src/session_capture/message_enricher.rs | 537 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | …s/atuin-daemon/src/session_capture/message_enricher.rs | 1037 | fn a_continuation_names_the_session_it_continues(#[case] harness: HarnessKind) { | CODE |
| MEDIUM | …s/atuin-daemon/src/session_capture/message_enricher.rs | 1067 | fn a_fork_of_a_continuation_keeps_its_own_parent(#[case] harness: HarnessKind) { | CODE |
| MEDIUM | crates/atuin-ai/src/tools/session/caller.rs | 240 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-ai/src/tools/session/search.rs | 241 | #[case::unknown_harness(json!({"query": "x", "harness": "emacs"}))] | COMMENT |
| MEDIUM | crates/atuin-ai/src/tools/session/search.rs | 242 | #[case::uncapturable_harness(json!({"query": "x", "harness": "copilot"}))] | COMMENT |
| MEDIUM⚡ | crates/atuin-ai/src/tui/app.rs | 1383 | fn tail_renders_conversation_turns(#[from(harness)] h: Harness) { | CODE |
| MEDIUM⚡ | crates/atuin-ai/src/tui/app.rs | 1392 | fn esc_exits_with_cancel(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM⚡ | crates/atuin-ai/src/tui/app.rs | 1397 | fn exit_erases_the_input_box(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/tui/app.rs | 1413 | fn typing_renders_in_the_editor(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/tui/app.rs | 1425 | fn enter_submits_and_pushes_the_user_turn(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/tui/app.rs | 1467 | fn slash_suggestions_and_tab_accept(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/tui/app.rs | 1478 | fn ctrl_j_inserts_newline(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/tui/app.rs | 1486 | fn shift_enter_inserts_newline(#[from(harness)] mut h: Harness) { | CODE |
| MEDIUM | crates/atuin-ai/src/resume_tui/resumer/tests.rs | 1347 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-ai/src/resume_tui/resumer/tests.rs | 1470 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-ai/src/resume_tui/catchup/tests.rs | 67 | #[case] harness: HarnessKind, | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/session.rs | 57 | #[arg(long, value_enum, help = "Only search sessions from this harness")] | COMMENT |
| MEDIUM | crates/atuin-ai/src/commands/session.rs | 1448 | fn harness_name_maps_known_and_unknown(#[case] harness: HarnessKind, #[case] expected: &str) { | CODE |
| MEDIUM | crates/atuin/tests/e2e_capture.rs | 15 | #[allow(dead_code, reason = "the pty harness is shared with the other e2e test binaries")] | COMMENT |
| MEDIUM | crates/atuin/tests/e2e_pty_proxy_init.rs | 17 | #[allow(dead_code, reason = "the pty harness is shared with the other e2e test binaries")] | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 76 | # robust way to detect the command for keybindings, but at least we | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 122 | # With ble.sh, we utilize the shell variable `_ble_exec_time_ata` | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 517 | # To realize the enter_accept feature in a robust way, we need to call the | COMMENT |
| MEDIUM | crates/atuin/src/shell/atuin.bash | 520 | # `accept-line', we may utilize string macros of readline. When we bind KEYSEQ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/atuin-ai/src/tui/tips.rs | 37 | relevant: Some(|ctx| ctx.settings.ai.capabilities.enable_command_execution.unwrap_or(true)), | CODE |
| CRITICAL | crates/atuin-ai/src/tui/tips.rs | 72 | relevant: Some(|ctx| !ctx.settings.ai.opening.send_last_command.unwrap_or(false)), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/atuin-client/config.toml | 202 | ## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc. | COMMENT |
| LOW | crates/atuin/src/shell/atuin.zsh | 128 | # Check if tmux popup is available (tmux >= 3.2) | COMMENT |
| LOW | crates/atuin/src/shell/atuin.bash | 327 | # Check if tmux popup is available (tmux >= 3.2) | COMMENT |
| LOW | scripts/release.sh | 267 | # Check if the entry is empty (just a heading with no content) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/atuin-domain/src/record/mod.rs | 569 | let fake_key = paseto_v4::Key::new_os_random(); | CODE |
| LOW | crates/atuin-domain/src/record/mod.rs | 587 | &fake_key, | CODE |
| LOW | crates/atuin-domain/src/record/mod.rs | 597 | fake_key.key_id() | CODE |
| LOW | crates/atuin-client/src/ai_session/store.rs | 1572 | s.push(&message_in(&session, i, &"lorem ipsum dolor ".repeat(20))).await.unwrap(); | CODE |
| LOW | crates/atuin-common/src/secrets/structural.rs | 312 | "placeholder", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/atuin-common/src/secrets/structural.rs | 310 | "your_api_key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/docs/guide/delete-history.md | 36 | # Step 1: preview - see what matches | COMMENT |
| LOW | docs/docs/guide/delete-history.md | 39 | # Step 2: delete - once you're satisfied the results are correct | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 266 | # Create a GitHub Release while uploading all files to it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/atuin-client/src/database.rs | 275 | // TODO: implement IntoIterator | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .buildkite/scripts/nextest-bktec.py | 71 | CODE |