Advance Pi inputs through the validated auto-update pipeline #213
No reviewers
Labels
No labels
area:authentication
area:flake-utilities
area:performance
area:tbd
host:chaos
host:electra
host:fleet
host:lyra
host:nova
host:vega
investigation
phase:cutover
phase:deploy
phase:mcp
phase:module
phase:packaging
phase:prep
phase:validation
priority:high
priority:medium
project:attic-postgres-lyra-rollout
project:auto-update-reliability
project:auto-update-remediation
project:declarative-purity-cleanup
project:external-review
project:fleet-boundary-cleanup
project:host-facts-refactor
project:lyra-nixos-deploy
project:lyra-service-stack-migration
project:nebula-mesh-network
project:nixos-build-deployment-pipeline
project:security-hardening
project:service-stack-migration
project:vega-sillytavern-cutover
project:wiki-rebuild
repo:numtide/flake-utils
repo:numtide/nix-auth
repo:numtide/nixos-passthru-cache
repo:numtide/nix-relay
service:auto-update
service:mem0
service:nix
service:sillytavern
service:slskd
service:synthseek
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nimmo/nixos-config!213
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/auto-update-pi-inputs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
References #212.
Pi and pi-ollama are now root inputs. The pi-agent flake follows them and the shared nixpkgs input, so the existing pi-agent policy group updates and validates all three together on Electra, Lena, Vega, and Lyra. The lock advances pi.nix from 92c057264e847c4676a80a5d57e968b5d25828a6 to f41e1136297ccd039ead5131739da85d0ac4a77c.
Validation: nix fmt; focused auto-update policy evaluation; nix flake check.
Automated code review
Reviewed commit:
036ca21e76faea7499f21817e43442561415c784Verdict: Ready to merge
No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory.
Overall assessment
The PR promotes
piandpi-ollamato root flake inputs and updates thepi-agentauto-update policy to include them. This ensures atomic updates for the Pi wrapper, agent, and Ollama extension. The changes are consistent with the provided diff and human replies.Blocking findings
None.
Important findings
None.
Suggestions
None.
Tests and validation
Questions
pi-ollamais added as a root input withflake = false. The human reply confirms this is intentional to preserve the raw-source contract. Is there any risk that future updates topi.nixmight change how it exposes or expects the Ollama extension, potentially breaking the--extension ${piOllama}/src/index.tsinvocation inpi-agent?Review limitations
pi-ollamasource with the currentpi-agentversion beyond static analysis of the diff.nix flake check) and cannot execute it myself.Diff coverage
flake.lock: reviewed — included in a context-limited batchflake.nix: reviewed — included in a context-limited batchlib/auto-update-policy.nix: reviewed — included in a context-limited batchReview metadata
Follow-up on the automated-review questions:
pi-ollamais intentionally a rootflake = falseinput. The updater does not inspect input outputs or assumelocked.flake = true; its group helper invokesnix flake update "$input"for each policy entry. The exactnix flake update pi-ollamaoperation succeeded while refreshing this branch’s lock, and the resulting root lock node is valid.pi-agentnow follows the rootpi,pi-ollama, and sharednixpkgsnodes, so the group advances and validates all three atomically.nix flake checkevaluated electra, lena, vega, and lyra successfully; their modules receiveinputsthroughspecialArgsand accept the attribute set without strict argument matching.Verified against the restored pinned pi-agent source at
628e67210a6dfaab977f9571b35f99cc0706cf23: itsflake.nixdeclarespi-ollama = { flake = false; }, bindspiOllama = inputs.pi-ollama, and invokes Pi with--extension ${piOllama}/src/index.ts. The root input therefore preserves the exact intended raw-source contract; it does not supply a flake output.