overengineeringstudio / overengineeringstudio/effect-utils
Evergreen: support depsBuilds FOD repair in nested flakes without a root flake
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Problem
evergreen fod reconcile cannot repair a known depsBuilds hash when the consumer is exposed from a nested flake in a non-flake repository root. This blocks the documented rung-1 exact-hash workflow.
Observed in schickling/schickling-stiftung for ./pi-nix#pimuseum-server:
- auto-discovery:
could not determine --hash-source for pimuseum-server - explicit hash source:
could not determine --flake-ref - explicit nested flake ref: rejected as not a supported local package attr with
depsBuilds - closure chase from the Git root prefixes
.#and fails because the root has noflake.nix - using the nested flake as repo root fails Git snapshotting because it is not a separate repository
The build uses a literal depsBuilds["."] = mkSharedHash "sha256-..." boundary.
Principled capability
Allow repair identity to be supplied or discovered as: Git repository root, nested flake path/ref, consumer attr, hash-source path relative to Git root, and install-root key. Graph metadata should remain preferred; explicit arguments should provide a fail-closed fallback with read-after-write verification.
Acceptance
- Reproduce with a Git repo whose only flake is
subdir/flake.nix. - Repair a literal
depsBuilds["."] = mkSharedHash ...hash from the Git root. - Verify only the intended hash location changed.
- Re-evaluate the consumer and confirm the declared FOD hash matches.
- Cover divergent per-system hashes without carrying an unmeasured architecture value forward.
Posted on behalf of @schickling
| field | value |
|---|---|
agent_name |
🥉 co2-bronze |
agent_session_id |
2146af7f-2c71-4fa2-aad5-a71cff8bcb9c |
agent_tool |
Codex CLI |
agent_tool_version |
0.144.1 |
agent_runtime |
Codex CLI 0.144.1 |
agent_model |
unknown |
runtime_profile |
/nix/store/qq3avrif77r90ypqbdv3hgd3gvwj5s32-coding-agent-runtime-profile/share/coding-agents/profile.json |
skills_manifest |
/nix/store/pjlb3cwf453ghzmc8jj4v8h29sw6p4dg-agent-skills-corpus/share/agent-skills/manifest.json |
worktree |
schickling-stiftung/pr219-rewrite-local |
machine |
dev3 |
tooling_profile |
dotfiles@4b8e1c5 |
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing evergreen fod reconcile with a Git repository whose only flake is subdir/flake.nix, then trace how nested flake refs, hash sources, and the consumer attr are resolved from the Git root. Use the listed acceptance cases to verify the intended hash location alone changes, re-evaluation matches the declared FOD hash, and divergent per-system hashes are not carried forward.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git
- Domain
- build-system, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100