Skip to content

Remove nix hash refresh tasks#646

Merged
schickling merged 2 commits intomainfrom
schickling/2026-05-08-remove-nix-hash-refresh
May 8, 2026
Merged

Remove nix hash refresh tasks#646
schickling merged 2 commits intomainfrom
schickling/2026-05-08-remove-nix-hash-refresh

Conversation

@schickling-assistant
Copy link
Copy Markdown
Collaborator

Problem

The shared devenv Nix task module still exposed generated nix:hash refresh tasks. Those tasks were a legacy interface and encouraged ad hoc hash refresh workflows from inside this public helper package.

Goal

Keep the shared Nix task surface focused on public, tool-neutral validation/build commands and let downstream repositories own their own fixed-output hash refresh orchestration.

Decisions

  • Removed the generated nix:hash task family from nix-cli.
  • Kept the public validation/build tasks: nix:check, nix:check:quick, nix:build, and nix:flake:check.
  • Left hash refresh behavior out of this package instead of baking a downstream-specific workflow into the public module.
  • Updated tests to assert the old hash-refresh task surface is not generated.

Verification

  • nix-instantiate --parse nix/devenv-modules/tasks/shared/nix-cli.nix
  • bash nix/devenv-modules/tasks/shared/tests/nix-cli-no-hash-refresh.test.sh
  • env -u OTEL_STATE_DIR -u OTEL_EXPORTER_OTLP_ENDPOINT CI=1 devenv tasks run nix:test --mode before --no-tui --show-output
  • env -u OTEL_STATE_DIR -u OTEL_EXPORTER_OTLP_ENDPOINT CI=1 devenv tasks run check:quick --mode before --no-tui --show-output

Complexity

No new complexity; this removes generated task surface area.

Concerns

Downstream repositories that still call nix:hash:* need to move to their repo-owned hash refresh workflow before consuming this change.

Follow-ups

None in this repository.

References

Supersedes #645.

Posted on behalf of @schickling
field value
agent_name 🌄 co1-vale
agent_session_id ee2f8a7b-5623-4ad7-a682-0dbe5737d042
agent_tool Codex CLI
agent_tool_version 0.125.0
agent_runtime Codex CLI 0.125.0
agent_model unknown
worktree effect-utils/schickling/2026-05-08-evergreen-nix-hash
machine dev3
tooling_profile dotfiles@unknown-dirty

@schickling schickling marked this pull request as ready for review May 8, 2026 13:06
@schickling-assistant schickling-assistant marked this pull request as draft May 8, 2026 13:16
@schickling schickling marked this pull request as ready for review May 8, 2026 13:18
@schickling schickling enabled auto-merge (squash) May 8, 2026 13:19
@schickling-assistant schickling-assistant added mq:blocked Merge Queue is not currently advancing this PR mq:needs-agent Merge Queue needs agentic intervention labels May 8, 2026
@schickling-assistant
Copy link
Copy Markdown
Collaborator Author

schickling-assistant commented May 8, 2026

Merge Queue returned overengineeringstudio/effect-utils#646 to automated observation.

Status

observing · intervention labels are being cleared.

Why This Happened

head updated; returning to observation

Previous Intervention

State: agent-active

Reason: failure on deploy-storybooks; escalation agent dispatched

Expected Progression

The observer will re-read GitHub state and enqueue any remaining work. Inspect with mq-cli item show overengineeringstudio/effect-utils#646 or mq-cli item logs overengineeringstudio/effect-utils#646 --limit 40.

Posted on behalf of @schickling
field value
agent_name merge-queue-daemon
agent_session_id merge-queue-daemon
agent_tool mq-daemon
agent_tool_version unknown
agent_runtime mq-daemon unknown
agent_model not-applicable
worktree
machine dev3
tooling_profile dotfiles@unknown-dirty

@schickling-assistant schickling-assistant added mq:agent-active Merge Queue has dispatched an agent and removed mq:needs-agent Merge Queue needs agentic intervention labels May 8, 2026
@schickling-assistant
Copy link
Copy Markdown
Collaborator Author

