Commit Graph

336 Commits

Author SHA1 Message Date
rootiest 4f266f691b feat(kitty): add kitty-logging install/uninstall/status/dismiss command 2026-06-16 02:12:47 -04:00
rootiest ca0a35e8c7 feat(kitty): add kitty-logging resolver/inspection helpers 2026-06-16 02:09:52 -04:00
rootiest c2ec031af2 feat(kitty): add canonical version-marked scrollback watcher 2026-06-16 02:07:23 -04:00
Gitea Actions 3990bd13b4 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-16 05:30:46 +00:00
rootiest 429ccc3876 Merge pull request 'feat(c5): multiplexer session logging (tmux + zellij)' (#53) from feat/tmux-logging into main
Generate documentation / build-docs (push) Successful in 42s
Offline docs drift reminder / remind (push) Successful in 14s
Reviewed-on: #53
2026-06-16 05:30:02 +00:00
rootiest a7e6ae4d21 docs(c5): feature session logging prominently with transparency callout
Add a Session Logging section and a CAUTION callout to the README, and a
matching privacy notice to docs/fish-config.md, making clear that this
config logs terminal sessions (Kitty/tmux/zellij/paru/yay) to
~/.terminal_history by default. Point users at both the
__fish_config_op_logging variable and the interactive config-toggle TUI
for opting out.
2026-06-16 01:27:47 -04:00
rootiest 5b74fbe427 feat(c5): add zellij exit-capture logging and shared prune helper
Zellij has no live-stream facility like tmux pipe-pane, so capture is a
one-shot 'zellij action dump-screen --full' run from a fish_exit handler
(conf.d/zellij-logging.fish -> functions/_zellij_dump_log.fish). The C5
guard is checked inside the helper at exit time, so toggling logging
needs no sync_logging coordination — there is no persistent stream.

Extract pruning into functions/_prune_terminal_logs.fish, shared by both
the tmux and zellij helpers. This also fixes a latent bug in the tmux
helper: globbing tmux_*.log directly errored with 'No matches for
wildcard' on the first log in an empty dir. The shared helper globs via
'set' (tolerates no-match) and uses command ls/rm to bypass the eza and
trash C1 shadows.
2026-06-16 01:16:22 -04:00
rootiest b998cc652e feat(c5): prune old tmux logs and share pipe-pane helper
Extract the tmux pipe-pane setup into functions/_tmux_pipe_log.fish,
called by both conf.d/tmux-logging.fish (startup) and
__fish_config_sync_logging (C5 re-enable). The helper prunes the oldest
tmux_*.log files by mtime to stay within SCROLLBACK_HISTORY_MAX_FILES,
matching the paru/yay wrappers.

Uses 'command ls' to bypass the eza ls shadow, which injects OSC-8
hyperlink escapes into paths and corrupted the filenames passed to rm.
2026-06-16 01:03:54 -04:00
rootiest 2e1750b5a4 fix(c5): use fish-valid variable concatenation in tmux log filename
Fish does not support bash-style ${var} brace syntax. Build the
log file path in a dedicated variable using quote-splicing instead.
2026-06-16 00:55:53 -04:00
rootiest 764f2253f6 fix(c5): update sync_logging function description to mention tmux 2026-06-16 00:53:44 -04:00
rootiest 2e6abec499 feat(c5): add tmux pipe-pane session logging
Starts tmux pipe-pane capture for the current pane whenever fish
launches inside a tmux session. Each shell gets a timestamped log
in SCROLLBACK_HISTORY_DIR. Toggling __fish_config_op_logging stops
or restarts the pipe in all open fish shells via the existing
--on-variable event handlers.
2026-06-16 00:52:59 -04:00
Gitea Actions 5c3d169572 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-13 04:27:04 +00:00
rootiest 50e4d92249 Merge pull request 'feat(agents-init): scaffold AGENTS/ sub-repo with symlinks, plugin dirs, and AI wrapper integration' (#52) from feat/agents-init into main
Generate documentation / build-docs (push) Successful in 37s
Reviewed-on: #52
2026-06-13 04:26:24 +00:00
rootiest a5966fd982 chore(agents-init): fix formatting and alignment 2026-06-13 00:24:18 -04:00
rootiest 976f46757c fix(agents-init): quiet only on change, add -v/--verbose flag
- quiet mode now outputs one summary line only when something actually changed;
  idempotent re-runs produce no output
- add -v/--verbose flag as an explicit alias for the default verbose behavior
- gitignore helper output captured to detect changes without printing in quiet mode
- drop eager "Initializing…" header in favour of end-of-run conditional summary
2026-06-13 00:19:11 -04:00
rootiest 2a7cb0f5cb feat(agents-init): add -a/--agents and -p/--plugins short flags 2026-06-13 00:05:31 -04:00
rootiest 8f845f7cf2 feat(agents-init): add --quiet and --silent flags; wrappers use --quiet 2026-06-13 00:03:11 -04:00
rootiest 69384f6427 fix(agents-init): use command cp -rn to bypass interactive wrapper and skip existing files 2026-06-12 23:51:30 -04:00
rootiest 9f9248deb1 fix(agents-init): fix gitignore duplicate entries, add block comment style
- Strip leading / from pattern before git check-ignore so root-anchored
  patterns like /AGENTS.md are checked as repo-relative paths (AGENTS.md)
  and correctly match existing rules — fixes duplicates on every run
- Rework helper to accept multiple patterns and write them as a single
  labeled block with project-style header/footer comment rather than
  appending bare patterns one at a time
- Move gitignore calls out of per-plug loop in --plugins mode so all
  three docs/ patterns are checked and written in one block
- Remove 5 duplicate bare entries left in .gitignore by the broken runs
2026-06-12 23:30:12 -04:00
rootiest 3a054021cf fix(agents-init): migrate plugin dirs, smarter CLAUDE.md handling, wrappers run full init
- Move plugin dir creation into --plugins mode (not 'Always') so --agents
  alone no longer creates empty AGENTS/plugins/ dirs
- Wrappers (claude, agy) now call plain agents-init (both modes) so plugin
  dirs in docs/ are migrated on the first AI launch, not just --agents
- Rewrite --agents CLAUDE.md logic: detect which root files are real vs
  symlinks and handle all four cases (both/agents-only/claude-only/neither)
  without ever losing content
- AGENTS/CLAUDE.md is now its own file in AGENTS/ (real file when both
  existed, symlink → AGENTS.md for single-source cases)
- Root CLAUDE.md now points to AGENTS/CLAUDE.md instead of AGENTS/AGENTS.md;
  readlink checks auto-fix existing symlinks with the wrong target
- New empty setups get AGENTS/AGENTS.md pre-populated with the agent
  directive warning editors not to write through the root symlinks
2026-06-12 23:05:40 -04:00
rootiest 015daec928 chore: update ag/ag. abbreviations and docs to point to agy instead of antigravity 2026-06-12 22:27:34 -04:00
rootiest d68bedef95 chore: remove antigravity wrapper (filtered error no longer exists, use agy directly) 2026-06-12 22:26:56 -04:00
rootiest e96f874469 feat(agy): wrap agy with agents-init --agents, same as claude wrapper 2026-06-12 22:25:47 -04:00
rootiest 178214c812 docs: add SYNOPSIS/DESCRIPTION doc blocks to session hook scripts and index entries 2026-06-12 22:13:31 -04:00
rootiest 45cba3a15b fix(agents-init): address final review issues (CLAUDE.md safety, rm-rf guard, gitignore anchoring, worktree detection) 2026-06-12 22:09:44 -04:00
rootiest 11dc584104 docs: add agents-init entry and update claude description in fish-config.md 2026-06-12 22:04:12 -04:00
rootiest 0167370823 refactor(claude): delegate symlink logic to agents-init --agents 2026-06-12 22:01:50 -04:00
rootiest 8d0f425b10 feat(agents-init): add auto-commit step for AGENTS/ sub-repo 2026-06-12 21:59:02 -04:00
rootiest a483c30c05 fix(agents-init): use fish-idiomatic command substitution in --plugins mode 2026-06-12 21:55:05 -04:00
rootiest 3befc07887 feat(agents-init): add --plugins mode (docs/ move + symlinks + gitignore) 2026-06-12 21:53:32 -04:00
rootiest 2a9a7ed2ff fix(agents-init): add error checks and CLAUDE.md move to --agents mode 2026-06-12 21:51:05 -04:00
rootiest d1949953df feat(agents-init): add --agents mode (AGENTS.md move + symlinks + gitignore) 2026-06-12 21:48:25 -04:00
rootiest 7463d894f2 fix(agents-init): address code quality issues in skeleton 2026-06-12 21:46:59 -04:00
rootiest 1e1c2003f3 feat(agents-init): scaffold function with argparse, help, and sub-repo init 2026-06-12 21:42:58 -04:00
rootiest e6de825fb1 fix(agents-init): move argv assignments after guard in gitignore helper 2026-06-12 21:41:14 -04:00
rootiest b6ed77d8f9 fix(agents-init): add write-error check and arg validation to gitignore helper 2026-06-12 21:40:27 -04:00
rootiest 522fd03c12 feat(agents-init): add gitignore helper function 2026-06-12 21:38:26 -04:00
Gitea Actions d68f68bec7 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-12 23:43:51 +00:00
rootiest a92847e6ed Merge pull request 'fix(first-run): move fish-config.1 symlink install to first-run' (#51) from fix/manpage-symlink-move-to-first-run into main
Generate documentation / build-docs (push) Successful in 34s
Reviewed-on: #51
2026-06-12 23:43:13 +00:00
rootiest 682e93c794 docs: update man page symlink description to reflect first-run timing 2026-06-12 19:37:58 -04:00
rootiest 953aafd055 fix(first-run): move fish-config.1 symlink install to first-run
Startup side-effects that modify the filesystem belong in first-run, not
in a recurring conf.d fragment. The symlink is now created once (like a
real install step) instead of being checked on every shell launch.

MANPATH addition stays in tricks.fish — that's an env var that must be
set each session.
2026-06-12 19:37:30 -04:00
Gitea Actions 39688b28f4 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-12 23:28:18 +00:00
rootiest 654503062b docs: shorten clean_progress_log.py description to single line
Generate documentation / build-docs (push) Successful in 34s
2026-06-12 19:27:38 -04:00
Gitea Actions 9d2a498089 chore(docs): regenerate man page, HTML docs, and wiki 2026-06-12 23:19:42 +00:00
rootiest 64c559dbab Merge pull request 'feat(config-toggle): adaptive width, centering, and resize handling' (#50) from feat/config-toggle-adaptive-width into main
Generate documentation / build-docs (push) Successful in 34s
Offline docs drift reminder / remind (push) Successful in 11s
Reviewed-on: #50
2026-06-12 23:19:05 +00:00
rootiest 93fc5e0517 feat(config-toggle): adaptive width, centering, and resize handling
Panel now selects from four width tiers based on $COLUMNS (with a 6-col
buffer per side before stepping up): 52-wide (default), 70, 74, or 78.
Each tier carries richer category descriptions sized to fit the layout.
The box is horizontally centered on every draw via a left-padding prefix.

Key reader switches from stty min 1 to min 0 / time 3, giving a 0.3 s
poll interval so COLUMNS changes are detected without a keypress. The
erase formula is now wrap-aware: prev_max_line_width / COLUMNS gives the
wrap factor, ensuring old wider panels are fully cleared after narrowing.
Idle timeout ticks that detect no resize are skipped entirely.
2026-06-12 19:17:49 -04:00
Gitea Actions 1253f67c9c chore(docs): regenerate man page, HTML docs, and wiki 2026-06-12 21:46:31 +00:00
rootiest 045f141e30 Merge pull request 'feat: add claude wrapper that auto-links AGENTS.md as CLAUDE.md' (#49) from feat/claude-wrapper-agents-link into main
Generate documentation / build-docs (push) Successful in 40s
Reviewed-on: #49
2026-06-12 21:45:49 +00:00
rootiest f76a45e273 feat: add claude wrapper that auto-links AGENTS.md as CLAUDE.md
New functions/claude.fish wraps the claude CLI. Before launch it checks the
current directory and the git project root; when CLAUDE.md is absent but
AGENTS.md is present, it creates a relative symlink CLAUDE.md -> AGENTS.md so
Claude Code picks up shared agent instructions without duplicating the file.
Arguments are forwarded verbatim.

Implemented as a C1 command shadow: when __fish_config_op_aliases (or the
master __fish_config_opinionated) is disabled, the call passes through to the
bare claude binary unchanged. Link-creation notices print to stderr in green.

Documents the new shadow in docs/fish-config.md (section 5.12 AI tools, C1
component reference table, and C1 summary list) and adds a claude-cli anchor
to docs/fish-config.index.
2026-06-12 17:44:40 -04:00
rootiest 95f2ad9112 Merge pull request 'fix: suppress fish shadow warning corrupting config-toggle redraw' (#48) from fix/config-toggle-shadow-warning-redraw into main
Reviewed-on: #48
2026-06-12 21:41:21 +00:00