Silence neovim default and ssh matchBlocks deprecation warnings #9

Closed
allod-agent wants to merge 1 commit from agent/hm-deprecations into master
Member

Every VM and the hypervisor's user profile stop printing the two neovim default warnings and the matchBlocks warning attributed to hosts/dev/allod-dev/home.nix. The rendered ~/.ssh/config is unchanged. The one behavioural change is that neovim no longer bundles its Ruby and Python providers, which is the 26.05 default and which nothing in this profile uses. If it is wrong, revert this PR.

Merge order with allod/archetypes#80 (issue allod/archetypes#79). Do not land this before the archetypes migration, and do not bump the deploy lock's profiles input past this commit before its archetypes input carries that change. With archetypes still on matchBlocks and this profile on settings, Home Manager's legacy conversion drops the framework's mkDefault and retypes the identity file, and allod-dev fails to evaluate with a conflicting-type error. Measured against the current archetypes pin. With the archetypes change in place, evaluation is clean.

What changes

  • modules/preferences.nix: programs.neovim.withRuby = false and withPython3 = false, set explicitly because home.stateVersion predates the new default. home.stateVersion is unchanged.
  • hosts/dev/allod-dev/home.nix: the forge-host block moves from programs.ssh.matchBlocks to programs.ssh.settings with the same values under the upstream names HostName, User, Port, IdentityFile, IdentitiesOnly.

Risk

R2. Localized to two files; the config render is pinned byte-for-byte below; the ordering hazard above is the integration uncertainty, and the deploy repo's composed-layer canary fails a lock bump in the wrong order before any machine is built. Rollback is a revert.

Validation

Run by the integrator at 0f94a10:

  • nix flake check in this repo passes.
  • Against the deploy template with --override-input profiles <this worktree> --override-input archetypes <allod/archetypes#79 branch>: allod-dev evaluates with no warnings, and its rendered ~/.ssh/config is byte-identical to master's. With this override alone, evaluation fails with the conflicting-type error described above, which is the ordering constraint.

Cold cross-family review: gpt-5.6-terra via codex exec, reasoning effort high, read the diff at 0f94a10 (a Claude-family worker authored it). One finding, marked blocker: with the framework still on matchBlocks, this profile's IdentityFile string collides with the legacy conversion's list at equal priority instead of overriding it. Confirmed by the measurement above; it is the ordering constraint at the top of this body, not a defect in the migrated form, and no code change follows. No other findings.

Closes allod/profiles#8

Every VM and the hypervisor's user profile stop printing the two neovim default warnings and the `matchBlocks` warning attributed to `hosts/dev/allod-dev/home.nix`. The rendered `~/.ssh/config` is unchanged. The one behavioural change is that neovim no longer bundles its Ruby and Python providers, which is the 26.05 default and which nothing in this profile uses. If it is wrong, revert this PR. **Merge order with allod/archetypes#80 (issue allod/archetypes#79).** Do not land this before the archetypes migration, and do not bump the deploy lock's `profiles` input past this commit before its `archetypes` input carries that change. With archetypes still on `matchBlocks` and this profile on `settings`, Home Manager's legacy conversion drops the framework's `mkDefault` and retypes the identity file, and `allod-dev` fails to evaluate with a conflicting-type error. Measured against the current archetypes pin. With the archetypes change in place, evaluation is clean. ## What changes - `modules/preferences.nix`: `programs.neovim.withRuby = false` and `withPython3 = false`, set explicitly because `home.stateVersion` predates the new default. `home.stateVersion` is unchanged. - `hosts/dev/allod-dev/home.nix`: the forge-host block moves from `programs.ssh.matchBlocks` to `programs.ssh.settings` with the same values under the upstream names `HostName`, `User`, `Port`, `IdentityFile`, `IdentitiesOnly`. ## Risk R2. Localized to two files; the config render is pinned byte-for-byte below; the ordering hazard above is the integration uncertainty, and the deploy repo's composed-layer canary fails a lock bump in the wrong order before any machine is built. Rollback is a revert. ## Validation Run by the integrator at 0f94a10: - `nix flake check` in this repo passes. - Against the deploy template with `--override-input profiles <this worktree> --override-input archetypes <allod/archetypes#79 branch>`: `allod-dev` evaluates with no warnings, and its rendered `~/.ssh/config` is byte-identical to master's. With this override alone, evaluation fails with the conflicting-type error described above, which is the ordering constraint. Cold cross-family review: `gpt-5.6-terra` via `codex exec`, reasoning effort `high`, read the diff at 0f94a10 (a Claude-family worker authored it). One finding, marked blocker: with the framework still on `matchBlocks`, this profile's `IdentityFile` string collides with the legacy conversion's list at equal priority instead of overriding it. Confirmed by the measurement above; it is the ordering constraint at the top of this body, not a defect in the migrated form, and no code change follows. No other findings. Closes allod/profiles#8
Set programs.neovim.withRuby/withPython3 explicitly to false (the
26.05 default) in modules/preferences.nix, since home.stateVersion
predates the default flip and nothing here needs those providers.

Replace hosts/dev/allod-dev/home.nix's programs.ssh.matchBlocks entry
for the forge host with programs.ssh.settings using upstream directive
names (HostName/User/Port/IdentityFile/IdentitiesOnly), same values.

Refs allod/profiles#8
Owner

closed in favor of allod/strategy#56

closed in favor of allod/strategy#56
vnprc closed this pull request 2026-09-20 01:41:14 +01:00

Pull request closed

Sign in to join this conversation.
No description provided.