conf.d/sponge_privacy.fish registers patterns and filters that prevent
credentials from reaching fish history:
Layer 1 (static regex, universal): auth flags, env assignments,
credential-bearing URLs, Authorization headers, sshpass, docker
login, openssl -passin/-passout
Layer 2 (dynamic values, session globals): on the first prompt, after
secrets.fish has loaded, reads the literal values of all exported
credential-named vars (TOKEN, PASSWORD, SECRET, etc.), escapes them
for regex, and merges them with the static patterns as a session
global — auto-refreshes on login so rotated tokens are never stale
Layer 3 (per-command filter, sponge_filter_secrets): catches
credentials in variables exported mid-session (e.g. project .env)
Also exempts functions/sponge_filter_secrets.fish from the sponge_*
gitignore glob so our custom filter is committed alongside the config.
meaningful-ooo/sponge is now the one true Fisher-managed plugin,
giving the bootstrap a concrete purpose. Its files (and functions/fisher.fish,
completions/fisher.fish) are gitignored so Fisher owns them exclusively —
no committed/managed conflict possible.
Updates docs, index, requirements, and README to distinguish
Fisher-managed plugins from bundled customized ones.
Only jorgebucaran/fisher itself is in fish_plugins. The functionality
from catppuccin/fish, fzf.fish, done, autopair, and puffer-fish is
bundled directly with this config in modified form and must not be
installed or updated via fisher.
Removes sponge (not present), corrects file path mappings for bundled
components, fixes stale "Plugin sync failed" message in first_run.fish,
and expands fish-config.index with missing sections 9–11.
Reorder sections so Installation (§9) and Personalization (§10) precede
Viewing This Manual (§11). Update TABLE OF CONTENTS and regenerate wiki;
old 9-viewing-this-manual.md replaced by 11-viewing-this-manual.md.
- docs/fish-config.md: add §10 Installation (clone, sentinel guard,
config-update usage) and §11 Personalization (secrets.fish /
local.fish examples); update TABLE OF CONTENTS
- docs/split-wiki.py: strip trailing thematic break from DESCRIPTION
body so index.md no longer renders a double --- separator
- Regenerate docs/wiki/ with 11-installation.md and
12-personalization.md; all nav bars updated
- README now contains only Overview, Documentation, Installation,
Personalization, Attribution, and License; all detailed reference
content has been removed since it is covered in the wiki
- Add Documentation section above Installation pointing to docs/wiki/
- docs/fish-config.md: add §4.11 Shell Aliases (navigation dots, color
overrides, safety wrappers, archives, system logs)
- docs/fish-config.md: add Prompt and Theme subsection to §7 with
Starship OSC 133 marker detail and FZF Catppuccin color values
- Regenerate docs/wiki/ with all new content
Adds docs/split-wiki.py, a Python script that splits fish-config.md
into a multi-page Markdown wiki under docs/wiki/:
- index.md: DESCRIPTION intro + full section ToC
- one file per numbered section (1-configuration-variables.md … 9-viewing-this-manual.md)
- each section page has a nav bar at the top linking to every other section
The build-docs.yml workflow now runs the script alongside pandoc so all
three formats (man page, HTML, wiki) are regenerated together from a
single source in one CI run.
README slimmed down to a pointer to the wiki; docs/fish-config.md §9
gains an "As a wiki" subsection.
Both workflows triggered on the same path change, installed pandoc
separately, and raced to commit — the second always failed on push
due to new commits from the first. A single job installs pandoc once,
generates both outputs, and commits them together.
config-help gains two new flags:
- --html / -w: opens docs/html/index.html in the default browser using
smart browser detection (xdg-mime https scheme handler → known binaries
→ xdg-open fallback) to avoid MIME-type mismatches with non-browser apps
- --man / -m: opens the compiled docs/fish-config.1 man page via man -l
config-update is a new function that pulls the latest fish config from the
hard-coded upstream URL without requiring a configured git remote. Suppresses
git output and reports status with colored messages. Supports --dry-run and
--force flags.
README updated to document all new commands.
- Add docs/html-style.html with Catppuccin Latte/Mocha palette,
auto-selected via prefers-color-scheme
- Update html-docs workflow: embed stylesheet via --include-in-header,
remove --toc so per-page sidebar is gone (index.html remains the ToC)
- Touch docs/fish-config.md to trigger the HTML generation workflow
fix(ci): clear docs/html/ before pandoc to avoid directory-exists error
fix(docs): restore toc on index, hide it on section pages via JS, fix
full-page bg
fix(docs): fix nav alignment by grouping label+link pairs as flex units
chore(docs): regenerate offline HTML docs
The `actions/gitea-issue-create@v1` action does not exist on GitHub,
causing the docs-drift workflow to fail at clone time. Replace it with
a direct call to the Gitea REST API using curl. Also corrects the label
from `documentation` to `Kind/Documentation`.
Rename config_help → config-help and add a help wrapper that
intercepts 'help config [section]', forwarding sub-topics to
config-help. Update README and docs to use 'help config' as the
preferred interface so offline docs feel like a natural extension
of fish's built-in help system.
The symlink from ~/.local/share/man/man1/fish-config.1 to
docs/fish-config.1 is now created automatically alongside the
existing MANPATH setup, making `man fish-config` work out of the
box on any machine after cloning. Simplified docs accordingly.