All notable changes to this project will be documented here. The format loosely follows
Keep a Changelog and the project aims to follow
Semantic Versioning. Published releases are tagged in
git (e.g., v0.0.0-dev, v0.1.0).
- Added
examples/reference_task_plugin, a publishable reference task plugin package that exposesagent_bench.tasksentry points, ships a deterministic sample task, and demonstrates the maintained external packaging layout for TraceCore task authors. - Added
.github/workflows/reference-plugin-ci.ymlplus focused regression coverage intests/test_reference_task_plugin.pyto lint, validate, build, and Ed25519-sign the reference plugin artifacts in CI. - Added an experimental, feature-gated reasoning benchmark scaffold.
tracecore run --reasoning-benchmarkandTRACECORE_ENABLE_REASONING_BENCHMARK=1now opt runs into an additivereasoning_benchmarkartifact payload with normalized judge/rubric metadata, trace summary fields, and a placeholdernot_evaluatedresult contract for future judge execution. tracecore diff --bundlenow exports a reusable comparison bundle JSON payload for two run artifacts, including run references, run summaries, the structured diff output, and a SHA-256 digest. The export accepts either a target directory or an explicit.jsonpath and surfaces the bundle path/digest in machine-readable output.- Run artifacts now record additive per-step
telemetry.action_metricsdata inaction_trace, including action latency and error classification, withTRACECORE_ACTION_METRICS_VERBOSITY=basic|verbose|offcontrolling the emitted detail level. - Added a shared provider-agnostic
agent_bench.telemetrymodule for LLM trace capture. Prompt/completion fields now supportTRACECORE_LLM_TRACE_REDACTION=off|partial|full, existing integration imports remain backward compatible, and generated LangChain adapters now use the shared telemetry package directly. - Added
docs/ledger.mdas the operator-facing entry point for ledger snapshots, evidence bundles, and thetracecore bundle/tracecore ledgerverification workflow, linking the live CLI flow to the existing ledger governance/reference docs. - Run artifacts now include an additive top-level
evidence_linksblock so bundle-oriented references can live directly in artifacts. The initial slice recordsbundle_dirandbundle_manifestplaceholders and is reflected in schema and migration coverage. - The dashboard replay compare UI now includes compact “What changed” divergence cards plus stronger visual highlighting for changed rows/details, completing the replay diff workflow polish on top of the existing drift filters, taxonomy summaries, IO drift surfacing, and recent-run helper flow.
- Added
tracecore init openai-agents, a first-pass project scaffold command that seedsagent-bench.toml, a starter adapter agent, a deterministic starter task, a task registration module, and follow-up onboarding guidance for OpenAI Agents Python repos. tracecore run --timeoutandtracecore run batch --timeoutnow share the subprocess-based timeout manager inagent_bench.runner.isolation, replacing the older thread-join andSIGALRMenforcement paths with a cross-platform child-process kill flow.
- Refocused OpenAI onboarding around the native
tracecoreloop by adding a dedicateddocs/tutorials/openai_agents.mdguide, promotingtracecore-openaias the reference OpenAI Agents Python example, and refreshing the mainREADME.mdentry points for that workflow. - Updated
tracecore-openai/README.mdto teach one clear live-mode versus deterministic-mode onboarding path for OpenAI Agents SDK users. tracecore runnext-step guidance now defaults totracecore verify --latest,tracecore bundle seal --latest, andtracecore dashboard, keeping the legacyagent-benchalias available without presenting it as the default command.- The dashboard now surfaces a first-pass
Your projectversusBuilt-in examplessplit for discovered agents, tasks, and plugin summaries so local onboarding work is easier to distinguish from bundled references. - Added clearer GitHub-native CI discovery in the main docs by linking the core TraceCore repo to
tracecore-actionand the publictracecore-testconsumer-validation repo.
- Added focused regression coverage for single-run and batch timeout dispatch so wall-clock failures continue to surface with stable CLI and batch error payloads.
- Refreshed release guidance in
docs/operations/release_process.mdand.windsurf/workflows/release.mdso the documented process matches the current repo layout, release validation checklist, and tagging flow. - Fixed broken README links to the current
docs/andagent_bench/spec/locations so release-facing documentation resolves correctly.
tracecore[pydantic_poc]now requirespydantic-ai>=1.66.0to pick up the upstream SSRF fix noted by Socket.dev.tracecore[openai_agents]now bundlesopenai-agents>=0.10.4, keeping the adapter sample aligned with the latest OpenAI Agents release.
agent_bench.maintainer._run()now forcesshell=Falseon every subprocess invocation, eliminating Socket.dev's shell access alert surface.
- Session pointer (
.agent_bench/session.json) —tracecore runnow records the latest run ID, latest successful run ID, and most recent bundle path so follow-up commands can default to "the last thing you ran" without copy/pasting IDs. tracecore verify— new top-level command that performs run/bundle sanity checks, replay/strict comparisons, and optional strict-spec validation. Supports--latest,--run,--bundle,--strict, and--jsonfor CI handoff.tracecore bundle seal/tracecore bundle status— new bundle subcommands that seal a bundle from the latest successful run, run integrity checks (plus optional Ed25519 signing), and summarize recent bundles with OK/FAIL status.- Run postamble guidance — every successful
tracecore runnow prints deterministic next steps (tracecore verify --latest,tracecore bundle seal --latest, dashboard trace link) to guide the iterative workflow. - Docs refresh —
docs/operations/record_mode.md,docs/cli/troubleshooting.md, and the rootREADME.mdnow describe the default run → verify → bundle loop, clarify when to use record mode, and promotetracecoreas the primary CLI name.
- CLI help text now defaults to
tracecoreterminology while still exposing theagent-benchalias for backward compatibility. - README top section highlights the everyday CLI loop and links to the new pipx/uv shim guide for global installs.
- Added targeted CLI tests (
tests/test_cli_verify.py) covering the newtracecore verifycommand, bundle replay enforcement, and "latest" resolution logic.
- Packaging: spec schema files now included — moved
spec/directory intoagent_bench/spec/and added to package data configuration. The v1.0.0 release was missingartifact-schema-v1.0.jsonand related schema files, causing--strict-specvalidation to fail when tracecore was installed via pip. This patch ensures schema files are bundled in the distribution.
tracecoreCLI entry point —tracecoreis now an installed console script (same runtime asagent-bench).agent-benchis retained as a legacy alias.tracecore version— new command printsruntime: X.Y.Z spec: tracecore-spec-v1.0.- Parallel batch execution —
tracecore run batchruns multiple(agent, task_ref, seed)jobs concurrently under a boundedProcessPoolExecutor. Options:--workers N,--timeout SECONDS,--strict-spec,--batch-file JSON. Defaults to all registered pairings. - Process isolation —
agent_bench/runner/isolation.pyreplaced the 5-line stub with realmultiprocessing.spawnisolation (run_isolated()). Each batch worker runs in a clean subprocess; no state leaks between episodes. wall_clock_elapsed_s— every run artifact now records total episode wall time in seconds. Field is excluded fromartifact_hashcomputation (volatile) but required by spec v1.0.agent_bench/runner/batch.py— parallel worker pool with P50/P95 wall-clock aggregation and per-job timeout enforcement producingfailure_type=timeoutartifacts.agent_bench/runner/metrics.py—compute_metrics(),compute_all_metrics(),compute_mttr()computing reproducibility rate, budget P50/P95, failure taxonomy breakdown, and mean time to recovery.tracecore runs metrics— CLI command,--format json(default) or--format table. Supports--task,--agent,--limitfilters.tracecore runs mttr— CLI command, prints MTTR JSON for a given agent+task combination.GET /api/metrics— FastAPI endpoint returning aggregate metrics JSON; supports?task=,?agent=,?limit=params.GET /metrics— metrics dashboard page (reproducibility rate bars, budget P50/P95, failure taxonomy pills, empty-state guidance).- Spec v1.0 —
spec/tracecore-spec-v1.0.mdpromotes all provisional language to normative MUST; adds Section 6 (batch requirements) and Section 10 (changelog from v0.1). - Schema v1.0 —
spec/artifact-schema-v1.0.jsonaddswall_clock_elapsed_sas a required field. test_action_contracts.py— new regression suite: importability, missing-args, and wrong-type-args coverage for every registered task'sactions.py.
SPEC_VERSIONinrunner.pybumped to"tracecore-spec-v1.0".spec_check.pynow loadsartifact-schema-v1.0.json(falls back to v0.1 if missing) and validateswall_clock_elapsed_spresence.test_determinism.pystripswall_clock_elapsed_sfrom determinism comparison (volatile field).test_strict_spec.pyupdated: spec version assertion →v1.0; two new tests forwall_clock_elapsed_s.test_runner_contract.pyaddswall_clock_elapsed_stoREQUIRED_TOP_LEVEL.
- Dashboard Run button —
POST /runhandler was calling the blockingrun()directly insideasync def, freezing the event loop. Fixed by offloading toasyncio.get_event_loop().run_in_executor(). - Dashboard agent dropdown —
__init__.pyno longer appears in the agent list;get_agent_options()now filters it from the localagents/glob (was already filtered in the bundled fallback).
- WebUI agent loading: Fixed
get_agent_options()to use relative paths and work from any working directory, mirroring the tasks logic pattern - Directory independence: Agent paths now display as
agents/chain_agent.pyinstead of full absolute paths - Fallback behavior: Properly falls back to bundled agents when local agents directory is not found
- WebUI agent loading: Fixed
get_agent_options()to use relative paths and work from any working directory, mirroring the tasks logic pattern - Directory independence: Agent paths now display as
agents/chain_agent.pyinstead of full absolute paths - Fallback behavior: Properly falls back to bundled agents when local agents directory is not found
- Bundle trust pipeline: Ed25519 signing of baseline bundles and the ledger registry via
agent_bench/ledger/signing.py. Public key committed atagent_bench/ledger/pubkey.pemand bundled into the package. agent-bench ledger verifysubcommand with three modes:--registry(verify top-level registry signature),--entry <agent>(verify all signed task rows),--bundle <dir>(verify a specific bundle directory).agent_bench/ledger/stamp_registry()helper — signsregistry.jsonin-place using theTRACECORE_LEDGER_SIGNING_KEYenv var..github/workflows/release.yml— triggered onv*tags: runs unit tests, builds baseline bundles for reference agents, signs them, stamps the registry, builds the wheel, uploads signedledger-registry-<tag>.json+ wheel/sdist as GitHub Release assets, and publishes to PyPI.GET /api/ledgernow surfaces provenance fields (harness_version,published_at,bundle_sha256,bundle_signature,signed_at) on every entry and task row.cryptography>=42added to core dependencies.manifest.schema.jsonextended withbundle_sha256,bundle_signature,signed_atfields at both the entry and task-row level.docs/ledger.mdupdated with trust evidence section, provenance field table, andledger verifyusage examples.agents/sandboxed_code_auditor_agent.py: reference agent forsandboxed_code_auditor@1. Readsaudit_scope.mdforTARGET_KEY, extractsISSUE_IDfromsrc/runtime_guard.pyandAUDIT_CODEfromreports/audit.logviaextract_value, then emitsISSUE_ID|AUDIT_CODEviaset_output.runbook_verifierandsandboxed_code_auditorpairings added toagent_bench/pairings.py(agent-bench run pairing runbook_verifier/agent-bench run pairing sandboxed_code_auditor).runbook_verifier@1andsandboxed_code_auditor@1added toSPEC_FREEZE.mdfrozen task table.tests/test_sandboxed_code_auditor_agent.py: two regression tests covering seed 0 and seed 42.docs/agents.md: addedRunbookVerifierAgentandSandboxedCodeAuditorAgententries to the catalog table and detail sections.agent_bench/agents/runbook_verifier_agent.pyandagent_bench/agents/sandboxed_code_auditor_agent.pyadded to the bundled agents package sopip install tracecoreusers and the dashboard pairing panel resolve them correctly via the loader fallback.GUIDE_ENTRIESinagent_bench/webui/app.pyupdated to includerunbook_verifier_agentandsandboxed_code_auditor_agentso they appear in the dashboard Guide tab.
agent_bench/agents/subpackage bundling all reference agents (toy_agent,log_stream_monitor_agent,ops_triage_agent,rate_limit_agent,chain_agent) into the published wheel. Users whopip install tracecorenow have agents available immediately — no localagents/directory needed.
agent-bench dashboardagent dropdown was empty on a fresh PyPI install.get_agent_options()now falls back to the bundledagent_bench/agents/package when no localagents/dir exists.agent-bench dashboardtask dropdown was empty on a fresh PyPI install.get_task_options()now falls back to the bundled registry (list_task_descriptors()) when no localtasks/dir exists.
fastapi,uvicorn,jinja2, andpython-multipartpromoted from optional[dev]extras to coredependenciesso thatpip install tracecoreincludes everything needed to runagent-bench dashboardout of the box.- Added
notebooks/dashboard_walkthrough.ipynb: two-cell notebook that installs TraceCore and launches the dashboard.
- Colab quickstart notebook (
examples/tracecore_quickstart.ipynb): install TraceCore, write a minimal agent, runfilesystem_hidden_config@1with per-step trace output, inspect results, and list all tasks — runnable end-to-end from Google Colab or any Jupyter environment. README.mdQuick links now surfaces the Colab quickstart notebook as the fastest on-ramp.
- Packaging regression from v0.9.1: wheels published to PyPI were missing the
agent_bench.runner.*modules, causingModuleNotFoundError: agent_bench.runnerwheneveragent-bench interactiveimportedrunner.baseline.pyproject.tomlnow includes everyagent_bench.*subpackage sopip install tracecore/uv pip install tracecore(including the Colab quickstart flow) ship a complete harness. tasks/registry.jsonand all task manifests (task.toml,task.yaml) were not included in published wheels, causingFileNotFoundError: Task not foundin Colab and any other pip-installed environment. Fixed by adding[tool.setuptools.package-data]entries fortasks,agent_bench.webui, andagent_bench.ledger.REGISTRY_PATHinagent_bench/tasks/registry.pyused a relativePath(__file__).parent.parent.parentwalk that resolved tosite-packages/root in pip installs instead of thetasks/package directory. Now usesimportlib.resources.files("tasks")with a fallback for editable installs.agent_bench/webui/app.pyFastAPI banner version bumped to0.9.3to matchpyproject.toml.
- Published
tracecore 0.9.1to PyPI (pip install tracecore/uv pip install tracecore). Package name istracecore; CLI entry point remainsagent-benchfor backward compatibility.pyproject.tomlupdated withauthors,[project.urls](Homepage, Issues), and[[tool.uv.index]]for TestPyPI dry-run workflow.README.mdandCONTRIBUTING.mdupdated to advertise the published install path as primary. - Task manifest
[sandbox]table: deterministic tasks now requirefilesystem_roots(array of absolute path prefixes) andnetwork_hosts(array of literal/wildcard hostnames) declarations. Registry validation (agent_bench/tasks/registry.py) enforces presence and type correctness, normalizes entries, and propagates metadata to loaders. All 10 deterministic task manifests updated with sandbox allowlists. agent_bench/tasks/registry.py:_default_sandbox(),_normalize_fs_root(),_normalize_host_entry(),_normalize_sandbox()functions to parse and validate sandbox declarations from task manifests.agent_bench/tasks/loader.py: exposessandboxmetadata in loaded task dictionaries for runtime consumption.agent_bench/env/environment.py: GuardedEnv enforces filesystem allowlists, adds aNetworkGuardutility for host allowlists, and exposesrequire_network()for controlled outbound calls.agent_bench/runner/runner.py: wires task sandbox allowlists into GuardedEnv and includes sandbox metadata in the task spec passed to agents.tests/test_sandbox_env.py: coverage for filesystem allowlist enforcement and network host matching.- IO audit enforcement for record/replay/strict: per-step filesystem/network access is recorded as
io_auditentries in the action trace andtool_calls.jsonl, compared duringcheck_record/check_replay/check_strict, and validated against sandbox allowlists. - Bundle manifests now mirror
sandboxdeclarations;agent-bench bundle verifyrejects bundles missing sandbox metadata or containing disallowed IO audit entries. - Replay/strict checks reject sandbox mismatches between bundles and live runs; record mode rejects runs missing sandbox declarations.
- New regression tests covering bundle audit verification, replay audit mismatches, and network guard scheme/port validation.
- Runner validator snapshots: terminal validator payloads are normalized (taxonomy fallback, message/error propagation) and persisted under the run result
validatorkey, ensuring bundles capture the exact validator verdict. Added tests guarding invalid failure_type overrides plus documentation updates indocs/trace_artifacts.mdanddocs/runner.md. - Web UI (
agent_bench/webui/app.py): Pydantic response models (PairingSummary,LedgerEntryPayload,TraceRunPayload,ErrorPayload),_summarize_io_audit()helper for per-run IO audit summaries,_strip_io_audit()for trace API responses,baseline_submittedcontext variable,/api/traces/{run_id}?include_io=trueflag.
agent_bench/integrations/langchain_adapter.py: generated agent source hadIndentationErrordue totextwrap.dedent()stripping the common 8-space leading indent from the indented f-string template, producing a module-level docstring indented 8 spaces. Replaceddedent(f'''...''')with line-by-line f-strings anchored at column 0. All threetest_langchain_adaptertests now pass.
agent-bench run --record: record mode implementation. Runs the agent once, seals a baseline bundle, re-runs to verify determinism, and deletes the bundle if the two runs diverge. Exits 0 with[RECORD OK]on success; exits 1 with[RECORD FAILED: NonDeterministic]if the episode is non-deterministic, or[RECORD REJECTED]if the first run did not succeed. Mutually exclusive with--replay-bundleand--strict.agent_bench/runner/replay.pycheck_record(run_a, run_b): compares two raw run result dicts for determinism (success, termination_reason, failure_type, step count, per-step action+result). Returns{"ok": bool, "errors": list[str], "mode": "record"}.tests/test_record_mode.py: 10 tests coveringcheck_recordunit cases (identical, success mismatch, termination mismatch, step count mismatch, action mismatch, result mismatch, empty traces) and CLI integration cases (deterministic agent seals bundle, non-deterministic agent rejects and deletes bundle, failed run rejected).
tests/test_runner_failure_taxonomy.py: 10 regression tests covering the full runner failure taxonomy — terminal validatorlogic_failurepath (default and explicit fields),budget_exhausted(steps and tool calls),invalid_action, and success (failure_type=None). Verifiesfailure_type,termination_reason, andfailure_reasonare emitted correctly for every terminal branch.agent_bench/ledger/manifest.schema.json: formal JSON Schema (draft 2020-12) for Ledger entries. Defines required fields (agent,description,suite,tasks), optional certification fields (harness_version,seed_policy,published_at,maintainer), and per-task baseline rows (task_ref,success_rate,avg_steps,run_artifact, etc.).docs/ledger_governance.md: contributor checklist, required/recommended metadata examples, PR template, versioning policy, suite definitions, and relationship to trust evidence bundles. Defines the governance model for submitting and maintaining Ledger entries.- Ruff lint-only configuration (
ruff>=0.9.0in.[dev],[tool.ruff.lint]inpyproject.toml, scoped toagent_bench/). CI step added totests.ymlbefore pytest. agent_bench/runner/bundle.py: baseline bundle writer.write_bundle(result)produces a<run_id>/directory under.agent_bench/baselines/containingmanifest.json(run metadata),tool_calls.jsonl(one line per trace entry),validator.json(final validation snapshot), andintegrity.sha256(SHA-256 hashes).verify_bundle(bundle_dir)checks all hashes and returns{"ok": bool, "errors": list}.runner.pytrace entries now includeaction_ts(UTC ISO 8601 timestamp of action dispatch) andbudget_delta({"steps": 1, "tool_calls": 1}) — additive fields, no breaking changes.docs/trace_artifacts.md: documented newaction_tsandbudget_deltatrace entry fields; added full Baseline Bundle Format section (layout, per-file schemas, Python API, integrity format).agent-bench baseline --bundle: new flag that writes a baseline bundle for the most recent matching run to.agent_bench/baselines/<run_id>/and prints{"bundle_dir": ..., "run_id": ...}.agent-bench bundle verify <path>: new subcommand that verifies SHA-256 integrity of a bundle directory. Exits 0 on pass, 1 on failure. Supports--format jsonfor machine-readable output.agent_bench/runner/replay.py: replay enforcement module.check_replay(bundle_dir, result)diffs a fresh run against a baseline bundle (success, termination_reason, failure_type, per-step action+result).check_strict(bundle_dir, result)adds budget invariants (steps_used and tool_calls_used must not exceed baseline). Both return{"ok": bool, "errors": list[str], "mode": str}.agent-bench run --replay-bundle <BUNDLE_DIR>: re-runs the agent using agent/task/seed from the bundle manifest, then enforces replay rules. Exits 1 and prints divergences if the trace mismatches.agent-bench run --strict: adds budget enforcement on top of--replay-bundle(steps_used and tool_calls_used must not exceed baseline).docs/record_mode.md: updated status banner (replay + strict now implemented), added## CLI (implemented)section with copy-pastable commands, updated developer workflow and mode table.GET /api/ledger: new FastAPI endpoint returning the full Ledger registry as a JSON array.GET /ledger: new Ledger page in the web UI dashboard — shows registered agent count, task baseline count, suite count, per-entry cards with success-rate bar charts, live client-side search filter, and a machine-readable API hint.- Ledger nav link added to the
index.htmlrail (between Pairings and Guide). tests/test_webui_routes.py: 5 new tests covering/api/ledger(JSON shape) and/ledger(200, agent listing, API hint).
tests/test_determinism.py_strip_metadata: now also stripsaction_tsfrom eachaction_traceentry so wall-clock timestamps don't cause false determinism failures.runner/baseline.pydiff_runs: normalize trace entries before comparison by strippingaction_tsandbudget_deltaso old baseline artifacts (pre-v0.7.0) don't produce false step divergences inagent-bench baseline --compareand thechain-agent-baselineCI workflow.
tasks/log_stream_monitor@1: new operations task — agent polls a paginated log stream, ignores noise entries, detects aCRITICALentry, and emitsSTREAM_CODE. Primary record mode prototype target.agents/log_stream_monitor_agent.py: reference agent demonstrating patience + trigger detection across a multi-page stream.agent-bench run pairing <name>: quick-start CLI command to run a known-good agent+task pairing by name or auto-detect from CWD.agent_bench/pairings.pydefines theKnownPairingregistry andfind_pairing()/list_pairings()helpers.agent-bench run pairing --list: print all known pairings in a rich table.agent-bench run pairing --all: batch-run every pairing in sequence and print a smoke-test summary table; exits non-zero if any pairing fails. Useful for CI after harness changes.agent-bench run pairing --timeout N/agent-bench run --timeout N: wall-clock timeout enforcement per run via a daemon thread; exits non-zero with a clear message if exceeded.agent-bench runs summary: compactrichtable of recent runs (outcome, agent, task, seed, steps, tool calls, run ID prefix) with the same--agent/--task/--limit/--failure-typefilters asruns list.agent-bench new-agent <name>: scaffold a new agent stub file with the correctreset/observe/actinterface, inline docstrings, and budget-guard boilerplate. Supports--output-dirand--force.- Web UI Pairings tab: one-click launch cards for every
KnownPairing, with per-card seed input, last-run outcome chip (clickable → Trace Viewer), andlaunchPairing()JS that pre-fills the Run form without a page reload. GET /api/pairings: REST endpoint returning the full pairings registry with last-run history per entry; useful for CI scripts and notebooks.tests/test_webui_routes.py: 13 FastAPI route smoke tests usingTestClientcoveringGET /,/guide,/api/pairings,/api/traces/{id},/traces/{id}, and/baselines/latest.tests/test_pairing_contracts.py: 19 parametrized contract tests asserting everyKnownPairinghas a valid agent file, task directory, and manifest on disk.tests/test_cli_new_agent.py: 6 tests covering scaffold output, kebab/snake name normalisation, overwrite guard,--force, importability, and observe/act cycle.agent-bench openclaw --agent-id <id>: detects an OpenClaw agent fromopenclaw.json(CWD or~/.openclaw/), scaffolds a self-contained TraceCore adapter, and runs it against a task. Auto-detects the agent ID when only one named agent exists.agent-bench openclaw --gateway: additionally scaffolds a gateway-wired adapter that calls the OpenClaw gateway RPC (agent/agent.wait) per step.agent-bench openclaw-export --agent-id <id>: writes a certified bundle (<id>_adapter_agent.py,<id>_gateway_adapter_agent.py,AGENTS.md,openclaw.json,manifest.json,README.md) totracecore_export/<id>/. Blocked until a passing run exists for the adapter. Bundle adapters are for optional regression testing — not deployment; the OpenClaw agent continues to run normally in OpenClaw.agent_bench/openclaw.py:detect_openclaw_agent(),scaffold_openclaw_adapter(),scaffold_gateway_adapter(),export_openclaw_agent()— all the detection, scaffolding, and export logic.tests/test_cli_openclaw.py: 21 tests covering detection (both config formats), auto-select, ambiguity guard, model string normalisation,default=trueselection, scaffold importability, gateway adapter, export manifest shape, prompt file copy,openclaw.jsoncopy, export-before-pass guard, CLI command integration, and mock workspace detection.examples/mock_openclaw_workspace/: a self-contained mock OpenClaw workspace (openclaw.json+workspace/AGENTS.md+cron/jobs.json) for trying the fullagent-bench openclawworkflow without an OpenClaw install. Agent:log-monitor(log triage + rate-limit watchdog), maps tolog_alert_triage@1andrate_limited_api@1.OPENCLAW_QUICKSTART.md: root-level 5-minute quickstart for OpenClaw users — scaffold, AI IDE red-green loop, task selection table, export, links to full tutorial and official OpenClaw docs.examples/simple_agent_demo/: proof-of-concept standalone demo app showing the full TraceCore agent execution loop — load task, load agent, run episode, display results. Includesdemo.pyCLI with--list-tasks,--list-agents,--verbose,--seedflags;README.md;QUICKSTART.md; and Windows/Unix launcher scripts.
- Web UI
_template_context()now queries last-run history per pairing (usingfailure_type is Noneas success indicator) and exposes it to the Pairings panel. _cmd_run()delegates to_run_with_timeout()helper; zero overhead when--timeoutis not passed.get_task_options()inapp.pynow parsestask.tomlfiles (in addition to legacytask.yaml) and filters tasks markedinternal: true.
test_webui_context.py: relaxedfake_list_runsmock to accept agent/task-scoped calls introduced by pairing history lookup.
docs/agents.md: addedLogStreamMonitorAgententry with record mode relevance note and summary table row.SPEC_FREEZE.md: updated header tov0.6.0;log_stream_monitor@1added to frozen task table.README.md: updated Quick Start withrun pairing,--all,--timeout,runs summary, Pairings dashboard tab, andexamples/callout.docs/tasks.md: addedlog_stream_monitor@1catalog entry with skills, significance, and quick-start one-liner.docs/troubleshooting.md: addedrun pairingquick-start,--timeoutenforcement, andruns summarysections to §2 CLI Invocation Errors.
scripts/policy_gate.py: minimal CI policy gate script enforcing success, step, and tool-call thresholds against run artifacts and baselines.CONTRIBUTING.md: top-level contributor guide covering task authoring, bug fixes, PR checklist, and code style.SECURITY.md: security policy documenting sandbox scope, in-process isolation model, and vulnerability reporting process.docs/release_process.md: canonical release checklist (replaces inline checklists in README) with historical release notes.
dice_gametask marked"internal": trueintasks/registry.json; excluded from frozen spec (documented inSPEC_FREEZE.mdexperimental section).pydantic-aiversion bound tightened to>=0.0.3,<1.0to prevent silent breakage.- CHANGELOG ordering corrected:
[0.3.0]now appears after[0.2.0]chronologically. SPEC_FREEZE.mdheader updated fromv0.4.0tov0.4.1to match the released version.
- Removed references to unimplemented CLI flags (
--budget,--verbose,--agent-class) and theruns showsubcommand from README anddocs/troubleshooting.md. --budgetnote added to README clarifying budgets are task-manifest-defined, not CLI-overridable.--reloaddev-only warning added to README anddocs/troubleshooting.md.
docs/record_mode.md: added "Status: Future Vision — Not Yet Implemented" banner.docs/core.mdandagent_bench/runner/failures.py: clarifiednon_terminationis reserved and never emitted by the current runner.- README inline release checklists (v0.1.0–v0.3.0) replaced with a pointer to
docs/release_process.md.
- Operations suite tasks:
log_alert_triage@1,config_drift_remediation@1, andincident_recovery_chain@1. - Reference
OpsTriageAgentfor operations triage scenarios. - Task contract specification documentation and CLI task validation (
agent-bench tasks validate).
- Runner now honors validator-declared terminal failures to emit
logic_failureoutcomes when validators opt in toterminal: true.
- Updated docs and UI copy to reference the TraceCore brand while keeping the
agent-benchCLI/package name for compatibility. - Added long-term roadmap clarity, contract spec guidance, and trust evidence bundle requirements.
- Structured failure taxonomy (
failure_type) emitted by the runner and persisted in run artifacts to enable meaningful diagnostics. @agent_bench/runner/failures.py#1-60 @agent_bench/runner/runner.py#70-294 - CLI support for filtering runs by failure buckets via
agent-bench runs list --failure-type <bucket>. @agent_bench/cli.py#1-82 @agent_bench/runner/runlog.py#30-87 - Web UI "Recent Runs" labels now show
Successvs.Failure - <type>to mirror the taxonomy. @agent_bench/webui/templates/index.html#428-447 - Automated test covering the new CLI filter behavior. @tests/test_cli_runs.py#1-40
- README instructions for using the
--failure-typeflag and description of how the UI surfaces the same buckets. @README.md#169-189 - OpenClaw quickstart tutorial for adapter patterns and first-run guidance. @tutorials/openclaw_quickstart.md#1-80
- Task manifest schema v0.1 (
task.toml) with loader validation and example docs. - Determinism regression tests covering repeated runs + failure modes.
- Baseline compare enhancements: JSON output and CI-friendly exit codes.
- Trace artifact schema documentation + changelog policy for schema changes.
agent-bench.tomlconfiguration with per-agent override blocks.- GitHub Actions reusable workflow for run+compare with artifacts upload.
- CLI/config docs for
agent-bench.toml,baseline --compare, and CI usage. - Updated task/spec references to include shipped tasks and versions.
- Initial public release of Agent Bench with filesystem and rate-limited API tasks, baseline FastAPI UI, and reference agents.
- Early polish passes on README installation instructions and task specs.
Note: Dates are illustrative; update them when cutting an actual release. When preparing a release, add a
git tag vX.Y.Zmatching the section heading.