Repository navigation
03: build the options index from the host flake lock - #4
Merged
Merged
Conversation
Add an explicitly configured aether-index helper without changing timer-only installations. Exercise real example-host pins separately from the offline deadman VM and document the manual attribute's documentation gates. Co-authored-by: Copilot App <[email protected]>
Document the executed example-host option counts, disabled-documentation behavior, helper failure checks and successful deadman VM coverage. Co-authored-by: Copilot App <[email protected]>
jrcruciani
marked this pull request as ready for review
September 21, 2026 14:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Rule seven used a channel-based import unrelated to the host's flake.lock. The module now installs
aether-index, withservices.aether.flake(default/etc/nixos) and an explicitservices.aether.hostconfiguration key. Missing host setup fails only when indexing, so timer-only installs remain valid. The helper requires a reviewed lock, prevents lock updates, validates inputs, declares its runtime dependencies, and leaves the previous output link in place after build failure.README, playbook, agent prompt and example setup now agree on the command, unchanged JSON path, name versus type checks and imported-module caveats. Section 03 of the changelog records actual results. This is item 03 only; no later work-order items, merges, LICENSE changes or live-host timer tests.
Executed Linux evidence
Final-head CI: both jobs passed at
686e100839925b7b21fe1eec9981cd97e7766103. The first successful run is recorded in the changelog.ac62194c3917d5f474c1a844b6fd6da2db95077db6018f87da91d19d0ab4cf979885689b469cdd41tests/index-pins.shcopiesexamples/, generates the fixture lock, builds the exactnixosConfigurations.vps.config.system.build.manual.optionsJSONattribute, then changes the same lock to the second revision and requires different counts. It checks the realshare/doc/nixos/options.jsonlayout. The packaged helper matches the direct build with an empty caller PATH, a space-containing flake directory, and an OS hostname different from the explicit host key.On both pins, disabling
documentation.nixos.enableordocumentation.enableremovessystem.build.manual; failed regeneration preserves the existing symlink. Disabling onlydocumentation.doc.enablestill builds JSON. Missing locks, invalid host/flake inputs, unknown host keys and unexpected arguments fail without replacing the index.The existing
nix flake check --no-update-lock-file --print-build-logspassed all eight deadman VM subtests, including timer-only installation compatibility. This locked offline VM uses the root's test-only input; the separate networked index job uses the host's actual pins. The macOS workspace has no local Nix; all Nix execution evidence above is from hosted Linux.No blockers. Ready for parent review and merge; this session has not merged the PR.