aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/common/.local/bin/aix
Commit message (Collapse)AuthorAgeFilesLines
* remove aix and hey: 'ai' lives in claude-templates nowCraig Jennings2026-04-201-291/+0
| | | | | | | | | | | | | | Both the aix script and hey shell function are superseded by the unified 'ai' launcher in claude-templates (bin/ai, installed via make install). Single command, three modes, smart in-tmux behavior so all sessions survive Hyprland crashes. Per-machine setup adds a step: cd ~/projects/claude-templates && make install The orphaned ~/.local/bin/aix symlink should be removed manually on each machine after pulling this change (rm ~/.local/bin/aix). Stow re-stow would also clean it up.
* aix: synchronous fetch + git-status annotations + auto-pull if cleanCraig Jennings2026-04-201-3/+98
| | | | | | | | | | | | | | | | | | | | | | | | | Adds multi-machine sync awareness to the session launcher. Before fzf: - Fetches all candidate repos in parallel (capped at 6 concurrent) - Annotates each entry with git status: (↑N ↓N dirty), (no upstream) - Clean repos show no annotation When launching a window: - If working tree is clean, has upstream, is behind (not ahead): pull - Otherwise: open window as-is, user handles any sync manually Design choices: - Fetches are synchronous — accurate status at the cost of a brief wait on session start. Parallel execution keeps it fast (~1-2s for 22 repos). - Pull is --ff-only — never merges, never creates merge commits in aix - Diverged repos (ahead AND behind) trigger no auto-action; user decides - No stash/pop dance — unreliable in multi-project batches; prefer explicit awareness via annotation Primary use case: moving between laptop and desktop. Wrap-it-up's always-push ensures remote is current at session end; this ensures local is current at next session start.
* aix: update to .ai/ layout; filter candidates to template projectsCraig Jennings2026-04-201-4/+11
| | | | | | | | | | | | | | Two changes: - AI_INSTRUCTIONS now points at .ai/protocols.org (was docs/) — aligns with the template docs/ → .ai/ restructure - build_candidates filters directories to those with .ai/protocols.org present. Previously listed every dir under ~/code/ and ~/projects/ including third-party clones and non-template projects, which would fail silently when Claude tried to read a missing protocols file. New projects that haven't been initialized (no .ai/ yet) will not appear in the fzf list. Bootstrap those with a direct claude invocation; the first-session workflow takes over once .ai/ exists.
* fix(aix): classify windows by project name instead of shell regexCraig Jennings2026-02-141-8/+28
| | | | | | sort_windows now builds known project basenames from candidate dirs and treats everything else as non-project. Prevents TUI apps (mc, ranger, htop) from being misclassified as project windows.
* feat(aix): focus newly opened project window after sortCraig Jennings2026-02-141-4/+2
| | | | | | Move select-window after sort_windows so the first new project gets focus via stable window ID. Also restructure todo.org into flat task list (V2MOM preserved in docs/v2mom.org).
* fix(aix): respect tmux base-index for shell window placementCraig Jennings2026-02-131-7/+8
| | | | | Shell window was intermittently shifting to index 1 because sort_windows hardcoded index 0, which conflicts with base-index=1 and renumber-windows.
* feat(aix): sort windows on every attach, add --attach flagCraig Jennings2026-02-101-11/+12
| | | | | | Sort windows (shells at 0, projects alphabetically from 1) on every session access including --attach. Move --attach check after function definitions so sort_windows is available.
* refactor(aix): extract helper functions, remove duplicationCraig Jennings2026-02-101-35/+62
| | | | | | Extract attach_session, create_window, read_selections, and build_candidates functions. Remove unused variable. Simplify new-session window ID capture.
* feat(aix): sort windows alphabetically, shells last, start from 1Craig Jennings2026-02-101-2/+27
| | | | | | Windows are reordered after creation and when adding to an existing session. Shell windows (bash/zsh) sort to the end. Window numbering starts at 1. Focus lands on the first selected window.
* feat(aix): add windows to existing session, fix special char handlingCraig Jennings2026-02-101-33/+76
| | | | | | | Allow calling aix from within the ai tmux session to add new project windows. Already-open projects are filtered from the selection list. Use tmux window IDs instead of names to fix errors with dots in directory names (e.g. chime.el).
* feat(archsetup): add slack with Wayland/DWM conditionalCraig Jennings2026-02-081-4/+4
| | | | | | Add slack-desktop-wayland for Hyprland, slack-desktop for DWM. Update Claude startup prompts, fix Hyprland portal/waybar startup order, add signal-desktop Wayland .desktop override.
* feat(common): add aix script for fzf-based Claude Code tmux launcherCraig Jennings2026-02-071-0/+74
Provides flexible alternative to ai-assistants: multi-select project directories via fzf, then open each in a tmux window running Claude. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>