fix(deps): clean up dependency catalog tiers and remove dead installer code #46

Merged
rootiest merged 4 commits from fix/deps-catalog-uv-pipx into main 2026-06-12 03:54:37 +00:00
Owner

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

  • fish-deps status — Required shows only fish, fzf, zoxide; cargo, starship, uv, direnv, paru, yay, python3 appear under Recommended
  • fish-deps install on a system missing cargo/starship/uv — not flagged as critical missing deps
  • fish-deps install on a non-Arch system — paru/yay silently skipped, no errors
  • Grep functions/_fish_deps_install.fish for fisher and pipx — no results
  • Starship absent: shell falls back to fish built-in prompt cleanly
  • python3 absent: save_claude_session / save_antigravity_session emit {} and exit 0

🤖 Generated with Claude Code

## 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)
rootiest added 1 commit 2026-06-12 03:28:52 +00:00
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
rootiest added 1 commit 2026-06-12 03:30:16 +00:00
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.
rootiest added 1 commit 2026-06-12 03:36:53 +00:00
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.
rootiest added 1 commit 2026-06-12 03:50:41 +00:00
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 code 2026-06-12 03:53:08 +00:00
rootiest merged commit 3eec6c3f89 into main 2026-06-12 03:54:37 +00:00
rootiest deleted branch fix/deps-catalog-uv-pipx 2026-06-12 03:54:37 +00:00
Sign in to join this conversation.