You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The shared daemon integration fixture for managed Goal sessions claims loop-bound task runs and then starts them without forwarding the returned claim token. Current task lifecycle validation correctly rejects those starts with task: invalid claim token, leaving five subtests in TestLoopGoalManagedRuntimeIntegration red on main.
This is a test-fixture ownership bug, not a request to relax runtime claim validation.
Reproduction
On current main:
mise exec -- go test -tags=integration ./internal/daemon \
-run '^TestLoopGoalManagedRuntimeIntegration$' -count=1 -v
Five managed-runtime cases fail while constructing the fixture, for example:
seedDaemonTaskRunLifecycle calls ClaimNextRun for loop-bound workers, assigns only claim.Run to its local state, and discards claim.ClaimToken. It later calls manager.StartRun without that token.
Three other daemon E2E fixtures were updated to use their claim token, but the shared managed-Goal fixture still follows the stale path.
Expected behavior
The fixture must carry the exact token returned by the successful claim into the claimed-to-starting transition. Production validation must remain fail-closed for missing or incorrect tokens.
Acceptance criteria
seedDaemonTaskRunLifecycle (or its canonical replacement) forwards the exact claim token for loop-bound runs.
Direct daemon admission remains tokenless only where the existing contract permits it.
A regression test proves the helper cannot start a claimed run after dropping or replacing the token.
TestLoopGoalManagedRuntimeIntegration passes in full.
The three previously repaired daemon E2E scenarios remain green.
Activity
[-]Loop Goal integration fixtures discard required task claim tokens[/-][+][Loops] Loop Goal integration fixtures discard required task claim tokens[/+]