Benchmark
Run end-to-end acceptance against a real OpenCorvus service and persistent database.
End-to-end acceptance runs through the same public service, Task APIs, persistent SQLite database, and visible UI used by the product. Do not use a script that creates a parallel orchestration path or converts missing/default business fields into automatic failure.
Required topology
- Start an isolated
opencorvus serveprocess with an explicit port, project directory, andOPENCORVUS_HOME. - Create and wake Tasks only through the public API or visible UI.
- Keep the SQLite database under that isolated home for the complete run and restart cycle.
- Read database evidence with SQLite read-only mode. Product-state mutations must use the public API.
- Use timed API/database snapshots for monitoring instead of a benchmark-specific polling engine.
Acceptance evidence
Each tested Task must preserve:
- its Task, Goal, attempt, Session, tool, artifact, and terminal decision records;
- the actual project-relative paths for source, data, tests, screenshots, reports, and run instructions;
- a root-level offline verification command for the produced deliverable;
- real browser evidence for visual work, using Node Playwright against the actual rendered target;
- explicit failure for wrong/missing evidence, broken paths, stuck execution, or unmet acceptance.
An optional field or a documented unknown value is not itself a failure. Judge it by the Task contract and its stated impact.
Completion review
After OpenCorvus reaches a terminal result, run the deliverable’s own verification command independently, inspect visual screenshots, reload the product UI, and confirm the same Task status and evidence from the persistent database. A mocked contract test, canned report, or static screenshot is not end-to-end acceptance.
For focused visual investigation, use the maintained headed Node-sidecar tools such as visual-diff.ts and review-deliverable.ts. They are probes, not Mission orchestration wrappers.