Skip to content

feat(evals): wrap Datadog ARFBench as inspect_ai task - #231

Open
KyPython wants to merge 14 commits into
mainfrom
evals/arfbench-task
Open

KyPython wants to merge 14 commits into
mainfrom
evals/arfbench-task

Conversation

@KyPython

Copy link
Copy Markdown
Owner

Wraps Datadog's ARFBench (Anomaly Reasoning Framework Benchmark, Apache 2.0) as an inspect_ai task so a real vendor benchmark runs through our own eval harness.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T23:48:27.905930Z 3664150 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c2afc63c-8e83-4c5c-afdb-463fac889165
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f0420fc3d2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1 @@
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 No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Commit actual gzip bytes instead of base64 text

The committed blob begins with H4sI..., which is base64 text representing a gzip stream rather than a gzip file. Consequently, every invocation reaches _load_rows() and gzip.open() raises BadGzipFile: Not a gzipped file (b'H4'), including runs with series_context=false; decode the artifact before committing it.

Useful? React with 👍 / 👎.

def arfbench(
limit: int | None = None,
tier: int | None = None,
series_context: bool | str = True,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Declare dependencies used by the default mode

On a clean checkout installed from the root requirements.txt, the default invocation always fails here because neither pandas nor pyarrow is declared; the README's referenced sibling virtualenv also does not exist in this repository. Since series_context defaults to true, add the required packages to the reproducible environment or make the dependency-free mode the default.

Useful? React with 👍 / 👎.

)


@task

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add regression coverage for the new task

This new task adds dataset loading, filtering, context generation, and scoring behavior without adding any automated test in the commit. At minimum, construct the task from the committed dataset in both context modes so packaging errors such as the unreadable gzip artifact are caught before merge.

AGENTS.md reference: AGENTS.md:L18-L18

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
TS_CACHE.mkdir(parents=True, exist_ok=True)
for res in TS_RESOLUTIONS:
dest = TS_CACHE / f"{query_group}_{res}.parquet"
if not dest.exists():

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Memoize unavailable time-series groups

When a group has no remote parquet file, this path leaves no cached negative result, so every later sample using the same group retries all three URLs. The dataset contains heavily repeated groups and the README states that most groups lack time-series data, so a full default run performs thousands of redundant network requests before model evaluation; cache unavailable groups for the task lifetime.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
Comment on lines +58 to +59
"https://huggingface.co/datasets/Datadog/ARFBench/resolve/main/"
"arfbench-ts-data/{group}_{res}.parquet"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pin the remote dataset revision

Resolving every parquet from the mutable main ref makes benchmark inputs depend on cache state and run date: a clean machine fetches the latest bytes while an existing cache retains older bytes, so identical commits and model settings can produce different scores. The upstream dataset has already used replacement uploads, as shown by its re-upload commit; pin a dataset commit and verify downloaded checksums.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/README.md
- Benchmark: 750 multiple-choice QA pairs from 63 real Datadog production
incidents, testing time-series anomaly reasoning (8 task categories,
3 difficulty tiers).
- Source: https://github.com/DataDog/ARFBench — **Apache 2.0** (verified).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include the Apache license with redistributed artifacts

The commit redistributes Datadog's Apache-2.0-licensed QA and time-series artifacts, but the repository contains no LICENSE file; merely naming the license here does not provide recipients a copy. Apache License 2.0 section 4(a) explicitly requires redistributions to include the license, so add its full text and retain any upstream attribution notices that apply. Apache License 2.0

Useful? React with 👍 / 👎.

TS_CACHE = Path(__file__).parent / "data" / "ts"

# Fine -> coarse; first resolution with <= TS_MAX_ROWS wins.
TS_RESOLUTIONS = ["300", "1800", "3600"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve temporal precision for timestamp questions

The loader never considers the available 10- or 60-second files and starts at five-minute bars, even though the committed start/end questions contain materially closer choices—for example, row 3 asks the model to distinguish 18:19:10 from 18:19:43. Those alternatives collapse into the same five-minute observation, and the later summary further renders the peak only as HH:MM, so these samples cannot be answered from the supplied context; select a resolution based on the timestamp choices and retain full timestamp precision.

Useful? React with 👍 / 👎.

dataset = [_to_sample(r, series_context) for r in rows]
return Task(
dataset=dataset,
solver=multiple_choice(),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Supply the benchmark's task instructions

The task invokes only Inspect's generic multiple-choice solver, so models never receive ARFBench's definitions of anomaly magnitude, the six anomaly categories, correlation, or leading/lagging indicators. Datadog's upstream benchmark prompt supplies these definitions on every evaluation; omitting them changes what the 104 categorization and 76 magnitude samples ask the model to infer and makes scores incomparable even after accounting for the compact time-series representation.

Useful? React with 👍 / 👎.

@KyPython KyPython changed the title evals: wrap Datadog ARFBench as inspect_ai task feat(evals): wrap Datadog ARFBench as inspect_ai task Oct 19, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2d99b902a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread evals/arfbench/arfbench_eval.py Outdated
Comment on lines +95 to +98
except Exception:
if dest.exists():
dest.unlink(missing_ok=True)
continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fail on transient time-series download errors

When Hugging Face is temporarily unreachable or returns a timeout, DNS/TLS error, or 5xx response, this broad handler treats the failure exactly like an absent dataset file. _summarize_ts() then returns no context and the default evaluation silently continues with description-only prompts, so an outage can produce a complete but invalid benchmark score. Only expected not-found responses should trigger the fallback; transient and infrastructure failures should be retried or surfaced.

Useful? React with 👍 / 👎.

Comment on lines +50 to +51
DATA = Path(__file__).parent / "data" / "arfbench-qa.csv.gz"
TS_CACHE = Path(__file__).parent / "data" / "ts"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep downloaded cache files out of the worktree

Whenever the default mode successfully fetches a previously uncached group, it writes the parquet into evals/arfbench/data/ts, but that generated path is not covered by the repository's .gitignore. A normal benchmark run therefore leaves many large untracked artifacts in the checkout and makes them easy to commit accidentally; use a cache directory outside the repository or ignore the generated parquet files while explicitly retaining any intended fixture.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
# reproducible. Residual note: even shuffled, no-reasoning heuristics
# (longest choice, max question-overlap) still beat chance ~33% vs ~24%,
# which is inherent distractor weakness in the questions, not the harness.
dataset.shuffle_choices(seed=42)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep each sample's shuffle stable across tier filters

Because tier filtering occurs before this call, shuffle_choices(seed=42) advances its single RNG over a different sequence of samples in a tier-only run than in the full run. The same Tier 2 or Tier 3 question therefore receives a different option permutation when evaluated alone versus as part of all 750 samples, so residual model position bias can change per-tier scores solely because of the invocation mode. Derive the permutation from the sample ID or otherwise shuffle each sample independently so its ordering remains stable across filters.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
Comment on lines +272 to +273
if isinstance(series_context, str):
series_context = series_context.strip().lower() in ("true", "1", "yes")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reject invalid series_context values

For string-valued task parameters, every value other than true, 1, or yes is silently interpreted as false. A typo such as -T series_context=ture therefore disables the time-series context and produces a successful description-only evaluation instead of reporting the invalid configuration, which can yield misleading benchmark results. Recognize an explicit set of true and false spellings and raise for anything else.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 14a0812d39

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1 @@
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BRhkoMEGHHTgwQcghCDCCCSUYMIJKKSgwgostODCCzDEIMMMNNRgww045KDDDjz04MMPQAQhxBBEFGHEEUgkocQSTDThxBNQRCHFFFRUYcUVWGShxRZcdOHFF2CEIcYYZJRhxhlopKHGGmy04cYbcMQhxxx01GHHHXjkoccefPThxx+ABCLIIIQUYsghiCSiyCKMNOLII5BEIskklFRiySWYZKLJJpx04sknoIQiyiiklGLKKaikosoqrLTiyiuwxCLLLLTUYsstuOSiyy689OLLL8AEI8wwxBRjzDHIJKPMMsw048wz0EQjzTTUVGPNNdhko8023HTjzTfghCPOOOSUY8456KSjzjrstOPOO/DEI8889NRjzz345KPPPvz0488/AAUk0EAEFWTQQQglpNBCDDXk0EMQRSTRRBRVZNFFGGWk0UYcdeTRRyCFJNJIJJVk0kkopaTSSiy15NJLMMUk00w01WTTTTjlpNNOPPXk009ABSXUUEQVZdRRSCWl1FJMNeXUU1BFJdVUVFVl1VVYZaXVVlx15dVXYIUl1lhklWXWWWilpdZabLXl1ltwxSXXXHTVZdddeOWl11589eXXX4AFJthghBVm2GGIJabYYow15thjkEUm2WSUVWbZZZhlptlmnHXm2WeghSbaaKSVZtppqKWm2mqstebaa7DFJttstNVm22245abbbrz15ttvwAUn3HDEFWfcccglp9xyzDXn3HPQRSfddNRVZ9112GWn3Xbcdefdd+CFJ9545JVn3nnopafeeuy159578MUn33z01WfffWP45afffvz1599/AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIF5200kUXXfTSTDftdNFPFw111FIXXfTUVBddtdVFF1301VhnXXTRWhdddNFFF1100Vtz3XXRRXtddNFfgw0AAAAAAAAAJuCrARwVChk1AAYQGRgFdmFsdWUVAhb0DRaGfxaafyaCmQEmxiwcGAgAAAAAAABZQBgI8XZ4TyWjUkAWACgIAAAAAAAAWUAYCPF2eE8lo1JAABksFQQVABUCABUAFRAVAgAAABUEFRAVFEwVAhUAEgAACBwFAAAAAAAAABUAFRYVGiwV9A0VEBUGFQYcGAgFAAAAAAAAABgIBQAAAAAAAAAWACgIBQAAAAAAAAAYCAUAAAAAAAAAAAAACygDAAAA9A0BAfQNACburgEcFQQZNQAGEBkYCm51bV9ncm91cHMVAhb0DRa+ARbGASbYrQEmqK0BHBgIBQAAAAAAAAAYCAUAAAAAAAAAFgAoCAUAAAAAAAAAGAgFAAAAAAAAAAAZLBUEFQAVAgAVABUQFQIAAAAVBBUWFRpMFQIVABIAAAsoBwAAADM1OTI4XzEVABUWFRosFfQNFRAVBhUGHDYAKAczNTkyOF8xGAczNTkyOF8xAAAACygDAAAA9A0BAfQNACbisQEcFQwZNQAGEBkYCnF1ZXJ5X25hbWUVAhb0DRaYARagASb4sAEmwrABHDYAKAczNTkyOF8xGAczNTkyOF8xABksFQQVABUCABUAFRAVAgAAABUEFaBvFeQ3TBX0DRUAEgAA0DcAAA0BAAENCAACDQgAAw0IAAQNCAAFDQgABg0IAAcNCAAIDQgACQ0IAAoNCAALDQgADA0IAA0NCAAODQgADw0IABANCAARDQgAEg0IABMNCAAUDQgAFQ0IABYNCAAXDQgAGA0IABkNCAAaDQgAGw0IABwNCAAdDQgAHg0IAB8NCAAgDQgAIQ0IACINCAAjDQgAJA0IACUNCAAmDQgAJw0IACgNCAApDQgAKg0IACsNCAAsDQgALQ0IAC4NCAAvDQgAMA0IADENCAAyDQgAMw0IADQNCAA1DQgANg0IADcNCAA4DQgAOQ0IADoNCAA7DQgAPA0IAD0NCAA+DQgAPw0IAEANCABBDQgAQg0IAEMNCABEDQgARQ0IAEYNCABHDQgASA0IAEkNCABKDQgASw0IAEwNCABNDQgATg0IAE8NCABQDQgAUQ0IAFINCABTDQgAVA0IAFUNCABWDQgAVw0IAFgNCABZDQgAWg0IAFsNCABcDQgAXQ0IAF4NCABfDQgAYA0IAGENCABiDQgAYw0IAGQNCABlDQgAZg0IAGcNCABoDQgAaQ0IAGoNCABrDQgAbA0IAG0NCABuDQgAbw0IAHANCABxDQgAcg0IAHMNCAB0DQgAdQ0IAHYNCAB3DQgAeA0IAHkNCAB6DQgAew0IAHwNCAB9DQgAfg0IAH8NCACADQgAgQ0IAIINCACDDQgAhA0IAIUNCACGDQgAhw0IAIgNCACJDQgAig0IAIsNCACMDQgAjQ0IAI4NCACPDQgAkA0IAJENCACSDQgAkw0IAJQNCACVDQgAlg0IAJcNCACYDQgAmQ0IAJoNCACbDQgAnA0IAJ0NCACeDQgAnw0IAKANCAChDQgAog0IAKMNCACkDQgApQ0IAKYNCACnDQgAqA0IAKkNCACqDQgAqw0IAKwNCACtDQgArg0IAK8NCACwDQgAsQ0IALINCACzDQgAtA0IALUNCAC2DQgAtw0IALgNCAC5DQgAug0IALsNCAC8DQgAvQ0IAL4NCAC/DQgAwA0IAMENCADCDQgAww0IAMQNCADFDQgAxg0IAMcNCADIDQgAyQ0IAMoNCADLDQgAzA0IAM0NCADODQgAzw0IANANCADRDQgA0g0IANMNCADUDQgA1Q0IANYNCADXDQgA2A0IANkNCADaDQgA2w0IANwNCADdDQgA3g0IAN8NCADgDQgA4Q0IAOINCADjDQgA5A0IAOUNCADmDQgA5w0IAOgNCADpDQgA6g0IAOsNCADsDQgA7Q0IAO4NCADvDQgA8A0IAPENCADyDQgA8w0IAPQNCAD1DQgA9g0IAPcNCAD4DQgA+Q0IAPoNCAD7DQgA/A0IAP0NCAD+DQgA/w0I8fkEAQEJEQACDQgAAw0IAAQNCAAFDQgABg0IAAcNCAAIDQgACQ0IAAoNCAALDQgADA0IAA0NCAAODQgADw0IABANCAARDQgAEg0IABMNCAAUDQgAFQ0IABYNCAAXDQgAGA0IABkNCAAaDQgAGw0IABwNCAAdDQgAHg0IAB8NCAAgDQgAIQ0IACINCAAjDQgAJA0IACUNCAAmDQgAJw0IACgNCAApDQgAKg0IACsNCAAsDQgALQ0IAC4NCAAvDQgAMA0IADENCAAyDQgAMw0IADQNCAA1DQgANg0IADcNCAA4DQgAOQ0IADoNCAA7DQgAPA0IAD0NCAA+DQgAPw0IAEANCABBDQgAQg0IAEMNCABEDQgARQ0IAEYNCABHDQgASA0IAEkNCABKDQgASw0IAEwNCABNDQgATg0IAE8NCABQDQgAUQ0IAFINCABTDQgAVA0IAFUNCABWDQgAVw0IAFgNCABZDQgAWg0IAFsNCABcDQgAXQ0IAF4NCABfDQgAYA0IAGENCABiDQgAYw0IAGQNCABlDQgAZg0IAGcNCABoDQgAaQ0IAGoNCABrDQgAbA0IAG0NCABuDQgAbw0IAHANCABxDQgAcg0IAHMNCAB0DQgAdQ0IAHYNCAB3DQgAeA0IAHkNCAB6DQgAew0IAHwNCAB9DQgAfg0IAH8NCACADQgAgQ0IAIINCACDDQgAhA0IAIUNCACGDQgAhw0IAIgNCACJDQgAig0IAIsNCACMDQgAjQ0IAI4NCACPDQgAkA0IAJENCACSDQgAkw0IAJQNCACVDQgAlg0IAJcNCACYDQgAmQ0IAJoNCACbDQgAnA0IAJ0NCACeDQgAnw0IAKANCAChDQgAog0IAKMNCACkDQgApQ0IAKYNCACnDQgAqA0IAKkNCACqDQgAqw0IAKwNCACtDQgArg0IAK8NCACwDQgAsQ0IALINCACzDQgAtA0IALUNCAC2DQgAtw0IALgNCAC5DQgAug0IALsNCAC8DQgAvQ0IAL4NCAC/DQgAwA0IAMENCADCDQgAww0IAMQNCADFDQgAxg0IAMcNCADIDQgAyQ0IAMoNCADLDQgAzA0IAM0NCADODQgAzw0IANANCADRDQgA0g0IANMNCADUDQgA1Q0IANYNCADXDQgA2A0IANkNCADaDQgA2w0IANwNCADdDQgA3g0IAN8NCADgDQgA4Q0IAOINCADjDQgA5A0IAOUNCADmDQgA5w0IAOgNCADpDQgA6g0IAOsNCADsDQgA7Q0IAO4NCADvDQgA8A0IAPENCADyDQgA8w0IAPQNCAD1DQgA9g0IAPcNCAD4DQgA+Q0IAPoNCAD7DQgA/A0IAP0NCAD+DQgA/w0IHvEPAAEa+Q8AAg0IAAMNCAAEDQgABQ0IAAYNCAAHDQgACA0IAAkNCAAKDQgACw0IAAwNCAANDQgADg0IAA8NCAAQDQgAEQ0IABINCAATDQgAFA0IABUNCAAWDQgAFw0IABgNCAAZDQgAGg0IABsNCAAcDQgAHQ0IAB4NCAAfDQgAIA0IACENCAAiDQgAIw0IACQNCAAlDQgAJg0IACcNCAAoDQgAKQ0IACoNCAArDQgALA0IAC0NCAAuDQgALw0IADANCAAxDQgAMg0IADMNCAA0DQgANQ0IADYNCAA3DQgAOA0IADkNCAA6DQgAOw0IADwNCAA9DQgAPg0IAD8NCABADQgAQQ0IAEINCABDDQgARA0IAEUNCABGDQgARw0IAEgNCABJDQgASg0IAEsNCABMDQgATQ0IAE4NCABPDQgAUA0IAFENCABSDQgAUw0IAFQNCABVDQgAVg0IAFcNCABYDQgAWQ0IAFoNCABbDQgAXA0IAF0NCABeDQgAXw0IAGANCABhDQgAYg0IAGMNCABkDQgAZQ0IAGYNCABnDQgAaA0IAGkNCABqDQgAaw0IAGwNCABtDQgAbg0IAG8NCABwDQgAcQ0IAHINCABzDQgAdA0IAHUNCAB2DQgAdw0IAHgNCAB5DQgAeg0IAHsNCAB8DQgAfQ0IAH4NCAB/DQgAgA0IAIENCACCDQgAgw0IAIQNCACFDQgAhg0IAIcNCACIDQgAiQ0IAIoNCACLDQgAjA0IAI0NCACODQgAjw0IAJANCACRDQgAkg0IAJMNCACUDQgAlQ0IAJYNCACXDQgAmA0IAJkNCACaDQgAmw0IAJwNCACdDQgAng0IAJ8NCACgDQgAoQ0IAKINCACjDQgApA0IAKUNCACmDQgApw0IAKgNCACpDQgAqg0IAKsNCACsDQgArQ0IAK4NCACvDQgAsA0IALENCACyDQgAsw0IALQNCAC1DQgAtg0IALcNCAC4DQgAuQ0IALoNCAC7DQgAvA0IAL0NCAC+DQgAvw0IAMANCADBDQgAwg0IAMMNCADEDQgAxQ0IAMYNCADHDQgAyA0IAMkNCADKDQgAyw0IAMwNCADNDQgAzg0IAM8NCADQDQgA0Q0IANINCADTDQgA1A0IANUNCADWDQgA1w0IANgNCADZDQgA2g0IANsNCADcDQgA3Q0IAN4NCADfDQgA4A0IAOENCADiDQgA4w0IAOQNCADlDQgA5g0IAOcNCADoDQgA6Q0IAOoNCADrDQgA7A0IAO0NCADuDQgA7w0IAPANCADxDQgA8g0IAPMNCAD0DQgA9Q0IAPYNCAD3DQgA+A0IAPkNCAD6DQgA+w0IAPwNCAD9DQgA/g0IAP8NCB7pFwABGvEXAAINCAADDQgABA0IAAUNCAAGDQgABw0IAAgNCAAJDQgACg0IAAsNCAAMDQgADQ0IAA4NCAAPDQgAEA0IABENCAASDQgAEw0IABQNCAAVDQgAFg0IABcNCAAYDQgAGQ0IABoNCAAbDQgAHA0IAB0NCAAeDQgAHw0IACANCAAhDQgAIg0IACMNCAAkDQgAJQ0IACYNCAAnDQgAKA0IACkNCAAqDQgAKw0IACwNCAAtDQgALg0IAC8NCAAwDQgAMQ0IADINCAAzDQgANA0IADUNCAA2DQgANw0IADgNCAA5DQgAOg0IADsNCAA8DQgAPQ0IAD4NCAA/DQgAQA0IAEENCABCDQgAQw0IAEQNCABFDQgARg0IAEcNCABIDQgASQ0IAEoNCABLDQgATA0IAE0NCABODQgATw0IAFANCABRDQgAUg0IAFMNCABUDQgAVQ0IAFYNCABXDQgAWA0IAFkNCABaDQgAWw0IAFwNCABdDQgAXg0IAF8NCABgDQgAYQ0IAGINCABjDQgAZA0IAGUNCABmDQgAZw0IAGgNCABpDQgAag0IAGsNCABsDQgAbQ0IAG4NCABvDQgAcA0IAHENCAByDQgAcw0IAHQNCAB1DQgAdg0IAHcNCDx4AwAAAAAAAHkDAAAAAAAAFQAV1BEV3hEsFfQNFRAVBhUGHBgIeQMAAAAAAAAYCAAAAAAAAAAAFgAoCHkDAAAAAAAAGAgAAAAAAAAAAAAAAOoI9GkEAwAAAPQNAQp/AAQgwAAEFGDAAQgkoMACDDTgwAMQRCDBBBRUYMEFGGSgwQYcdODBByCEIMIIJJRgwgkopKDCCiy04MILMMQgwww01GDDDTjkoMMOPPTgww9ABCHEEEQUYcQRSCShxBJMNOHEE1BEIcUUVFRhxRVYZKHFFlx04cUXYIQhxhhklGHGGWikocYabLThxhtwxCHHHHTUYccdeOShxx589OHHH4AEIsgghBRiyCGIJKLIIow04sgjkEQiySSUVGLJJZhkoskmnHTiySeghCLKKKSUYsopqKSiyiqstOLKK7DEIssstNRiyy245KLLLrz04ssvwAQjzDDEFGPMMcgko8wyzDTjzDPQRCPNNNRUY8012GSjzTbcdOPNN+CEI8445JRjzjnopKPOOuy048478MQjzzz01GPPPfjko88+/PTjzz8ABSTQQAQVZNBBCCWk0EIMNeTQQxBFJNFEFFVk0UUYZaTRRhx15NFHIIUk0kgklWTSSSilpNJKLLXk0kswxSTTTDTVZNNNOOWk00489eTTT0AFJdRQRBVl1FFIJaXUUkw15dRTUEUl1VRUVWXVVVhlpdVWXHXl1VdghSXWWGSVZdZZaKWl1lpsteXWW3DFJddcdNVl11145aXXXnz15ddfgAUm2GCEFWbYYYglpthijDXm2GOQRSbZZJRVZtllmGWm2WacdebZZ6CFJtpopJVm2mmopabaaqy15tprsMUm22y01WbbbbjlpttuvPXm22/ABSfccMQVZ9xxyCWn3HLMNefcc9BFJ9101FVn3XXYZafddtx159134IUn3njklWfeeeilp9567LXn3nvwxSfffPTVZ999Y/jlp99+/PXn338ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnDQAAAAAAAAAm7v0BHBUEGTUABhAZGBFfX2luZGV4X2xldmVsXzBfXxUCFvQNFpaCARbkSiaQ6wEmirMBHBgIeQMAAAAAAAAYCAAAAAAAAAAAFgAoCHkDAAAAAAAAGAgAAAAAAAAAAAAZLBUEFQAVAgAVABUQFQIAAAAVBBl8NQAYBnNjaGVtYRUMABUEJQIYBWVwb2NobIwSHDwAAAAAABUMJQIYBWdyb3VwJQBMHAAAABUKJQIYBXZhbHVlABUEJQIYCm51bV9ncm91cHMAFQwlAhgKcXVlcnlfbmFtZSUATBwAAAAVBCUCGBFfX2luZGV4X2xldmVsXzBfXwAW9A0ZHBlsJpAhHBUEGTUABhAZGAVlcG9jaBUCFvQNFtYlFoghJtQUJggcGAgA8G3NyIwqGBgIALjKfn1cKhgWACgIAPBtzciMKhgYCAC4yn59XCoYABksFQQVABUCABUAFRAVAgAAACbSKhwVDBk1AAYQGRgFZ3JvdXAVAhb0DRbWCRaACCbkIybSIhw2ACgeZGF0YWNlbnRlcjoxLGt1YmVfZGVwbG95bWVudDo1GB5kYXRhY2VudGVyOjEsa3ViZV9kZXBsb3ltZW50OjEAGSwVBBUAFQIAFQAVEBUCAAAAJuCrARwVChk1AAYQGRgFdmFsdWUVAhb0DRaGfxaafyaCmQEmxiwcGAgAAAAAAABZQBgI8XZ4TyWjUkAWACgIAAAAAAAAWUAYCPF2eE8lo1JAABksFQQVABUCABUAFRAVAgAAACburgEcFQQZNQAGEBkYCm51bV9ncm91cHMVAhb0DRa+ARbGASbYrQEmqK0BHBgIBQAAAAAAAAAYCAUAAAAAAAAAFgAoCAUAAAAAAAAAGAgFAAAAAAAAAAAZLBUEFQAVAgAVABUQFQIAAAAm4rEBHBUMGTUABhAZGApxdWVyeV9uYW1lFQIW9A0WmAEWoAEm+LABJsKwARw2ACgHMzU5MjhfMRgHMzU5MjhfMQAZLBUEFQAVAgAVABUQFQIAAAAm7v0BHBUEGTUABhAZGBFfX2luZGV4X2xldmVsXzBfXxUCFvQNFpaCARbkSiaQ6wEmirMBHBgIeQMAAAAAAAAYCAAAAAAAAAAAFgAoCHkDAAAAAAAAGAgAAAAAAAAAAAAZLBUEFQAVAgAVABUQFQIAAAAWnrMCFvQNJggW7PUBFAAAGSwYBnBhbmRhcxjKB3siaW5kZXhfY29sdW1ucyI6IFsiX19pbmRleF9sZXZlbF8wX18iXSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJvYmplY3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogImVwb2NoIiwgImZpZWxkX25hbWUiOiAiZXBvY2giLCAicGFuZGFzX3R5cGUiOiAiZGF0ZXRpbWUiLCAibnVtcHlfdHlwZSI6ICJkYXRldGltZTY0W25zXSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZ3JvdXAiLCAiZmllbGRfbmFtZSI6ICJncm91cCIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIiwgIm51bXB5X3R5cGUiOiAib2JqZWN0IiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ2YWx1ZSIsICJmaWVsZF9uYW1lIjogInZhbHVlIiwgInBhbmRhc190eXBlIjogImZsb2F0NjQiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDY0IiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJudW1fZ3JvdXBzIiwgImZpZWxkX25hbWUiOiAibnVtX2dyb3VwcyIsICJwYW5kYXNfdHlwZSI6ICJpbnQ2NCIsICJudW1weV90eXBlIjogImludDY0IiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJxdWVyeV9uYW1lIiwgImZpZWxkX25hbWUiOiAicXVlcnlfbmFtZSIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIiwgIm51bXB5X3R5cGUiOiAib2JqZWN0IiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogIl9faW5kZXhfbGV2ZWxfMF9fIiwgInBhbmRhc190eXBlIjogImludDY0IiwgIm51bXB5X3R5cGUiOiAiaW50NjQiLCAibWV0YWRhdGEiOiBudWxsfV0sICJjcmVhdG9yIjogeyJsaWJyYXJ5IjogInB5YXJyb3ciLCAidmVyc2lvbiI6ICIxNC4wLjIifSwgInBhbmRhc192ZXJzaW9uIjogIjIuMC4xIn0AGAxBUlJPVzpzY2hlbWEY7A4vLy8vLzRnRkFBQVFBQUFBQUFBS0FBNEFCZ0FGQUFnQUNnQUFBQUFCQkFBUUFBQUFBQUFLQUF3QUFBQUVBQWdBQ2dBQUFBQUVBQUFFQUFBQUFRQUFBQXdBQUFBSUFBd0FCQUFJQUFnQUFBRFlBd0FBQkFBQUFNb0RBQUI3SW1sdVpHVjRYMk52YkhWdGJuTWlPaUJiSWw5ZmFXNWtaWGhmYkdWMlpXeGZNRjlmSWwwc0lDSmpiMngxYlc1ZmFXNWtaWGhsY3lJNklGdDdJbTVoYldVaU9pQnVkV3hzTENBaVptbGxiR1JmYm1GdFpTSTZJRzUxYkd3c0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWJtbGpiMlJsSWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpYjJKcVpXTjBJaXdnSW0xbGRHRmtZWFJoSWpvZ2V5SmxibU52WkdsdVp5STZJQ0pWVkVZdE9DSjlmVjBzSUNKamIyeDFiVzV6SWpvZ1czc2libUZ0WlNJNklDSmxjRzlqYUNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSW1Wd2IyTm9JaXdnSW5CaGJtUmhjMTkwZVhCbElqb2dJbVJoZEdWMGFXMWxJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWlaR0YwWlhScGJXVTJORnR1YzEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJbWR5YjNWd0lpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVozSnZkWEFpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFc1cFkyOWtaU0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJbTlpYW1WamRDSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpZG1Gc2RXVWlMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSjJZV3gxWlNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKbWJHOWhkRFkwSWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpWm14dllYUTJOQ0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaWJuVnRYMmR5YjNWd2N5SXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0ltNTFiVjluY205MWNITWlMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlhVzUwTmpRaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKcGJuUTJOQ0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaWNYVmxjbmxmYm1GdFpTSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0luRjFaWEo1WDI1aGJXVWlMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlkVzVwWTI5a1pTSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0ltOWlhbVZqZENJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQnVkV3hzTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pmWDJsdVpHVjRYMnhsZG1Wc1h6QmZYeUlzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0pwYm5RMk5DSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0ltbHVkRFkwSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgxZExDQWlZM0psWVhSdmNpSTZJSHNpYkdsaWNtRnllU0k2SUNKd2VXRnljbTkzSWl3Z0luWmxjbk5wYjI0aU9pQWlNVFF1TUM0eUluMHNJQ0p3WVc1a1lYTmZkbVZ5YzJsdmJpSTZJQ0l5TGpBdU1TSjlBQUFHQUFBQWNHRnVaR0Z6QUFBR0FBQUFKQUVBQU9RQUFBQzBBQUFBZEFBQUFFUUFBQUFFQUFBQUJQLy8vd0FBQVFJUUFBQUFKQUFBQUFRQUFBQUFBQUFBRVFBQUFGOWZhVzVrWlhoZmJHVjJaV3hmTUY5ZkFBQUFvUC8vL3dBQUFBRkFBQUFBUVAvLy93QUFBUVVRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUhGMVpYSjVYMjVoYldVQUFIRC8vLzlzLy8vL0FBQUJBaEFBQUFBa0FBQUFCQUFBQUFBQUFBQUtBQUFBYm5WdFgyZHliM1Z3Y3dBQUNBQU1BQWdBQndBSUFBQUFBQUFBQVVBQUFBQ28vLy8vQUFBQkF4QUFBQUFZQUFBQUJBQUFBQUFBQUFBRkFBQUFkbUZzZFdVQUFBQ2EvLy8vQUFBQ0FOVC8vLzhBQUFFRkVBQUFBQndBQUFBRUFBQUFBQUFBQUFVQUFBQm5jbTkxY0FBQUFBUUFCQUFFQUFBQUVBQVVBQWdBQmdBSEFBd0FBQUFRQUJBQUFBQUFBQUVLRUFBQUFCd0FBQUFFQUFBQUFBQUFBQVVBQUFCbGNHOWphQUFHQUFnQUJnQUdBQUFBQUFBREFBQUFBQUE9ABggcGFycXVldC1jcHAtYXJyb3cgdmVyc2lvbiAxNC4wLjIZbBwAABwAABwAABwAABwAABwAAACXDgAAUEFSMQ== No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Decode the committed parquet cache artifact

The committed file contains base64 text (UEFSM...) rather than a parquet stream (PAR1). When the default run reaches query group 35928_0, pd.read_parquet() rejects the tracked artifact and the exception handler deletes it; an offline run consequently loses the intended context, while an online run replaces the tracked file with downloaded binary data and dirties the worktree. Decode this artifact before committing it, as _load_rows() already does for the similarly encoded CSV.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
Comment on lines +324 to +325
if limit is not None:
rows = rows[: int(limit)]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reject nonpositive limit values

When a caller supplies a negative task limit, Python slicing interprets it relative to the end, so -T limit=-1 evaluates 749 samples instead of rejecting the invalid maximum. Because real runs are explicitly described as incurring API cost, a mistaken negative value can unexpectedly launch almost the entire benchmark; validate that limit is positive before slicing.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f6196b9869

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

)
if series_context:
try:
import pandas # noqa: F401

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Validate the parquet engine before enabling context

When pandas is installed but neither pyarrow nor another parquet engine is available, this dependency guard succeeds, but every downstream pd.read_parquet() raises an ImportError; _fetch_ts() catches that exception as if the cache were corrupt, deletes each downloaded file, and ultimately runs the benchmark without time-series context. Check for the required parquet engine here so this environment fails clearly instead of silently producing description-only scores.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
Comment on lines +331 to +334
text, res = _summarize_one(part, fine)
if text:
blocks.append(text)
resolutions.append(res)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Require both series before emitting paired context

For a correlation or leading/lagging sample where only one comma-separated query group has usable parquet data, this loop silently drops the missing group and returns the surviving block. _to_sample() then marks the sample as having series context and omits the missing-data note, even though these questions require comparing anomalies in both series; the resulting one-sided prompt can produce a successful but invalid benchmark score. Treat paired context as all-or-none, or explicitly surface the missing side.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Codex review remediation — all 12 threads addressed

Each finding below is fixed in 1bf6d9f9 / f6196b98 (CI 7/7 green, new regression suite evals/arfbench/test_arfbench.py passes):

  1. Base64 gzip blob → _load_rows() now accepts real gzip or base64 text (the push path can't carry binary). Verified: committed artifact loads 750 rows.
  2. Undeclared pandas/pyarrow → added to root requirements.txt (pandas==3.0.6, pyarrow==26.0.0); README's sibling-venv reference replaced.
  3. No regression tests → evals/arfbench/test_arfbench.py (7 tests: data loads, task constructs in both context modes with ts downloads stubbed, shuffle stability, position-hack invariant, param validation, fine-resolution detection); wired into tests/test_eval_suites.py.
  4. Memoize unavailable groups → _TS_UNAVAILABLE negative cache for the task lifetime.
  5. Pin dataset revision → HF_REVISION = 1cc8ae5... (== main as of 2026-10-19, so existing caches stay valid).
  6. Apache-2.0 license text → evals/arfbench/LICENSE with attribution to Datadog/ARFBench.
  7. Timestamp precision → questions naming HH:MM:SS timestamps now try 10/60s data first and render peaks with second precision; coarser questions unchanged.
  8. Missing task instructions → TASK_INSTRUCTIONS (distilled from Datadog's upstream benchmark prompt) prepended to every prompt.
  9. Silent fallback on transient errors → only HTTP 404 falls back; timeouts/DNS/5xx now raise instead of producing a silently invalid score.
  10. ts cache not gitignored → evals/arfbench/data/ts/ added to .gitignore.
  11. Shuffle stability → per-sample deterministic shuffle (seed from sample id); identical permutations across tier slices and full runs (0 mismatches verified).
  12. series_context validation → unrecognized string values now raise ValueError instead of silently disabling context.

Hack-pass note: the position hack from the 2026-10-19 report is dead (always-A: 61.7% → ~23%); residual no-reasoning baseline ~33% documented in code and README.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5e2304cdea

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread evals/arfbench/arfbench_eval.py Outdated
_TS_UNAVAILABLE: set[str] = set()

# Second-precision timestamps in a question or its choices.
_TS_SEC_RE = re.compile(r"\d{1,2}:\d{2}:\d{2}")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Select resolution from the choices' actual granularity

This pattern treats every full timestamp as requiring 10-second data, including timestamps ending in :00. In the committed dataset, 74 of the 88 timestamp samples have only minute-aligned choices, yet each starts by downloading the 10-second parquet; oversized files are then deleted and can be downloaded again for another sample using the same group. Infer the required interval from the choice spacing or nonzero seconds so ordinary minute-level questions begin at 60- or 300-second data.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/README.md Outdated
Comment on lines +105 to +106
- No shuffling: choice order is dataset order. The `choice()` scorer detects
shuffled choices; add shuffling before any serious run.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the README to match the implemented shuffle

These lines still state that choices are unshuffled and instruct users to add shuffling, but _to_sample() already applies a per-sample SHA-derived permutation. Following this guidance changes the option ordering again, while the later verification section separately claims the task uses dataset.shuffle_choices(seed=42), so neither the documented reproducibility scheme nor its reported position baseline describes the task users actually run. Update both sections to describe the implemented per-sample shuffle.

Useful? React with 👍 / 👎.

Comment thread evals/arfbench/arfbench_eval.py Outdated
parts = [g.strip() for g in query_group.split(",") if g.strip()]
blocks, resolutions = [], []
for part in parts:
text, res = _summarize_one(part, fine)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use one resolution for both sides of paired questions

Each side of a paired correlation or indicator sample independently selects its first resolution below the row limit, so groups of different sizes can be summarized at different granularities such as 5 minutes and 1 hour. Their reported peak timestamps are then not temporally comparable and can change the inferred leading/lagging order, directly affecting the benchmark's 163 indicator samples. Negotiate a common usable resolution across all parts before producing either summary.

Useful? React with 👍 / 👎.

KyPython and others added 2 commits October 19, 2026 02:30
Keep the ARFBench cache ignore and pandas/pyarrow pins, and take pytest 9.0.3 from main.

Co-authored-by: Cursor <cursoragent@cursor.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 366415011c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1,477 @@
"""

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Land the required ARFBench spec before this code

This commit introduces executable evaluation code, but a repository-wide search finds no ARFBench requirements under specs/ or .kiro/specs/. The governance verdict requires code to implement a spec that already exists on the base branch, so this change cannot pass the mandatory gate; have Kiro or Ky land the spec separately, reference it from the PR, and cite its criterion IDs in these tests.

AGENTS.md reference: AGENTS.md:L19-L22

Useful? React with 👍 / 👎.

Comment on lines +409 to +410
fine = _needs_fine_resolution(row["question"], options)
summary, ts_resolution = _summarize_ts(row["query_group"], fine)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve fine timing for indicator questions

For all 163 Anomaly Indicator samples, the question and choices describe leading/lagging relationships without containing literal timestamps, so this check always selects the 300-second-or-coarser path. The committed data demonstrates why that is insufficient: indicator row 35 pairs groups 35950_1 and 35950_6, whose associated recovery samples distinguish 18:19:00 from 18:19:10; five-minute bars can erase precisely the ordering being scored. Select resolution using the task category and the paired groups' required timing granularity, not only timestamp text in the current choices.

Useful? React with 👍 / 👎.

Comment on lines +305 to +307
stats.sort(key=lambda d: -d["peak_z"])
shown = stats[:TS_MAX_VARIATES]
hidden = len(stats) - len(shown)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include option-named channels in identification summaries

For Anomaly Identification samples, the answer choices ask about specific channel labels, but this unconditional top-eight truncation can omit those channels whenever a group has more than eight variates. Selection by rolling-z rank is not equivalent to selection by the benchmark's candidate labels—level shifts, trend changes, and normal channels needed to establish “No anomaly” can rank below noisy unrelated series—so the model receives no observations for choices it must compare. Preserve every option-named channel in the summary before filling any remaining slots by deviation.

Useful? React with 👍 / 👎.

Comment on lines +170 to +173
with urllib.request.urlopen(req, timeout=60) as r:
if r.status != 200:
return None
dest.write_bytes(r.read())

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stream parquet downloads instead of buffering them

On an uncached group, r.read() materializes the entire parquet response in memory before the row-count limit is checked. The benchmark documents groups with thousands of variates and also attempts 10-second files, so a default run can allocate a very large response only to discover afterward that it exceeds TS_MAX_ROWS, potentially exhausting memory before evaluation begins. Stream into a temporary file and inspect parquet metadata or enforce a byte limit before promoting it into the cache.

Useful? React with 👍 / 👎.

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