Phases 0-1 + Sprint A: module split, CLI layer, org-refresh fix, hygiene

- LICENSE (MIT) + README truth-pass; docs/cli.md CLI contract
- CLI subcommands (src/cli_cmds/) per "TUI for users, CLI for users+AI"
- Hub/detail refactor: keymap dispatch, modal split, action enum, BgMsg bus
- Fix: org repos were never refreshed (owner==username match); refresh now
  parallel — 49 repos in ~11s, surfaced 70 previously invisible PRs
- Fix: 3 date bugs in detail/git.rs (format-local, Local::now, 1y month math)
- Stash indicator + [m] actions, session persistence, gh CLI token fallback
- Legacy UI modules removed; plan/ docs (roadmap, audit, debate, handoff)
This commit is contained in:
dualfroz committed 2026-07-06 14:42:52 +02:00
1 parent 5787b14880
commit 0468c032c6
100 files changed
+11614 -9840

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env bash
# Installs the latest vulp release for Linux x86_64.
# Usage: curl -fsSL https://raw.githubusercontent.com/<owner>/<repo>/main/install/vulp-installer.sh | bash
set -euo pipefail
REPO="${VULP_REPO:-dualfroz/fxg}"
INSTALL_DIR="${VULP_INSTALL_DIR:-$HOME/.local/bin}"
BIN_NAME="vulp"
os="$(uname -s)"
arch="$(uname -m)"
if [ "$os" != "Linux" ] || [ "$arch" != "x86_64" ]; then
echo "vulp-installer: no prebuilt binary for $os/$arch (only Linux x86_64 is published)." >&2
exit 1
fi
echo "Fetching latest vulp release info from github.com/$REPO..."
release_json="$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest")"
asset_url="$(printf '%s' "$release_json" \
| grep -o '"browser_download_url": *"[^"]*vulp-linux-x86_64[^"]*"' \
| head -n1 \
| sed -E 's/.*"(https:[^"]+)"/\1/')"
if [ -z "$asset_url" ]; then
echo "vulp-installer: couldn't find a linux-x86_64 asset in the latest release." >&2
exit 1
fi
mkdir -p "$INSTALL_DIR"
tmp="$(mktemp)"
echo "Downloading $asset_url..."
curl -fsSL "$asset_url" -o "$tmp"
chmod +x "$tmp"
mv "$tmp" "$INSTALL_DIR/$BIN_NAME"
case ":$PATH:" in
*":$INSTALL_DIR:"*) ;;
*)
shell_rc=""
case "${SHELL:-}" in
*/zsh) shell_rc="$HOME/.zshrc" ;;
*/bash) shell_rc="$HOME/.bashrc" ;;
esac
if [ -n "$shell_rc" ]; then
echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$shell_rc"
echo "Added $INSTALL_DIR to PATH in $shell_rc (restart your shell, or run: export PATH=\"$INSTALL_DIR:\$PATH\")"
else
echo "Add $INSTALL_DIR to your PATH to use 'vulp' from anywhere."
fi
;;
esac
echo "Installed vulp to $INSTALL_DIR/$BIN_NAME"
exec "$INSTALL_DIR/$BIN_NAME"