Switch agent job image to Fedora with QoL CLI tooling + neutral shell defaults

- Base fedora:41; reinstall toolchain (node 22, gcc/c++, neovim, tmux, git, etc.)
- Add QoL CLI from the user's Panama setup, all in default Fedora repos: zoxide,
  eza, bat, fzf, fd, gh, gum, ripgrep, bash-completion; oh-my-posh via installer;
  pnpm/yarn/bun via npm; keep codex@0.142.0 + opencode@1.17.9 pinned
- Ship neutral system-wide defaults that work even with an empty/mounted HOME:
  /etc/profile.d/spoon.sh (zoxide/eza/fzf/oh-my-posh init + aliases),
  /etc/tmux.conf (login-shell panes), /etc/spoon/omp.json (default prompt theme)
- .dockerignore: re-include docker/agent-job-rootfs into the build context
- Verified: codex runs a real turn on Fedora (exit 0); all tools present
This commit is contained in:
Gabriel Brown
2026-06-24 09:33:39 -04:00
parent 65aae85369
commit 32a71f00ca
5 changed files with 140 additions and 12 deletions
@@ -0,0 +1,40 @@
# Spoon container — neutral interactive shell defaults (system-wide).
# Tools here benefit everyone; a user's ~/.bashrc (loaded via ~/.bash_profile,
# which the worker ensures) layers on top and can override any of this.
# Interactive shells only.
case $- in
*i*) ;;
*) return ;;
esac
export EDITOR="${EDITOR:-nvim}"
export PAGER="${PAGER:-less}"
# User-local + bun install locations.
export PATH="$HOME/.local/bin:$HOME/.bun/bin:$PATH"
if command -v zoxide >/dev/null 2>&1; then
eval "$(zoxide init bash)"
fi
if command -v eza >/dev/null 2>&1; then
alias ls='eza --group-directories-first --icons'
alias ll='eza -lh --group-directories-first --icons --git'
alias la='eza -lha --group-directories-first --icons --git'
alias lt='eza --tree --level=2 --icons --git'
fi
command -v bat >/dev/null 2>&1 && alias cat='bat --paging=never --style=plain'
alias n='nvim'
alias g='git'
alias cl='clear'
# fzf keybindings + completion when present.
for f in /usr/share/fzf/shell/key-bindings.bash \
/usr/share/bash-completion/completions/fzf; do
[ -f "$f" ] && . "$f"
done
if command -v oh-my-posh >/dev/null 2>&1 && [ -f /etc/spoon/omp.json ]; then
eval "$(oh-my-posh init bash --config /etc/spoon/omp.json)"
fi