test(e2e): verify the herdr flow end to end + fix nix run .#e2e on macOS#30
Closed
jakemassoth wants to merge 1 commit into
Closed
test(e2e): verify the herdr flow end to end + fix nix run .#e2e on macOS#30jakemassoth wants to merge 1 commit into
nix run .#e2e on macOS#30jakemassoth wants to merge 1 commit into
Conversation
…2e` links on macOS The e2e app's runtimeInputs shipped only rustToolchain + herdr + git. The pinned rust toolchain needs a C compiler/linker to build proc-macro build scripts and link the test binary; on macOS there's no ambient nix cc-wrapper on PATH, so `nix run .#e2e` failed with "tool 'clang' not found" before any test ran. (Linux CI happens to have a system cc, masking it.) Add pkgs.stdenv.cc — the same clang-wrapper the devShell already pulls in — so the documented e2e command links and runs the suite (19/19) on macOS too.
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 this is
A verification/QA pass proving the new herdr session/TUI flow (PR #29) works end to end, plus one trivial fix uncovered along the way.
All testing ran in a fully isolated sandbox — a unique herdr session (
yt-e2e-9021), a privateXDG_CONFIG_HOMEandYESCHEF_HOMEunder/tmp, never the liveyeschefbrigade or the shared config home. The live brigade was confirmed running and untouched before and after.The one fix (this branch's only diff)
nix run .#e2e— the documented e2e command (DEVELOPMENT.md) and a CI step — failed on macOS before running a single test:Root cause: the e2e app's
runtimeInputsshipped onlyrustToolchain + herdr + git. The pinned rust toolchain needs a C compiler/linker to build proc-macro build scripts and link the test binary; on macOS there is no ambient nix cc-wrapper on PATH, so the link fails. (Linux CI has a systemcc, which masks it.) Fix: addpkgs.stdenv.cc— the same clang-wrapper the devShell already pulls in.nix run .#e2e→tool 'clang' not found, 0 tests run.nix run .#e2e→ compiles, 19/19 tests pass.nix flake check→ fmt / nixfmt / lint / unit tests all ✅.What was verified (end to end)
Automated: the full e2e suite passes 19/19 (via
nix run .#e2eafter the fix, and via the devShell).Manual walkthrough against a throwaway git repo + a dummy
--agentshell loop (no real coding agent, no external services), with captured evidence for every stage:inityeschef.db+AGENTS.mdcreatedproject add/listorigin/mainresolves, project listedspawnorigin/main; prompt file written outside the worktree (status preamble + verbatim brief); herdr workspacedemo/widgetcreated; agent launched via the short "read the brief" indirectionpeeksendstatusagent_status+ self-reported task statusticket status-setstatusrestartheadchef+demo/widget), server back up on the isolated socketkill --rm-worktreecleanup(dry-run)cleanup --yesWhat does NOT work / notes
tui/attachare interactive passthroughs to herdr's native UI (they hand over the terminal / block on a TTY), so they were verified by code inspection + the fact that the server they attach to is proven working — not exercised headlessly.restartrestores workspace shape for our dummy agent, not the process (expected — oursleep/catstand-in isn't a herdr-recognized agent, soresume_agents_on_restoredoesn't apply; real Claude Code cooks resume natively).STATE = unknown(expected —sh/cataren't recognized coding agents).No other defects found. The herdr flow works as designed.