schickling-assistant commented May 8, 2026

Merge Queue: Repair

Status

Outcome: fix · job status: cancelled · check: deploy-storybooks · head e6c0a06

Summary

Merge Queue escalation finished for overengineeringstudio/effect-utils#646.

Timeline

Event Result
Agent completed fix
Outcome applied false
Request head stale true

Problem Report

  • Diagnosis: Head SHA was current. The deploy-storybooks failure came from a mechanical Jsonnet regression in nix/devenv-modules/otel/dashboards/dt-duration-trends.jsonnet: the nix:hash panel call was removed but its surrounding at(...) wrapper remained with only coordinates, breaking the Grafana dashboard derivation needed by the devenv shell. Removed the dangling wrapper, committed 71b6dce15b4a0e8a9bb6ec7768442e68dcd5c50c, and pushed it to schickling/2026-05-08-remove-nix-hash-refresh.

Verified options:

  1. Affected dashboard Nix proof
    • Plan: Build the failing dashboard surface through nix/devenv-modules/otel/build-dashboards.nix with only dt-duration-trends.
    • Verification: Passed; produced /nix/store/vsbrjyy1rxw0p5105i8mzfmp1f4hjb30-otel-dashboards-extra.
    • Tradeoffs: Narrow proof directly covers the failed grafana-dashboards.yaml dependency surface.
  2. Repo quick gate
    • Plan: Run devenv shell -- dt check:quick --no-tui in PTY co1-cobalt-0286-check-quick.
    • Verification: Passed: 18 succeeded, 7 skipped.
    • Tradeoffs: Quick gate covers TS and lint; full tests were not run because the fix is a scoped Jsonnet syntax repair under merge-queue escalation deadline.
  3. Publish verification
    • Plan: Push detached worktree HEAD explicitly to the PR branch and verify remote head.
    • Verification: Remote refs/heads/schickling/2026-05-08-remove-nix-hash-refresh is 71b6dce15b4a0e8a9bb6ec7768442e68dcd5c50c; worktree is clean.
    • Tradeoffs: Canonical megarepo worktree is detached, so push used HEAD:refs/heads/....
Important Evidence

deploy-storybooks

