Problem
Tool error output, stack traces, and sandbox denial messages frequently include path/to/file.rs:42:7 references. Today these are plain text — the user has to copy, paste into another terminal, open in their editor manually.
Proposed solution
Parse path:line[:col] patterns in transcript output and render them as openable links. On Ctrl+Click (or O while the cursor is on the line), invoke an editor command:
$EDITOR → matches the `+line` convention if vim/nvim/emacs
code -g <file>:<line>
idea --line <line> <file>
windsurf --goto <file>:<line>
cursor --goto <file>:<line>
Picked from a config:
[tui.editor]
open_command = "code -g {file}:{line}"
with auto-detection if unset (probe $VISUAL, $EDITOR, code, cursor, idea in that order).
Where this fires
Acceptance criteria
Related
crates/tui/src/utils.rs:display_path — privacy invariant.
- The existing transcript renderer in
crates/tui/src/tui/views/.
Problem
Tool error output, stack traces, and sandbox denial messages frequently include
path/to/file.rs:42:7references. Today these are plain text — the user has to copy, paste into another terminal, open in their editor manually.Proposed solution
Parse
path:line[:col]patterns in transcript output and render them as openable links. OnCtrl+Click(orOwhile the cursor is on the line), invoke an editor command:Picked from a config:
with auto-detection if unset (probe
$VISUAL,$EDITOR,code,cursor,ideain that order).Where this fires
format_tool_errorincore/engine.rs).run_testsfailure cards (feat: /test slash command — run project tests with inline failure rendering #316 —/testissue).apply_patchhunks (link to the file at the changed line).pathfield.Acceptance criteria
<path>:<line>,<path>:<line>:<col>,at <path>:<line>(Rust panic format).display_pathfor screenshot-likely surfaces.Related
crates/tui/src/utils.rs:display_path— privacy invariant.crates/tui/src/tui/views/.