From f4069cdbe93f39f592f51032ef38b24a75c758ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20P=C4=99dzim=C4=85=C5=BC?= Date: Tue, 5 May 2026 12:37:43 +0200 Subject: [PATCH] chore: release v1.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nvim: add Wqa/WQa/WQA → wqa command aliases (closes #21) - docs: AGENTS.md — new agent-facing codebase guide - docs: CLAUDE.md — add Neovim config section documenting alias table --- AGENTS.md | 52 ++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 13 ++++++++++ CLAUDE.md | 20 +++++++++++++++ VERSION | 2 +- nvim/.config/nvim/init.lua | 3 ++- 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..cfd0082 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,52 @@ +# AGENTS.md — dotfiles + +This file provides codebase context for AI coding agents (Codex, Copilot, etc.). +See `CLAUDE.md` for the full reference — everything below is a summary. + +## Repository purpose + +Personal dotfiles for Ubuntu/Debian: one-command install (`install.sh`), managed +updates (`update.sh`), post-install test suite (`test.sh`), and CI matrix covering +3 Ubuntu versions × 3 install profiles + 2 no-sudo variants. + +## Key files + +| File | Role | +|------|------| +| `install.sh` | Entry point — profile selection, module orchestration | +| `update.sh` | Tool updates with `--check` mode and PATH shadow detection | +| `test.sh` | Post-install validation (run after every install and update) | +| `lib/utils.sh` | Shared helpers: logging, sudo detection, GitHub release fetching | +| `modules/` | Per-concern installers: base, zsh, tmux, neovim, tools | +| `nvim/.config/nvim/init.lua` | Single-file Neovim config (lazy.nvim) | + +## Critical rules (never violate) + +- All scripts use `set -euo pipefail`. Use `count=$(( count + 1 ))` — never `(( count++ ))`. +- Every function variable must be declared `local` (or `local -a` for arrays). +- Never construct GitHub release asset URLs manually — use `_gh_release_info` or + `_gh_latest_release` from `lib/utils.sh`; asset names change between releases. +- Never use `command -v` at install time to probe binary locations — use direct + `[ -x /absolute/path ]` probes. +- Never commit generated protobuf files (`*_pb2.py`, `*.pb.go`, etc.). +- Logging: `log_step`, `log_info`, `log_ok`, `log_warn`, `log_error`, `die` — never bare `echo`. + +## Neovim config + +`nvim/.config/nvim/init.lua` registers mixed-case Ex command aliases at the bottom +of the file so accidental Shift-holding doesn't fail: + +``` +W → w Wq/WQ → wq Wqa/WQa/WQA → wqa Q → q Qa/QA → qa +``` + +Add new aliases to the `pairs({…})` table — one line, no boilerplate. + +## Version bump rules + +- `fix:` commits → patch (`X.Y.Z+1`) +- `feat:` commits → minor (`X.Y+1.0`) +- `BREAKING CHANGE` → major (`X+1.0.0`) + +Edit `VERSION`, update `CHANGELOG.md`, commit as `chore: release vX.Y.Z`, tag +`vX.Y.Z` on the merge commit on `master`. diff --git a/CHANGELOG.md b/CHANGELOG.md index 7588e23..e049061 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.5.0] - 2026-05-05 + +### Added +- `nvim/init.lua`: `Wqa`, `WQa`, `WQA` command aliases mapping to `wqa` + (write-quit-all), completing the mixed-case alias set alongside the existing + `Wq`/`WQ` aliases. Resolves #21. +- `AGENTS.md`: new agent-facing codebase guide summarising the key rules, file + layout, and Neovim command alias table for Codex / Copilot / other AI agents. + +### Changed +- `CLAUDE.md`: added "Neovim config" section documenting the full Ex command alias + table (`W`, `Wq`/`WQ`, `Wqa`/`WQa`/`WQA`, `Q`, `Qa`/`QA`) and how to extend it. + ## [1.4.1] - 2026-05-03 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index 6ee3940..498c881 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -274,6 +274,26 @@ warns and bails rather than creating a link inside it. --- +## Neovim config + +`nvim/.config/nvim/init.lua` is a single-file config using lazy.nvim. + +**Command aliases** — the bottom of `init.lua` registers mixed-case variants of +common Ex commands so accidental Shift-holding doesn't fail: + +| Typed | Runs | +|-------|------| +| `W` | `w` | +| `Wq`, `WQ` | `wq` | +| `Wqa`, `WQa`, `WQA` | `wqa` | +| `Q` | `q` | +| `Qa`, `QA` | `qa` | + +Add new aliases to the `pairs({…})` table at the bottom of `init.lua` — one line, +no per-command boilerplate. + +--- + ## fzf integration fzf is installed via **git clone** to `~/.fzf/` (not apt, not a binary release). diff --git a/VERSION b/VERSION index 347f583..bc80560 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.1 +1.5.0 diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index c3f4ff8..1c66a4a 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -716,6 +716,7 @@ map('n', 'L', 'Lazy', { desc = 'Lazy UI' }) -- ══════════════════════════════════════════════════════════════════════════════ -- Commands -- ══════════════════════════════════════════════════════════════════════════════ -for lhs, rhs in pairs({ W = 'w', WQ = 'wq', Wq = 'wq', Q = 'q', Qa = 'qa', QA = 'qa' }) do +for lhs, rhs in pairs({ W = 'w', WQ = 'wq', Wq = 'wq', Q = 'q', Qa = 'qa', QA = 'qa', + Wqa = 'wqa', WQa = 'wqa', WQA = 'wqa' }) do vim.api.nvim_create_user_command(lhs, rhs, {}) end