feat(evals): add Pier/Harbor adapters and Deep SWE benchmark suite - #1539
Conversation
PR Review: feat(evals): add Atomic Pier evaluation adapterThanks for this — the harness is well thought out. The provider routing, Copilot/GHES base-URL resolution, and the trajectory/usage export (including workflow + subagent sessions) are all nicely handled, and the README is genuinely useful. A few things worth addressing before merge. 🔴
|
Assistant-model: GPT-5.5
Assistant-model: GPT-5.5
Assistant-model: GPT-5.5
eafe6cc to
fb5d6da
Compare
|
PR Review — feat(evals): add Atomic Pier evaluation adapter Thanks for this! The PR is well-structured and the description is excellent. The evals harness is cleanly confined to 🔵 Published-package change: footer-data-provider.ts (the part that ships to users) This is the highest-leverage change since it lands in
Two small things worth confirming:
🟡 Test coverage gap: the Python adapters are untested The bulk of new code ( 🟡 Potential bug: None entries passed to allowlist_from_urls In 🟡 Minor security: unquoted version kwarg in the install command
🟢 Nits / observations
Nothing here is blocking the eval-harness goal; the None-filtering case and the Python test gap are the two I would most want addressed before relying on the reported metrics. |
fb5d6da to
caea7fa
Compare
PR Review — Pier/Harbor eval adapters + reftable footer fixReviewed the eval harness ( 🐛 Correctness
🧹 Maintainability
📦 Repo / supply-chain
✅ Tests
👍 Strengths
Nothing here blocks the footer fix from shipping; items 1, 3, and 9 are the highest-value follow-ups. |
Assistant-model: GPT-5.5
caea7fa to
bc61064
Compare
Review: PR #1539 — Pier/Harbor adapters + Deep SWE suite + reftable footer fixThanks for this — the adapters are well-structured and the dedup/fingerprint design (both in the TS fix and the Python usage-accounting) is thoughtful. The instruction is High1. The new
Existing tracked files stay tracked, but any new file added under one of those Medium2. The agent exit code is swallowed by the output pipe. 3. Test coverage / dependency for the Python adapters.
Low / nits
Nothing here blocks the eval harness itself; the |
…1539) * feat(evals): add Atomic Pier agent adapter Assistant-model: GPT-5.5 * feat(evals): add Deep SWE submodule Assistant-model: GPT-5.5 * feat(evals): add Pier-native Atomic adapter Assistant-model: GPT-5.5 * fix(coding-agent): dedupe reftable footer refreshes Assistant-model: GPT-5.5
Summary
Introduces an `evals/` harness for benchmarking Atomic against the Deep SWE task suite via Pier, with a full Pier-native installed-agent adapter, a Harbor-compatible legacy adapter, and a fix for duplicate reftable footer refreshes in the coding agent.
Changes
Pier adapter (
evals/atomic_pier.py)Atomic(BaseInstalledAgent)with ATIF support; installs Atomic (via npm) andrg/fdsearch tools inside Pier sandboxes during setupversionkwarg to select@latest,@next, or a pinned npm versionCOPILOT_API_TARGET,GITHUB_COPILOT_BASE_URL, orGITHUB_SERVER_URL— handles github.com, GHEC tenants, and GHES domains; guards against421 Misdirected Request/logs/agent/atomic.txt; collects per-turn usage (input/output/cache tokens, cost) with deduplication across the main session and subagent/workflow sessionsTrajectoryobjects (including subagent trajectories),FinalMetrics(aggregated token counts, cost, peak context, summarization count), and populatesAgentContextfieldsHarbor adapter (
evals/atomic_harbor.py)Atomic(BaseInstalledAgent)for legacy evaluation flowsthinkingCLI flag, and tees JSON output to a log fileEvaluation workspace
evals/deep-sweGit submodule pointing to the Deep SWE task suiteevals/pyproject.tomlandevals/uv.lock(uvPython project) withpierandharboras dependenciesevals/.python-versionpin and.gitignoreupdates for the evals workspaceDocumentation (
evals/README.md)pier runwith the Atomic adapter, select versions, pass Copilot credentials, and forceCOPILOT_API_TARGETto resolve421errors across github.com, GHEC, and GHES endpointsBug fix — reftable footer refresh deduplication (
packages/coding-agent)tables.listcontent: computes asize+mtime+ctime+contentfingerprint and skips scheduling when the fingerprint matches the last observed valuewatchFilelistener reference sounwatchFilecan unregister the exact listener on teardown, preventing listener leaks across watcher resetsfooter-data-provider.test.tsNotes
evals/footer-data-provider.tswith no API changes