Skip to content

Remove unused packages and config#23

Merged
fortes merged 26 commits into
mainfrom
remove-unused-packages-and-config
May 8, 2026
Merged

Remove unused packages and config#23
fortes merged 26 commits into
mainfrom
remove-unused-packages-and-config

Conversation

@fortes
Copy link
Copy Markdown
Owner

@fortes fortes commented May 8, 2026

No description provided.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the development environment by migrating Neovim to the built-in vim.pack manager, removing VS Code and Helix configurations, and introducing a Google Cloud CLI installation script. It also updates Node package management and refines Vim/Neovim settings for newer versions. Feedback highlights a potential typo in the Mac package list, the need for dynamic Homebrew prefix detection, and improvements to script robustness regarding non-interactive commands and empty package arrays. A specific Vim configuration change was also noted for potentially disabling file inclusion features.

Comment thread script/setup_mac
cmus
# For Docker
colima
container
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The package container does not appear to be a valid Homebrew formula or cask. This is likely a typo for containerd (though usually managed via Docker) or another tool like skopeo or container-diff.

Comment thread script/install_gcloud
. "$(dirname "${BASH_SOURCE[0]}")/lib.sh"

install_gcloud_mac() {
declare -r brew_prefix="/opt/homebrew"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Hardcoding the Homebrew prefix to /opt/homebrew assumes an Apple Silicon Mac. It's better to determine the prefix dynamically to support Intel Macs as well.

  declare -r brew_prefix="$(brew --prefix)"

Comment thread script/install_gcloud Outdated
if [ ! -f "$gcloud_sources_list" ]; then
echo "Adding Google Cloud GPG key (requires sudo)"
curl -sS "$gcloud_key_url" \
| sudo gpg --dearmor --output "$gcloud_key_path"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The gpg --dearmor command will prompt for confirmation if the output file already exists. Adding the --yes flag ensures the script remains non-interactive.

      | sudo gpg --dearmor --yes --output "$gcloud_key_path"

Comment thread script/install_node_packages Outdated

# Install npm-only packages
echo "Installing global npm packages …"
npm install --global "${NPM_PACKAGES[@]}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

If the NPM_PACKAGES array is empty, npm install --global will fail because it expects at least one package name. It's safer to check if the array contains any items before running the command.

  [[ ${#NPM_PACKAGES[@]} -gt 0 ]] && npm install --global "${NPM_PACKAGES[@]}"

Comment thread stowed-files/nvim/.vimrc
set history=10000
set hlsearch
set include=.
set include=
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Setting include to an empty string disables the ability for Vim to find included files (e.g., using gf or [i). If the intention was to reset it to the default value, use set include&.

  set include&

fortes and others added 15 commits May 7, 2026 23:24
- Replace lazy.nvim with vim.pack (built-in nvim 0.12 package manager)
- Use `use()` helper to colocate plugin specs with setup functions
- Switch nvim-treesitter to main branch for nvim 0.12 API compatibility
- Build treesitter parsers via PackChanged hook (equiv to lazy build step)
- Build telescope-fzf-native via PackChanged hook
- Remove CopilotChat, Sidekick, and nvim-treesitter-textobjects plugins
- Add tree-sitter-cli to brew and apt package lists
- Update README with vim.pack.update() post-setup instructions
- Fix install_github_packages to drop lazy.nvim sync reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
copilot.lua supports next-edit suggestion (nes), has better completion
integration, and is a pure Lua implementation. Remove the native
vim.lsp.enable('copilot') which conflicts with copilot.lua's own server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Guard NPM_PACKAGES with length check so an empty array doesn't error
- Pass --yes to gpg --dearmor for fully non-interactive runs

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@fortes-figma fortes-figma force-pushed the remove-unused-packages-and-config branch from 09450e7 to 4897b1b Compare May 8, 2026 03:30
@fortes
Copy link
Copy Markdown
Owner Author

fortes commented May 8, 2026

@codex Please review

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

fortes and others added 11 commits May 8, 2026 00:26
Bun has a simpler, more stable global install layout (~/.bun/bin/, or
~/.local/bin/ via BUN_INSTALL) and avoids the cross-version store-layout
churn that broke pnpm 9 → 10 upgrades. Verified end-to-end via a clean
docker build.

- Move all 26 globals from PACKAGES (pnpm) to BUN_PACKAGES
- Switch tobi/qmd → @tobilu/qmd: github source has no built dist/, but
  the published package on npm does
- Drop `npm` from globals — Node bundles it; corepack provides shims for
  pnpm/yarn on demand for project-local work
- Switch install_claude_code from `pnpm dlx` to `bun x` so we don't need
  pnpm to be eagerly activated by corepack
- Eval fnm env in generate_completions so `npm completion` finds node
  (used to silently rely on a pnpm shim that has since been removed)
- Remove the stale `pnpm approve-builds --global` step from README;
  no longer needed without pnpm globals (and `bd` was already removed)

Note: `@github/copilot-language-server` stays on npm — bun's hoisting
can't resolve its bundled language-server binary.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- AGENTS.md: drop the obsolete Firefox-profile bullet (script/stow no
  longer has that special case) and update the Neovim section to
  reference vim.pack instead of lazy.nvim
- init.lua: PackChanged kind is "delete" (per :h pack.txt), not
  "remove" — the early-return was dead code so deletes would fall
  through to the install/build branch
- .vimrc: trailing whitespace on the leadtab listchars line was
  significant (it's a literal space in the option value); fix by
  appending a no-op trailing comma instead of stripping it

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obsidian.nvim hard-errors at setup time if none of the configured
workspace paths resolve to existing directories. That breaks nvim
startup on fresh machines (containers, new boxes) where ~/notes hasn't
been cloned yet.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bun's global install layout doesn't satisfy ajv-draft-04's
\`require('ajv/dist/core')\`, so yaml-language-server fails to start
under nvim with MODULE_NOT_FOUND. Same class of problem as
@github/copilot-language-server.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
oxfmt rejects --stdin-filename. The .vimrc already uses the correct
flag; the conform formatter spec drifted out of sync.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Globals are installed via bun now, so prepending ${PNPM_HOME}/bin makes
stale pnpm-9 shims left over on existing machines shadow the new bun
binaries in ~/.local/bin. Drop the PATH addition; PNPM_HOME stays
exported so pnpm-via-corepack still has somewhere for project-local
state.

Also drop the dead "eslint disabled in Deno projects" line from
AGENTS.md (init.lua doesn't enable an eslint LSP — oxlint/oxfmt/tsgo
are the things gated on Deno detection now), and add a README snippet
that finds and removes broken symlinks pointing into stowed-files/
after a package is deleted.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- cleanup_disk: add cleanup_bun for `bun pm cache rm`
- Drop comments that just narrate migration history ("we no longer
  use ...", "old pnpm-9 shims would shadow ..."); the absence of the
  code is enough
- Tighten the PackChanged build hook: replace the lazy.nvim comparison
  block and decorative banner with a single line on the actual
  non-obvious gotcha (PackChanged fires before rtp prepend)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Without an explicit prefix, npm installs globals into the fnm-managed
per-version bin dir (~/.local/state/fnm_multishells/<id>/bin/). Switching
Node versions then drops those binaries from PATH. Pointing npm at
~/.local (same root as bun's BUN_INSTALL) keeps copilot-language-server
and yaml-language-server reachable across `fnm use`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
actions/checkout defaults to github.sha which, for workflow_run events,
is the default branch — so docker/mac CI was rebuilding main on every
PR push. Pin the checkout to github.event.workflow_run.head_sha so it
tests the SHA that triggered bash-syntax.

Also expand bash-syntax's path filter to .github/workflows/** so
changes to any workflow file (including this one) trigger the chain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- conform format_after_save: drop async/timeout_ms — they're no-ops
  there (format_after_save is always async, timeout doesn't apply)
- obsidian.nvim: actually set conceallevel=1 in the BufEnter that the
  ignore_conceal_warn comment claimed was setting it
- telescope project_files: pcall doesn't catch git_files's async error
  ("not in a git repo"), so the find_files fallback never fires;
  check vim.fs.root(0, '.git') up front instead
- LSP gating: replace startup-only in_deno_project with per-buffer
  detection via root_dir callbacks. Opening a Deno file from a
  non-Deno cwd now correctly skips tsgo/oxlint/oxfmt (and vice versa)
- dirvish: rename <leader>t mapping to <leader>T so it doesn't shadow
  the global telescope-pickers binding

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…Silicon gate

- install_node_packages: export NPM_CONFIG_PREFIX="$HOME/.local" before
  the npm install. The stowed .npmrc isn't yet symlinked during the
  docker build (script/setup runs before stowed-files/ is COPYed in),
  so without the env var the npm globals fell back to fnm's
  per-version prefix. Now copilot-language-server and
  yaml-language-server land alongside the bun globals in ~/.local/bin.
- install_gcloud: handle -h/--help so it actually prints usage instead
  of running the install path
- setup_mac: bail with a clear error on Intel Macs. The brew_prefix is
  already hardcoded to /opt/homebrew and several formulae (e.g.
  Apple's `container`) require Apple Silicon, so this just makes the
  failure mode explicit at the top instead of cryptic later

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@fortes fortes merged commit 498ee9e into main May 8, 2026
1 check passed
@fortes fortes deleted the remove-unused-packages-and-config branch May 8, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant