diff --git a/docs/manual/08-components-reference/05-c5-logging-and-capture.md b/docs/manual/08-components-reference/05-c5-logging-and-capture.md index 4867c1e..3969c99 100644 --- a/docs/manual/08-components-reference/05-c5-logging-and-capture.md +++ b/docs/manual/08-components-reference/05-c5-logging-and-capture.md @@ -18,16 +18,16 @@ CAUTION: This configuration is capable of silently recording terminal output and Component What it captures ─────────────────────────────────────────────────────────────────────────── Scrollback capture Terminal session output saved to: - `~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log` + ~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log tmux pane capture Continuous pane stream via pipe-pane, saved to: - `~/.terminal_history/tmux_-w-p_YYYY-MM-DD_HH-MM-SS.log` + ~/.terminal_history/tmux_-w-p_YYYY-MM-DD_HH-MM-SS.log zellij pane capture Pane scrollback snapshot on shell exit, saved to: - `~/.terminal_history/zellij_-p_YYYY-MM-DD_HH-MM-SS.log` + ~/.terminal_history/zellij_-p_YYYY-MM-DD_HH-MM-SS.log paru wrapper All paru/AUR output captured to: - `~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log` + ~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log yay wrapper All yay/AUR output captured to: - `~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log` - Kitty watcher `watcher.py` captures scrollback when Kitty closes + ~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log + Kitty watcher watcher.py captures scrollback when Kitty closes NOTE: **Turning off logging does not delete any existing logs.** They remain in `$SCROLLBACK_HISTORY_DIR` (defaults to: `~/.terminal_history/`) @@ -58,7 +58,7 @@ Ctrl-D, or a logout), because that is when the fish_exit handler runs. It does NOT capture when you close a pane or quit zellij through zellij itself: - Closing a pane signals the shell and tears the pane down concurrently, so - even if the handler runs, `dump-screen` may find the pane buffer already + even if the handler runs, dump-screen may find the pane buffer already gone. - Quitting zellij kills the zellij server, and `dump-screen` needs a live server to read from — there is nothing left to snapshot. @@ -93,7 +93,7 @@ start, so it appears without any action on your part. Disabling `__fish_config_op_logging` (or leaving it unset): 1. Creates the sentinel immediately in every open shell. 2. Removes `~/.local/bin/paru` and `~/.local/bin/yay` logging wrappers; - bare `/usr/bin/paru` and `/usr/bin/yay` are used instead. + bare /usr/bin/paru and /usr/bin/yay are used instead. 3. Kitty's `watcher.py` reads the sentinel on each save attempt and skips capture — no Kitty restart required. 4. smart_exit stops saving scrollback logs. diff --git a/docs/manual/08-components-reference/index.md b/docs/manual/08-components-reference/index.md index a433194..d0be902 100644 --- a/docs/manual/08-components-reference/index.md +++ b/docs/manual/08-components-reference/index.md @@ -12,9 +12,9 @@ category variable. Category Description ────────────────────────────────────────────────────────────────────────── - C1 [Command Shadows](/08-components-reference/01-c1-command-shadows/) — Wraps destructive commands (`rm`, `cp`) to be safe by default + C1 [Command Shadows](/08-components-reference/01-c1-command-shadows/) — Wraps destructive commands (rm, cp) to be safe by default C2 [Startup Side-Effects](/08-components-reference/02-c2-startup-side-effects/) — Bootstraps Fisher, generates wrappers, auto-activates venvs - C3 [Overrides](/08-components-reference/03-c3-key-and-environment-overrides/) — Overrides `cd`, sets Vi mode, binds `` to `smart_enter` + C3 [Overrides](/08-components-reference/03-c3-key-and-environment-overrides/) — Overrides cd, sets Vi mode, binds to smart_enter C4 [Integrations](/08-components-reference/04-c4-terminal-and-tool-integration/) — Kitty/Wezterm integrations, starship hooks, fzf theme C5 [Logging and Capture](/08-components-reference/05-c5-logging-and-capture/) — Session logs, command duration C6 [Greeting & First-Run UI](/08-components-reference/06-c6-greeting-and-first-run-ui/) — Custom startup banner diff --git a/docs/manual/09-fisher-plugins.md b/docs/manual/09-fisher-plugins.md index 3457453..e19d761 100644 --- a/docs/manual/09-fisher-plugins.md +++ b/docs/manual/09-fisher-plugins.md @@ -120,7 +120,7 @@ The `fish_plugins` file at the config root: - [`jorgebucaran/fisher`](https://github.com/jorgebucaran/fisher) — Plugin manager itself - [`meaningful-ooo/sponge`](https://github.com/meaningful-ooo/sponge) — Remove failed commands from history -To update all Fisher-managed plugins, run `fisher update` or `fish-deps -update` which calls it as its first step. +To update all Fisher-managed plugins, run `fisher update` or +`fish-deps update` which calls it as its first step. --- diff --git a/docs/manual/12-troubleshooting.md b/docs/manual/12-troubleshooting.md index a823530..5439136 100644 --- a/docs/manual/12-troubleshooting.md +++ b/docs/manual/12-troubleshooting.md @@ -208,9 +208,9 @@ This configuration groups its opinionated behaviors into six categories (C1–C6 Category Description ────────────────────────────────────────────────────────────────────────── - C1 [Command Shadows](/08-components-reference/01-c1-command-shadows/) — Wraps destructive commands (`rm`, `cp`) to be safe by default + C1 [Command Shadows](/08-components-reference/01-c1-command-shadows/) — Wraps destructive commands (rm, cp) to be safe by default C2 [Startup Side-Effects](/08-components-reference/02-c2-startup-side-effects/) — Bootstraps Fisher, generates wrappers, auto-activates venvs - C3 [Overrides](/08-components-reference/03-c3-key-and-environment-overrides/) — Overrides `cd`, sets Vi mode, binds `` to `smart_enter` + C3 [Overrides](/08-components-reference/03-c3-key-and-environment-overrides/) — Overrides cd, sets Vi mode, binds to smart_enter C4 [Integrations](/08-components-reference/04-c4-terminal-and-tool-integration/) — Kitty/Wezterm integrations, starship hooks, fzf theme C5 [Logging and Capture](/08-components-reference/05-c5-logging-and-capture/) — Session logs, command duration C6 [Greeting & First-Run UI](/08-components-reference/06-c6-greeting-and-first-run-ui/) — Custom startup banner diff --git a/docs/verify-manual.py b/docs/verify-manual.py index 595f151..f89adb9 100644 --- a/docs/verify-manual.py +++ b/docs/verify-manual.py @@ -1440,6 +1440,25 @@ def test_codespans_reach_the_man_page_pipeline(): assert "`tmux`" in text, "a vocabulary command was not wrapped in the concat" +def test_concat_code_spans_never_straddle_a_line(): + """`config-help` pairs backticks one line at a time. + + Its `string replace` filters run per line, so a span split across a + line break -- ``run `fish-deps\\nupdate` `` -- leaves an unpaired + backtick the pager then shows literally. Markdown is happy to wrap + one, so nothing else catches this. + """ + import build_manual + + text = build_manual.build_concat(Path(__file__).parent / "manual") + odd = [ + (n, line) + for n, line in enumerate(text.split("\n"), 1) + if line.count("`") % 2 + ] + assert not odd, f"unpaired backtick, span wraps a line: {odd[:3]}" + + def test_concat_section_five_stays_verbatim(): """Section 5's entries are indented blocks, not prose.