Fix selected outputs in the existing target eval cache - #57
Draft
jacobmichels wants to merge 2 commits into
Draft
Conversation
jacobmichels
force-pushed
the
jacob/tecnix-cache-result-contract
branch
from
September 5, 2026 04:21
71495c1 to
b5a040c
Compare
jacobmichels
changed the base branch from
main
to
jacob/tecnix-eval-cache-contract
September 5, 2026 04:22
jacobmichels
force-pushed
the
jacob/tecnix-cache-result-contract
branch
from
September 5, 2026 04:49
b5a040c to
c6edca7
Compare
jacobmichels
changed the base branch from
jacob/tecnix-eval-cache-contract
to
main
September 5, 2026 04:49
jacobmichels
force-pushed
the
jacob/tecnix-cache-result-contract
branch
from
September 5, 2026 05:44
c6edca7 to
e4ccd76
Compare
jacobmichels
changed the base branch from
main
to
jacob/tecnix-functional-tests-sqlite
September 5, 2026 22:02
jacobmichels
force-pushed
the
jacob/tecnix-cache-result-contract
branch
from
September 5, 2026 22:03
6a47eb0 to
a845f0d
Compare
jacobmichels
force-pushed
the
jacob/tecnix-cache-result-contract
branch
from
September 6, 2026 00:15
a845f0d to
387e1f6
Compare
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.
A warm Tecnix target-cache hit can return
deveven when the target selectedout. The existing cache remembers only the.drvpath—the build recipe—so importing it loses the original output selection.This PR fixes that existing behavior. It stores
{drvPath, outputName}in a versioned result payload and reconstructs the selected output with its Nix string dependency information intact. Both fields are forced while source tracking is active, including a lazy output selector that does not change the recipe. Malformed payloads, unavailable recipes, and invalid output names fall back to evaluation.The dependency-blob version advances to 2 so older records are relearned. Those records never tracked output-selection inputs and cannot safely serve even dependency-only queries under the corrected contract. The existing SQLite filename/schema, cache eligibility, evaluator-version handling, and packaging remain unchanged.
Checks:
builtinsandgcfunctional suites plusnix-expr-tests: 3/3 passed.Revision identities and build metadata for future remote-cache reuse are handled separately in #58. This PR depends on #59 for SQLite in the isolated test environment. #58 is the next layer above this selected-output fix. Native stack order: #59 → #57 → #58. This PR adds no remote transport or revision-stamping machinery.