Skip to content

test(e2e): add background task golden paths - #1724

Closed
ruiconti wants to merge 10 commits into
tasks/06-background-renderingfrom
tasks/10-evals
Closed

test(e2e): add background task golden paths#1724
ruiconti wants to merge 10 commits into
tasks/06-background-renderingfrom
tasks/10-evals

Conversation

@ruiconti

@ruiconti ruiconti commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What

  • Add a deterministic fixture-tasks entry with experimental.tasks enabled.
  • Cover the background-task golden paths: one-step fanout of ten tasks, continued parent interaction while those tasks run, and lifecycle updates from every task back to the parent session.
  • Keep regression coverage for task HITL routing, concurrent session-create idempotency, input-batch ordering, and child-task exclusivity.
  • Run the fixture with an authored mockModel in every suite so the same orchestration executes against each workflow world without provider planning variance.

Golden paths

Path End-to-end assertion
Many-task fanout One model step starts ten background child sessions and returns ten distinct task receipts.
Parent interactivity All ten tasks first block on unreleased child approvals; the parent then accepts a normal follow-up and returns an ordinary tool-free reply.
Fanout parent updates After release, every fanout task completes independently and its completed-task notification is observed on the parent session.

Regression properties

Property End-to-end assertion
Task HITL routing A child approval surfaces on the parent session; its answer reaches the child without a parent model step.
Session-create idempotency Concurrent and serial /eve/v1/session retries resolve one session identity for one principal, while the same operation id under another principal creates a different session.
Task input-batch ordering Replaying Q1 after Q2 becomes current cannot clear Q2; the exact Q2 response still resumes the child and completes the task.
Child-task exclusivity Two same-batch task_send calls to one persistent child produce exactly one working receipt and one AGENT_BUSY result.

Shape

The fanout workers block on approval rather than a timer. The eval records every queued parent turn, proves all ten tasks are nonterminal before interaction, releases them explicitly, then matches updates by task id against the parent stream. Coalesced turns cannot hide updates or the interactive message.

The create-idempotency path issues concurrent retries. The base now adopts the continuation owner without redelivering duplicate input, and a losing candidate exits before its first turn instead of emitting session.failed.

The approval worker owns two separate approval-gated tools, which gives the routing and ordering evals stable Q1/Q2 boundaries without timing sleeps. Task completion is polled with task_peek; this fixture has no dependency on the removed task-wait behavior.

This PR is stacked on tasks/06-background-rendering, the end of the background-task stack. The full fixture passes locally with 27 gates.

Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
@vercel

vercel Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
eve-docs Ready Ready Preview Aug 6, 2026 11:27pm
eve-docs-4759 Ready Ready Preview, v0 Aug 6, 2026 11:27pm

Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
@ruiconti
ruiconti force-pushed the tasks/06-background-rendering branch from 8374295 to 11528be Compare August 6, 2026 23:22
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
Signed-off-by: Rui Conti <ruiconti@gmail.com>
@ruiconti

ruiconti commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Recreated with base tasks/09-background-section-finalization after the stack reshape (GitHub blocks base edits on stack-member PRs); continuation in the successor PR.

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.

1 participant