From 0a84d8bc427e213887aecb29fbe511aa9e8179fb Mon Sep 17 00:00:00 2001 From: aguil Date: Thu, 11 Jun 2026 17:56:04 -0600 Subject: [PATCH 1/8] fix(mise): activate vale globally for nvim-lint Vale was listed in .tool-versions but mise only reads config.toml with asdf backends disabled. Register vale in global mise config with a pinned aqua lockfile entry, and prepend Unix mise shims in Neovim so GUI launches find prose linter tools on PATH. --- dot_config/mise/config.toml.tmpl | 1 + dot_config/mise/mise.lock | 53 ++++++++++++++++++++++++++++++++ dot_config/nvim/init.lua | 20 +++++++----- 3 files changed, 67 insertions(+), 7 deletions(-) diff --git a/dot_config/mise/config.toml.tmpl b/dot_config/mise/config.toml.tmpl index d1d2c73..582b6af 100644 --- a/dot_config/mise/config.toml.tmpl +++ b/dot_config/mise/config.toml.tmpl @@ -13,3 +13,4 @@ trusted_config_paths = [ [tools] bun = "1.3.13" python = "3.13.0" +vale = "latest" diff --git a/dot_config/mise/mise.lock b/dot_config/mise/mise.lock index fd53c73..ee93e93 100644 --- a/dot_config/mise/mise.lock +++ b/dot_config/mise/mise.lock @@ -81,3 +81,56 @@ provenance = "github-attestations" checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" provenance = "github-attestations" + +[tools.python."platforms.windows-x64-baseline"] +checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.vale]] +version = "3.14.2" +backend = "aqua:vale-cli/vale" + +[tools.vale."platforms.linux-arm64"] +checksum = "sha256:b11fa9955b93814f993442568b9b922604cc4b574643037b84900e9514860802" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_arm64.tar.gz" + +[tools.vale."platforms.linux-arm64-musl"] +checksum = "sha256:b11fa9955b93814f993442568b9b922604cc4b574643037b84900e9514860802" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_arm64.tar.gz" + +[tools.vale."platforms.linux-x64"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-baseline"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-musl"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-musl-baseline"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.macos-arm64"] +checksum = "sha256:14305f4e5e0756351ffd4ff8dd1e561c5d49f6a27360834238d832d9e64ac70f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_arm64.tar.gz" + +[tools.vale."platforms.macos-x64"] +checksum = "sha256:083d1494dd411ee65ce4e14106426d69908b4fe65d35cc0576cdd70e6c3c2dae" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_64-bit.tar.gz" + +[tools.vale."platforms.macos-x64-baseline"] +checksum = "sha256:083d1494dd411ee65ce4e14106426d69908b4fe65d35cc0576cdd70e6c3c2dae" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_64-bit.tar.gz" + +[tools.vale."platforms.windows-x64"] +checksum = "sha256:2469b1635264cbe3ef2e5111270f03ec7583679ed76421155f4dd390fcc18874" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Windows_64-bit.zip" + +[tools.vale."platforms.windows-x64-baseline"] +checksum = "sha256:2469b1635264cbe3ef2e5111270f03ec7583679ed76421155f4dd390fcc18874" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Windows_64-bit.zip" diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua index ea00ab6..b24b9f3 100644 --- a/dot_config/nvim/init.lua +++ b/dot_config/nvim/init.lua @@ -90,13 +90,18 @@ P.S. You can delete this when you're done too. It's your config now! :) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' +local path_sep = vim.fn.has 'win32' == 1 and ';' or ':' + +local function prepend_path(dir) + if vim.fn.isdirectory(dir) == 1 and not string.find(vim.env.PATH or '', dir, 1, true) then + vim.env.PATH = dir .. path_sep .. (vim.env.PATH or '') + end +end + if vim.fn.has 'win32' == 1 then vim.env.GIT_SSH_COMMAND = 'C:/Windows/System32/OpenSSH/ssh.exe -oBatchMode=yes' - local nvim_bin = vim.fn.stdpath('config') .. '/bin' - if vim.fn.isdirectory(nvim_bin) == 1 and not string.find(vim.env.PATH or '', nvim_bin, 1, true) then - vim.env.PATH = nvim_bin .. ';' .. (vim.env.PATH or '') - end + prepend_path(vim.fn.stdpath('config') .. '/bin') local local_app_data = vim.env.LOCALAPPDATA if local_app_data and local_app_data ~= '' then @@ -112,11 +117,12 @@ if vim.fn.has 'win32' == 1 then table.insert(mise_dirs, local_app_data .. '/mise/shims') for _, dir in ipairs(mise_dirs) do - if vim.fn.isdirectory(dir) == 1 and not string.find(vim.env.PATH or '', dir, 1, true) then - vim.env.PATH = dir .. ';' .. (vim.env.PATH or '') - end + prepend_path(dir) end end +else + -- GUI/IDE launches often skip shell profile hooks; mise shims expose global tools (e.g. vale). + prepend_path(vim.fn.expand '~/.local/share/mise/shims') end -- Nerd Font icons (nvim-tree devicons, Lazy UI, statusline). Requires a Nerd Font From 63955c416b6ad52dac7736eb9b7341bf99db2d34 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 14:55:26 -0600 Subject: [PATCH 2/8] fix(tmux): disable automatic window renaming Keep tmux window names stable instead of letting foreground process names replace them. This preserves manually named windows and avoids resurrect/continuum saving process-derived names. --- dot_tmux.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/dot_tmux.conf b/dot_tmux.conf index cec7003..d5c4238 100644 --- a/dot_tmux.conf +++ b/dot_tmux.conf @@ -7,6 +7,7 @@ set-option -g focus-events on set-option -g renumber-windows on set-option -g set-clipboard on set-option -g allow-rename off +set-window-option -g automatic-rename off set-option -g set-titles on set-option -g set-titles-string "#{session_name}:#{window_name}" set-option -sg escape-time 0 From 5e84af95b8059a9e9d7039576b635501d5001d78 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 14:55:27 -0600 Subject: [PATCH 3/8] feat(ghostty): add font defaults Configure Ghostty to use MesloLGM Nerd Font at the same size as other terminal surfaces. This keeps prompt and Neovim glyphs rendering consistently. --- dot_config/ghostty/config | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 dot_config/ghostty/config diff --git a/dot_config/ghostty/config b/dot_config/ghostty/config new file mode 100644 index 0000000..27770fb --- /dev/null +++ b/dot_config/ghostty/config @@ -0,0 +1,4 @@ +# MesloLGM Nerd Font — matches Neovim (have_nerd_font), oh-my-posh, and other terminals. +# Install: oh-my-posh font install Meslo, or brew install --cask font-meslo-lg-nerd-font +font-family = "MesloLGM Nerd Font" +font-size = 12 From 13d2760c96e15a3ff7232e38b5644d11ce4cc470 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 14:55:27 -0600 Subject: [PATCH 4/8] chore(prompt): update Java segment color Switch the oh-my-posh Java segment to the Java orange color. This keeps the language prompt styling closer to the recognizable Java brand color. --- dot_config/oh-my-posh/spaceship-custom.omp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dot_config/oh-my-posh/spaceship-custom.omp.json b/dot_config/oh-my-posh/spaceship-custom.omp.json index 3d9e20c..c0b0afd 100644 --- a/dot_config/oh-my-posh/spaceship-custom.omp.json +++ b/dot_config/oh-my-posh/spaceship-custom.omp.json @@ -104,7 +104,7 @@ { "type": "java", "style": "plain", - "foreground": "#4063D8", + "foreground": "#ED8B00", "template": "\ue738 <#ffffff>java {{ .Full }} ", "options": { "cache_duration": "5m" From 37783c8a3e9ced085ed4479964f3fc126db48d00 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 14:55:27 -0600 Subject: [PATCH 5/8] build(mise): refresh repo lock for Python Add the Python 3.13.0 locked artifacts to the repo mise lockfile. The entries include platform URLs, checksums, and provenance data used by locked mise execution. --- mise.lock | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/mise.lock b/mise.lock index ca5e2bb..62646c4 100644 --- a/mise.lock +++ b/mise.lock @@ -22,6 +22,40 @@ url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" [tools.bats."platforms.macos-x64"] url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" +[[tools.python]] +version = "3.13.0" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:06e633164cb0133685a2ce14af88df0dbcaea4b0b2c5d3348d6b81393307481a" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:b5e74d1e16402b633c6f04519618231fc0dbae7d2f9e4b1ac17c294cc3d3d076" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:10978500ab6589760716c644aeadffa0f2c0bf31ea10f0c6160fee933933a567" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:e94fafbac07da52c965cb6a7ffc51ce779bd253cd98af801347aac791b96499f" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:406664681bd44af35756ad08f5304f1ec57070bb76fae8ff357ff177f229b224" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + [[tools.shellcheck]] version = "0.11.0" backend = "aqua:koalaman/shellcheck" From a2a62c6f68c65e07923e1a1a840db6ebc4e7eb3e Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 14:55:27 -0600 Subject: [PATCH 6/8] feat(windows): track Cursor settings backup Extend the Windows backup export to include Cursor settings and keybindings alongside VS Code. Also set MesloLGM Nerd Font defaults for Windows Terminal, VS Code, and Cursor terminals. --- windows/backup/README.md | 1 + windows/backup/export.ps1 | 8 ++++++++ windows/cursor/settings.json | 5 +++++ windows/terminal/settings.json | 7 ++++++- windows/vscode/settings.json | 4 +++- 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 windows/cursor/settings.json diff --git a/windows/backup/README.md b/windows/backup/README.md index 8e57a7f..4a838e4 100644 --- a/windows/backup/README.md +++ b/windows/backup/README.md @@ -18,6 +18,7 @@ The export script currently captures these targets when present: (`Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1`) - Windows Terminal settings (`settings.json` for stable/preview packages) - VS Code user settings and keybindings +- Cursor user settings and keybindings - `winget` package export (`windows/backup/winget-packages.json`) ## Notes diff --git a/windows/backup/export.ps1 b/windows/backup/export.ps1 index 6a883c5..bd37022 100644 --- a/windows/backup/export.ps1 +++ b/windows/backup/export.ps1 @@ -59,6 +59,14 @@ $targets = @( @{ Source = Join-Path $env:APPDATA "Code\User\keybindings.json" Destination = Join-Path $repoRootPath "windows\vscode\keybindings.json" + }, + @{ + Source = Join-Path $env:APPDATA "Cursor\User\settings.json" + Destination = Join-Path $repoRootPath "windows\cursor\settings.json" + }, + @{ + Source = Join-Path $env:APPDATA "Cursor\User\keybindings.json" + Destination = Join-Path $repoRootPath "windows\cursor\keybindings.json" } ) diff --git a/windows/cursor/settings.json b/windows/cursor/settings.json new file mode 100644 index 0000000..1cff076 --- /dev/null +++ b/windows/cursor/settings.json @@ -0,0 +1,5 @@ +{ + "workbench.colorTheme": "Default Dark Modern", + "terminal.integrated.fontFamily": "MesloLGM Nerd Font", + "terminal.integrated.fontSize": 12 +} diff --git a/windows/terminal/settings.json b/windows/terminal/settings.json index 3c6023c..f7e5c76 100644 --- a/windows/terminal/settings.json +++ b/windows/terminal/settings.json @@ -59,7 +59,12 @@ ], "profiles": { - "defaults": {}, + "defaults": { + "font": { + "face": "MesloLGM Nerd Font", + "size": 12 + } + }, "list": [ { diff --git a/windows/vscode/settings.json b/windows/vscode/settings.json index d66e5c5..1cff076 100644 --- a/windows/vscode/settings.json +++ b/windows/vscode/settings.json @@ -1,3 +1,5 @@ { - "workbench.colorTheme": "Default Dark Modern" + "workbench.colorTheme": "Default Dark Modern", + "terminal.integrated.fontFamily": "MesloLGM Nerd Font", + "terminal.integrated.fontSize": 12 } From 1c54011cad8f85b02c1e9d5497b4f9b95c40cd47 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 16:23:04 -0600 Subject: [PATCH 7/8] chore(vale): add dotfiles vocabulary entries Accept additional product and tooling terms used in dotfiles docs. This keeps Vale focused on real prose issues instead of flagging known words in repository documentation. --- .../vale/styles/config/vocabularies/Dotfiles/accept.base.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt b/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt index 6cbe59f..6077c15 100644 --- a/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt +++ b/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt @@ -78,3 +78,8 @@ (?i)\bbooleans\b (?i)\bshuffleable\b (?i)\bgithub\b +(?i)\basdf\b +(?i)\bIntellij\b +(?i)\bproxying\b +(?i)\bmiddleware\b +(?i)\bdialogs\b From 55c173413826a3c71816d4f0cb6230fda963cb60 Mon Sep 17 00:00:00 2001 From: aguil Date: Tue, 16 Jun 2026 16:23:04 -0600 Subject: [PATCH 8/8] chore(gitignore): ignore agent review output Ignore the local `.agents-code-review/` directory produced by review automation. The generated artifacts are machine-local scratch data and should not appear in dotfiles diffs. --- dot_gitignore_global | 1 + 1 file changed, 1 insertion(+) diff --git a/dot_gitignore_global b/dot_gitignore_global index 8461e8d..af6f461 100644 --- a/dot_gitignore_global +++ b/dot_gitignore_global @@ -122,4 +122,5 @@ tags # Persistent undo [._]*.un~ +.agents-code-review/ **/.claude/settings.local.json