stack-bench: team-chat cross-backend agentic benchmark - #5665
Open
cloutiertyler wants to merge 1 commit into
Open
stack-bench: team-chat cross-backend agentic benchmark#5665cloutiertyler wants to merge 1 commit into
cloutiertyler wants to merge 1 commit into
Conversation
Add the full team-chat benchmark task to stack-bench (Harbor format): rooms/membership/permissions, presence, server-maintained unread counters, edit + tombstone delete, idempotent sends, per-room gapless seq under concurrency, atomic credit tips. 46 behavioral checks in 4 weighted metric groups (correctness .40 / realtime .30 / durability .20 / perf .10), including a Jepsen-style mid-scenario backend kill/restart via each environment's backendctl. Harness emits reward.txt, multi-metric reward.json, and per-check result.json (agent feedback payload). Oracle reward 1.000 through Harbor on both spacetimedb and convex (46/46 checks, 0 exceptions). Both environments are single-container so the backend shares the agent's resource budget and process-level restart works uniformly. Also: rework xtask for the tasks/<task>/<backend> layout, wire the cargo stack-bench alias + workspace member, and keep the realtime-chat spike as a smoke test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds team-chat, the main stack-bench task: a cross-backend agentic benchmark where an AI coding agent must build a full team-chat backend (rooms/owners/membership with permissions, presence, server-maintained unread counters, message edit + tombstone delete, idempotent sends, per-room gapless sequence numbers under concurrency, atomic credit tips), graded purely behaviorally through each backend's real client SDK.
Built in Harbor format (the Terminal-Bench 2.0 harness): fixed prompts (
instruction.md), Dockerized environments, oracle solutions, machine verification. This is separate from the one-shot model leaderboard intools/xtask-llm-benchmark/— stack-bench fixes the agent+model and varies the backend.Verifier
One backend-neutral TypeScript scenario (
_shared/harness/src/teamChat/) against anAppClientcontract; per-backend adapters (~200 lines each). 46 checks in 4 weighted metric groups, emitted asreward.txt+ multi-metricreward.json+ per-checkresult.json(the feedback payload for multi-step agent loops):/opt/stack-bench/backendctl restart; all state must survive, seq counters must continue exactly, dedupe records must persistBoth environments are single-container (SpacetimeDB: rust:1.93 + CLI; Convex: the official convex-backend image with Node added), so the backend shares the agent's resource budget and process-level restart works uniformly.
Validation
Oracle reward 1.000 through Harbor on both backends (46/46 checks, 0 exceptions):
Also in this PR
tasks/<task>/<backend>layout (--taskflag, defaultteam-chat);cargo stack-benchalias + workspace member wired uprealtime-chatspike kept as a smoke testUsage
Next steps
Real-agent runs (needs
ANTHROPIC_API_KEY/CLAUDE_CODE_OAUTH_TOKEN), pass^k trials via-- -k N, effort metrics in the comparison table, more backends (Postgres, Mongo, Supabase, Firebase), pre-baked deps for hermeticity.