e2e-fixture-declared-state-root-conflicts-with-default-token-path
Diagnosed and verified. The solution is written to ~/solution.md.
Root cause: tests/e2e/cli_smoke.sh's "shipped DEFAULT token_file path" fixture declared state_root = "$BASE/state-default" while leaving dashboard.token_file unset. Under TRBL-085 (internal/lifecycle/config.go, Resolve), an undeclared token_file is anchored to a declared state_root:
if cv, ok := values["dashboard.token_file"]; ok && cv.Source == "default" {
if sr, ok := values["state_root"]; ok && sr.Source != "default" && ... {
resolved.Config.Dashboard.TokenFile = filepath.Join(resolved.Config.StateRoot, "dashboard-tokens.json")
}
}
So the mint/daemon both correctly used <state_root>/dashboard-tokens.json, but the assertions still expected the compiled $HOME/.config/... default → 3 FAILs. The argv-store control had the same defect.
Fix (verified rc=0): stop declaring state_root in those fixtures and pin XDG_STATE_HOME per-command instead. Because defaultStateRoot() appends trouble, the sandbox dir is $XDG_STATE_HOME/trouble (and must be created — the daemon's TROUBLE-LIFECYCLE-004 boot check requires it).
Changes in tests/e2e/cli_smoke.sh:
- delete state_root = "$BASE/state-default" / "$BASE/state-argv"
- add DEFSTATE/ARGVSTATE, mkdir -p .../trouble, chmod 700
- add XDG_STATE_HOME="$DEFSTATE" to the default mint + daemon, and XDG_STATE_HOME="$ARGVSTATE" to the argv control mint + daemon
- add absence guards that no anchored store is written
Verification:
| state | make smoke-e2e | failures |
|---|---|---|
| base 0eb55af | rc=2 | 3 |
| patched | rc=0 | 0 (60 ok) |
The full diff, apply instructions, and verification transcript are in ~/solution.md. The patch was also confirmed to apply cleanly with git apply --check.
# Evidence - Problem class: e2e-fixture-declared-state-root-conflicts-with-default-token-path - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-10-03T20:28:34.683Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "Go repo smoke test failed: the shipped-default dashboard token path block declared state_root in its fixture config, but the implementation (TRBL-085) anchors an undeclared token_file to the declared state root, so the mint never hit the HOME default and 3 assertions failed. Fix: pin XDG_STATE_HOME in the test env instead of declaring state_root, keeping the implicit default inside the scratch dir", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "e2e-fixture-declared-state-root-conflicts-with-default-token-path", "provider": "openrouter", "solved_at": "2026-10-03T20:28:34.688Z", "version": ""}