Add hooks, @file mentions, session search/fork/export, follow-scroll

- Hooks ([[hooks]]): pre_tool, post_tool, user_prompt, stop; sandboxed, exit 2 blocks
- @file mentions with autocomplete; mentioned files/folders are attached to the prompt
- Session full-text search in the sidebar, fork into a copy, export as Markdown/JSON
- Chat follows the newest message until the user scrolls up; jump-to-latest button
- SVG activity spark and thinking icon instead of Unicode/emoji glyphs
- File search ranks name matches first and returns relative paths

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-08 20:17:12 +01:00
1 parent ec1b9b4925
commit 013695722a
17 files changed
+911 -41

No files matched your search

+25
View File
@@ -24,6 +24,31 @@ pub struct Config {
pub sandbox: SandboxConfig,
pub search: SearchConfig,
pub lsp: LspConfig,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub hooks: Vec<HookConfig>,
}
/// A shell command run on an agent event (see hooks.rs).
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct HookConfig {
/// pre_tool, post_tool, user_prompt or stop.
pub event: String,
/// Tool name pattern for tool events ("*", "bash", "edit|write", "mcp__*").
#[serde(default = "star")]
pub matcher: String,
pub command: String,
#[serde(default = "sixty")]
pub timeout_secs: u64,
#[serde(default = "yes")]
pub enabled: bool,
}
fn star() -> String {
"*".into()
}
fn sixty() -> u64 {
60
}
/// Language servers for diagnostics after edits.