A series of catalog accuracy fixes prompted by adding python3 as a tracked dependency. The Required tier is now honest: fish, fzf, and zoxide — the three tools the config functionally can't work without. Everything else degrades gracefully and is classified accordingly.
Changes
Tier corrections
Dependency
Before
After
Reason
uv
Required
Recommended
Only used in the fish-from-source build path in fish-deps; all paths gated on type -q uv
cargo
Required
Recommended
Only used by fish-deps to install Rust tools or build fish; all paths gated on type -q cargo
starship
Required
Recommended
type -q starship guard in conf.d/starship.fish; shell falls back to fish's built-in prompt
direnv
Required
Recommended
type -q direnv guard in config.fish; auto-venv checks $DIRENV_DIR at runtime, not the binary
paru / yay
Required (docs)
Recommended
Already rec in the catalog code — docs just hadn't caught up
fisher removed from catalog
fisher is auto-bootstrapped by conf.d/first_run.fish. There is no scenario where a user or fish-deps would need to manually install it. Removed from _fdc_bins and cleaned up the now-dead fisher-bootstrap / special-fisher installer cases.
pipx removed (dead code)
The installer had a case pipx method-builder and special-pipx/special-pip execution cases, but no catalog entry ever set special=pipx. Both branches were permanently unreachable. The docs listed "6. pipx (Python tools)" as an install priority, which was equally misleading.
python3 added (Recommended)
python3 is used unguarded by the AI session helpers and (guarded) by the paru/yay log cleaner, but was absent from the catalog. Added as Recommended with type -q python3 guards on the session helpers so they emit valid {} JSON and exit cleanly when absent (Convention §6).
Files changed
functions/_fish_deps_catalog.fish — tier changes, fisher removed; arrays verified aligned at 26 entries each
functions/_fish_deps_install.fish — removed dead fisher-bootstrap, special-fisher, case pipx, special-pipx, special-pip cases
## Summary
A series of catalog accuracy fixes prompted by adding `python3` as a tracked dependency. The Required tier is now honest: **fish, fzf, and zoxide** — the three tools the config functionally can't work without. Everything else degrades gracefully and is classified accordingly.
## Changes
### Tier corrections
| Dependency | Before | After | Reason |
|---|---|---|---|
| `uv` | Required | Recommended | Only used in the fish-from-source build path in fish-deps; all paths gated on `type -q uv` |
| `cargo` | Required | Recommended | Only used by fish-deps to install Rust tools or build fish; all paths gated on `type -q cargo` |
| `starship` | Required | Recommended | `type -q starship` guard in `conf.d/starship.fish`; shell falls back to fish's built-in prompt |
| `direnv` | Required | Recommended | `type -q direnv` guard in `config.fish`; auto-venv checks `$DIRENV_DIR` at runtime, not the binary |
| `paru` / `yay` | Required (docs) | Recommended | Already `rec` in the catalog code — docs just hadn't caught up |
### fisher removed from catalog
fisher is auto-bootstrapped by `conf.d/first_run.fish`. There is no scenario where a user or `fish-deps` would need to manually install it. Removed from `_fdc_bins` and cleaned up the now-dead `fisher-bootstrap` / `special-fisher` installer cases.
### pipx removed (dead code)
The installer had a `case pipx` method-builder and `special-pipx`/`special-pip` execution cases, but no catalog entry ever set `special=pipx`. Both branches were permanently unreachable. The docs listed "6. pipx (Python tools)" as an install priority, which was equally misleading.
### python3 added (Recommended)
python3 is used unguarded by the AI session helpers and (guarded) by the paru/yay log cleaner, but was absent from the catalog. Added as Recommended with `type -q python3` guards on the session helpers so they emit valid `{}` JSON and exit cleanly when absent (Convention §6).
## Files changed
- `functions/_fish_deps_catalog.fish` — tier changes, fisher removed; arrays verified aligned at 26 entries each
- `functions/_fish_deps_install.fish` — removed dead `fisher-bootstrap`, `special-fisher`, `case pipx`, `special-pipx`, `special-pip` cases
- `docs/fish-config.md` — §5.6 tier summary, §6 Required/Recommended catalog entries updated throughout
## Manual Verification
- [x] `fish-deps status` — Required shows only `fish`, `fzf`, `zoxide`; `cargo`, `starship`, `uv`, `direnv`, `paru`, `yay`, `python3` appear under Recommended
- [x] `fish-deps install` on a system missing cargo/starship/uv — not flagged as critical missing deps
- [x] `fish-deps install` on a non-Arch system — paru/yay silently skipped, no errors
- [x] Grep `functions/_fish_deps_install.fish` for `fisher` and `pipx` — no results
- [x] Starship absent: shell falls back to fish built-in prompt cleanly
- [x] python3 absent: `save_claude_session` / `save_antigravity_session` emit `{}` and exit 0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
uv is only used in the fish-deps fish-from-source build path
(uv run --no-managed-python cargo install --path .) and is not required
by the config at runtime. All consumers degrade gracefully without it.
pipx appeared in the installer's method-building and execution switch
blocks but no catalog entry ever sets special=pipx, making both branches
permanently unreachable dead code. The docs listed pipx as install
priority #6 which was equally misleading.
- _fish_deps_catalog: change uv tier from req → rec
- _fish_deps_install: remove case pipx method-builder and
special-pipx / special-pip execution cases
- docs/fish-config.md: move uv from Required to Recommended catalog
entry with accurate description; drop pipx from install priority
list and tier summary
paru and yay were already classified as rec in _fish_deps_catalog.fish
(they've always been position 9-10 in the tiers array with rec values)
but docs/fish-config.md still listed them under Required. Non-Arch
systems have had silent guards throughout, so they were never truly
required. This syncs the docs with what the catalog already says.
direnv integration is fully guarded with type -q direnv in config.fish.
The auto-venv script checks $DIRENV_DIR (set at runtime), not the binary.
Without direnv installed the hook simply never loads and venv activation
fires normally. No functionality breaks.
Required tier is now fish, fzf, and zoxide only — the tools the config
meaningfully can't function without. Everything else degrades gracefully.
- cargo: only used by fish-deps to install Rust tools or build fish from
source; all paths are already gated on type -q cargo
- starship: type -q guard in conf.d/starship.fish; shell falls back to
fish's built-in prompt without it
- fisher: auto-bootstrapped by first_run.fish; no need for users or
fish-deps to manage it. Remove from catalog and clean up the now-dead
fisher-bootstrap/special-fisher installer cases.
Catalog arrays verified aligned at 26 entries each.
rootiest
changed title from fix(deps): demote uv to recommended, remove dead pipx installer code to fix(deps): clean up dependency catalog tiers and remove dead installer code2026-06-12 03:53:08 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
A series of catalog accuracy fixes prompted by adding
python3as a tracked dependency. The Required tier is now honest: fish, fzf, and zoxide — the three tools the config functionally can't work without. Everything else degrades gracefully and is classified accordingly.Changes
Tier corrections
uvtype -q uvcargotype -q cargostarshiptype -q starshipguard inconf.d/starship.fish; shell falls back to fish's built-in promptdirenvtype -q direnvguard inconfig.fish; auto-venv checks$DIRENV_DIRat runtime, not the binaryparu/yayrecin the catalog code — docs just hadn't caught upfisher removed from catalog
fisher is auto-bootstrapped by
conf.d/first_run.fish. There is no scenario where a user orfish-depswould need to manually install it. Removed from_fdc_binsand cleaned up the now-deadfisher-bootstrap/special-fisherinstaller cases.pipx removed (dead code)
The installer had a
case pipxmethod-builder andspecial-pipx/special-pipexecution cases, but no catalog entry ever setspecial=pipx. Both branches were permanently unreachable. The docs listed "6. pipx (Python tools)" as an install priority, which was equally misleading.python3 added (Recommended)
python3 is used unguarded by the AI session helpers and (guarded) by the paru/yay log cleaner, but was absent from the catalog. Added as Recommended with
type -q python3guards on the session helpers so they emit valid{}JSON and exit cleanly when absent (Convention §6).Files changed
functions/_fish_deps_catalog.fish— tier changes, fisher removed; arrays verified aligned at 26 entries eachfunctions/_fish_deps_install.fish— removed deadfisher-bootstrap,special-fisher,case pipx,special-pipx,special-pipcasesdocs/fish-config.md— §5.6 tier summary, §6 Required/Recommended catalog entries updated throughoutManual Verification
fish-deps status— Required shows onlyfish,fzf,zoxide;cargo,starship,uv,direnv,paru,yay,python3appear under Recommendedfish-deps installon a system missing cargo/starship/uv — not flagged as critical missing depsfish-deps installon a non-Arch system — paru/yay silently skipped, no errorsfunctions/_fish_deps_install.fishforfisherandpipx— no resultssave_claude_session/save_antigravity_sessionemit{}and exit 0🤖 Generated with Claude Code
fix(deps): demote uv to recommended, remove dead pipx installer codeto fix(deps): clean up dependency catalog tiers and remove dead installer code