[failure-focused log excerpt: showing causal snippets from 133908 bytes]
--- snippet 1 (lines 1002-1041) ---
2026-05-08T13:07:50.7284213Z        Reason: �[31;1m1 dependency failed�[0m.
2026-05-08T13:07:50.7284514Z        Output paths:
2026-05-08T13:07:50.7285442Z          �[35;1m/nix/store/8zrxshf3s9hd5vqigizf55y7kh9z4gsm-devenv-shell�[0m
2026-05-08T13:07:56.9333890Z �[31;1merror:�[0m Cannot build '�[35;1m/nix/store/ar5k9zhdi568vrxf5z7399wrvck4phad-grafana-dashboards.yaml.drv�[0m'.
2026-05-08T13:07:56.9334373Z        Reason: �[31;1m1 dependency failed�[0m.
2026-05-08T13:07:56.9334637Z        Output paths:
2026-05-08T13:07:56.9334946Z          �[35;1m/nix/store/1d4ypmmz2mkkq1cd00rdrwls2028sqnx-grafana-dashboards.yaml�[0m
2026-05-08T13:07:56.9369786Z Configuring shell in 68.5s
2026-05-08T13:07:56.9388179Z Error:   × Evaluation error: Failed to realize shell derivation: �[31;1merror:�[0m Cannot build
2026-05-08T13:07:56.9388817Z   │ '�[35;1m/nix/store/ar5k9zhdi568vrxf5z7399wrvck4phad-grafana-dashboards.yaml.drv�[0m'.
2026-05-08T13:07:56.9389156Z   │        Reason: �[31;1m1 dependency failed�[0m.
2026-05-08T13:07:56.9389367Z   │        Output paths:
2026-05-08T13:07:56.9389624Z   │          �[35;1m/nix/store/1d4ypmmz2mkkq1cd00rdrwls2028sqnx-grafana-
2026-05-08T13:07:56.9390006Z   │ dashboards.yaml�[0m: �[31;1merror:�[0m Build failed due to failed dependency
2026-05-08T13:07:56.9390244Z 
2026-05-08T13:07:57.0458542Z ##[warning][ci] devenv tasks run netlify:deploy --show-output --input type=pr --input pr=646 --mode before failed after 95 s without a detected Nix store validity race
2026-05-08T13:08:22.5488364Z ##[error]Process completed with exit code 1.
2026-05-08T13:08:22.5542680Z ##[group]Run site="overeng-utils"
2026-05-08T13:08:22.5543190Z �[36;1msite="overeng-utils"�[0m
2026-05-08T13:08:22.5543499Z �[36;1mif [ "pull_request" = "push" ] && [ "refs/pull/646/merge" = "refs/heads/main" ]; then�[0m
2026-05-08T13:08:22.5543758Z �[36;1m  label="prod"�[0m
2026-05-08T13:08:22.5543939Z �[36;1melif [ "pull_request" = "pull_request" ]; then�[0m
2026-05-08T13:08:22.5544141Z �[36;1m  label="PR #646"�[0m
2026-05-08T13:08:22.5544303Z �[36;1melse�[0m
2026-05-08T13:08:22.5544440Z �[36;1m  exit 0�[0m
2026-05-08T13:08:22.5544572Z �[36;1mfi�[0m
2026-05-08T13:08:22.5544830Z �[36;1mif [ "$label" = "prod" ]; then suffix=""; else suffix="-pr-646"; fi�[0m
2026-05-08T13:08:22.5545075Z �[36;1mif [ "pull_request" = "pull_request" ]; then�[0m
2026-05-08T13:08:22.5545321Z �[36;1m  commit_sha="e6c0a0604776de02338fd1426f6af874157e2f88"�[0m
2026-05-08T13:08:22.5545528Z �[36;1melse�[0m
2026-05-08T13:08:22.5545896Z �[36;1m  commit_sha="676e4883fbedbcb8321dcc2b49722316542530a1"�[0m
2026-05-08T13:08:22.5546120Z �[36;1mfi�[0m
2026-05-08T13:08:22.5546272Z �[36;1mexport STORYBOOK_PREVIEW_LABEL="$label"�[0m
2026-05-08T13:08:22.5546503Z �[36;1mexport STORYBOOK_PREVIEW_COMMIT_SHA="$commit_sha"�[0m
2026-05-08T13:08:22.5546731Z �[36;1mexport STORYBOOK_PREVIEW_SITE="$site"�[0m
2026-05-08T13:08:22.5546934Z �[36;1mexport STORYBOOK_PREVIEW_SUFFIX="$suffix"�[0m
2026-05-08T13:08:22.5547207Z �[36;1mexport STORYBOOK_PREVIEW_DEPLOYED_AT_UTC="$(date -u +%Y-%m-%dT%H:%M:%SZ)"�[0m
2026-05-08T13:08:22.5547513Z �[36;1mcomments_json="/tmp/storybook-preview-comments.json"�[0m
2026-05-08T13:08:22.5547760Z �[36;1mif [ "pull_request" = "pull_request" ]; then�[0m
2026-05-08T13:08:22.5548050Z �[36;1m  export NIX_CONFIG="${NIX_CONFIG:+$NIX_CONFIG$'\n'}access-tokens = github.com=${GH_TOKEN}"�[0m

--- snippet 2 (lines 1373-1404) ---
2026-05-08T13:08:29.2954716Z copying path '/nix/store/sgswwrxkhdlfskklqp4gsbi2cskfg07c-libidn2-2.3.8' from 'https://cache.nixos.org'...
2026-05-08T13:08:29.3066023Z copying path '/nix/store/fjkx1l5cnskzrqacf08z7i8z17256w0j-glibc-2.42-61' from 'https://cache.nixos.org'...
2026-05-08T13:08:29.6028075Z copying path '/nix/store/i27rhb3nr65rkrwz36bchkwmav6ggsmn-bash-5.3p9' from 'https://cache.nixos.org'...
2026-05-08T13:08:29.6263568Z copying path '/nix/store/y3m73nv1ry783kqfjqq17p3kxxaxx5d1-gh-2.92.0' from 'https://cache.nixos.org'...
2026-05-08T13:08:30.9216255Z this path will be fetched (25.1 MiB download, 97.2 MiB unpacked):
2026-05-08T13:08:30.9216745Z   /nix/store/g0zlmqvkvn41xqva3460jfzpazivywvi-bun-1.3.13
2026-05-08T13:08:30.9224710Z copying path '/nix/store/g0zlmqvkvn41xqva3460jfzpazivywvi-bun-1.3.13' from 'https://cache.nixos.org'...
2026-05-08T13:08:31.8481305Z STORYBOOK_PREVIEW_PACKAGES_JSON is empty — the deploy step likely failed before producing output. Check the deploy step logs above.
2026-05-08T13:08:31.8511012Z ##[error]Process completed with exit code 1.
2026-05-08T13:08:31.8563633Z ##[group]Run diag_dir="${NIX_STORE_DIAGNOSTICS_DIR:-}"
2026-05-08T13:08:31.8564040Z �[36;1mdiag_dir="${NIX_STORE_DIAGNOSTICS_DIR:-}"�[0m
2026-05-08T13:08:31.8564393Z �[36;1mif [ -z "$diag_dir" ] || [ ! -d "$diag_dir" ]; then�[0m
2026-05-08T13:08:31.8564781Z �[36;1m  echo "## Nix Store Diagnostics" >> "$GITHUB_STEP_SUMMARY"�[0m
2026-05-08T13:08:31.8565291Z �[36;1m  echo "" >> "$GITHUB_STEP_SUMMARY"�[0m
2026-05-08T13:08:31.8565708Z �[36;1m  echo "No diagnostics directory found (validation may have failed before capture)." >> "$GITHUB_STEP_SUMMARY"�[0m
2026-05-08T13:08:31.8566118Z �[36;1m  exit 0�[0m
2026-05-08T13:08:31.8566588Z �[36;1mfi�[0m
2026-05-08T13:08:31.8566821Z �[36;1m�[0m
2026-05-08T13:08:31.8567044Z �[36;1m{�[0m
2026-05-08T13:08:31.8567290Z �[36;1m  echo "## Nix Store Diagnostics"�[0m
2026-05-08T13:08:31.8567571Z �[36;1m  echo ""�[0m
2026-05-08T13:08:31.8568020Z �[36;1m  echo "Temporary instrumentation for #272; remove after root cause is confirmed and CI is stable."�[0m
2026-05-08T13:08:31.8568508Z �[36;1m  echo ""�[0m
2026-05-08T13:08:31.8568794Z �[36;1m  echo "- Diagnostics directory: \`$diag_dir\`"�[0m
2026-05-08T13:08:31.8569215Z �[36;1m  echo "- Tracking issue: https://github.com/overengineeringstudio/effect-utils/issues/272"�[0m
2026-05-08T13:08:31.8569605Z �[36;1m} >> "$GITHUB_STEP_SUMMARY"�[0m
2026-05-08T13:08:31.8569877Z �[36;1m�[0m
2026-05-08T13:08:31.8570177Z �[36;1mmarkers_file="${RUNNER_TEMP:-/tmp}/nix-store-signature-markers.txt"�[0m
2026-0
[truncated after 6144 of 6502 bytes]

Expected PR Progression

A newer PR head is already under observation. If that head was produced by this agent attempt, the daemon treats progress through the observed head update rather than through the stale request envelope.

Session Details
field value
job_id 512
attempt_id 1455
started_at 2026-05-08T13:19:41.406346561+00:00
duration 4m 57s
deadline 600s
budget_usd 5.00
request_head e6c0a0604776de02338fd1426f6af874157e2f88
request_context_bytes 7906
failed_job_count 1
failed_job_log_bytes 6502
outcome_applied false
request_head_stale true
agent_reported_duration not reported
agent_turn_count not reported
agent_context_tokens not reported
agent_context_window_tokens not reported
agent_session_notes Andon showed degraded dev3 Nix build issue #845, but local reproduction identified a branch-local Jsonnet failure. Commit includes required Merge-Queue trailers.

Agent Session

Agent breadcrumbs
machine: dev3
agent_session_id: 028638a3-c629-5cea-a94a-07acc8f0110e
agent_name: co1-lynx
pty_name: co1-lynx-0286
pty_attach: pty attach co1-lynx-0286
pty_lookup: pty list --json --filter-tag agent.session_id=028638a3-c629-5cea-a94a-07acc8f0110e
pty_name_pattern: co1-<agent-word>-0286
session_tag: mq.escalation.overengineeringstudio.effect-utils.646.unknown
Posted on behalf of @schickling
field value
agent_name 🐈 co1-lynx
agent_session_id 028638a3-c629-5cea-a94a-07acc8f0110e
agent_tool Codex CLI
agent_tool_version unknown
agent_runtime mq-daemon unknown
agent_model unknown
worktree
machine dev3
tooling_profile dotfiles@unknown-dirty

Merge-Queue-Schema: mq.commit.v1

Merge-Queue-Mode: agent-escalated

Merge-Queue-PR: #646

Merge-Queue-Attempt-ID: 5a0d9762-4f84-4def-9f9b-36103a881384

Merge-Queue-Agent-Session-ID: 028638a3-c629-5cea-a94a-07acc8f0110e
@schickling-assistant schickling-assistant added mq:ci-admitted Merge Queue admitted this PR to scarce-runner CI and removed mq:blocked Merge Queue is not currently advancing this PR mq:agent-active Merge Queue has dispatched an agent labels May 8, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

Storybook Previews

Package Latest URL Last Deploy (Europe/Berlin)
effect-react https://effect-react-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
effect-schema-form-aria https://effect-schema-form-aria-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
notion-cli https://notion-cli-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
tui-react https://tui-react-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
notion-react https://notion-react-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
megarepo https://megarepo-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
react-inspector https://react-inspector-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
genie https://genie-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
tui-stories https://tui-stories-pr-646--overeng-utils.netlify.app 2026-05-08 15:27 CEST
Per-Commit Deploy History

Commit 71b6dce · 2026-05-08 15:28 CEST

Package URL
effect-react https://69fde4aca345dba3b32884f9--overeng-utils.netlify.app
Alias: https://effect-react-pr-646--overeng-utils.netlify.app
effect-schema-form-aria https://69fde4b1a345dba3662883e1--overeng-utils.netlify.app
Alias: https://effect-schema-form-aria-pr-646--overeng-utils.netlify.app
notion-cli https://69fde4b4f52b57ba7bb570bd--overeng-utils.netlify.app
Alias: https://notion-cli-pr-646--overeng-utils.netlify.app
tui-react https://69fde4bf221880cdb80bab37--overeng-utils.netlify.app
Alias: https://tui-react-pr-646--overeng-utils.netlify.app
notion-react https://69fde4c0a8684bb3cae336d0--overeng-utils.netlify.app
Alias: https://notion-react-pr-646--overeng-utils.netlify.app
megarepo https://69fde4c1a345dba3662883e8--overeng-utils.netlify.app
Alias: https://megarepo-pr-646--overeng-utils.netlify.app
react-inspector https://69fde4c2661053ca78fc367e--overeng-utils.netlify.app
Alias: https://react-inspector-pr-646--overeng-utils.netlify.app
genie https://69fde4cc3d6938c3c6e07caf--overeng-utils.netlify.app
Alias: https://genie-pr-646--overeng-utils.netlify.app
tui-stories https://69fde4d7bbaccfa8e5c34fc5--overeng-utils.netlify.app
Alias: https://tui-stories-pr-646--overeng-utils.netlify.app

@schickling schickling merged commit 89e1396 into main May 8, 2026
13 checks passed
@schickling schickling deleted the schickling/2026-05-08-remove-nix-hash-refresh branch May 8, 2026 13:30
@schickling-assistant schickling-assistant removed the mq:ci-admitted Merge Queue admitted this PR to scarce-runner CI label May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants