Repository navigation
feat: discovery suite and per-experiment egress opt-out - #41
Merged
Merged
Conversation
Add a fifth eval suite, `discovery`, for vendor-neutral tasks whose outcome is categorical (which product the agent chose) rather than pass/fail. It is never a headline suite: HEADLINE_SUITES is unchanged, so every validator, expander, planner and the leaderboard aggregate pick it up from the one constant with no store migration or schema bump. The Matrix view builds its suite tabs from its own hard-coded list, so a suite missing there is invisible even though the report carries it; the list and hover titles now include discovery, are exported, and the duplicated available-suite filter is one pure helper the new Matrix test pins (tab present with a discovery pair, absent without, discovery-only runs land on it with no toggle). Spec: docs/ideation/discovery-suite/spec-phase-1.md
`Runtime.egress: "open"` skips the egress proxy for that experiment's attempts even when the run was started with --egress-proxy, so an arm that must reach the open internet can share a run with proxied arms. The choice lands in each pair environment (`egress.proxy`), so it is identity and can be exempted in a comparison group with `treatmentPolicyFields: ["egress"]`. The decision is one condition in resolvePairEnvironments; the Docker layer is untouched because each attempt already gates its internal network and sidecar on its pair's `egress.proxy`. An open pair still records its (inert) allowlist, writes no denials log and reports egress as not instrumented. Container runtimes only: defineExperiment rejects "open" on a host runtime, which is never proxied. Spec: docs/ideation/discovery-suite/spec-phase-1.md
[Medium impact] The PR appears safe to merge; the previous open-arm gateway failure is fixed. SummaryAdds the
|
…lowlists Under --egress-proxy the runner appended every container agent's endpoint- override hosts to its allowlist for the whole run, and pair resolution composed that list for every pair, open or not. The composer refuses IP literals by design, so an open arm whose gateway is an IP (the very thing an open arm exists to reach) stopped the run before any attempt started. Pair resolution now decides "proxied" once per pair and uses it for both the pair's egress.proxy and whether endpoint-override hosts join the allowlist; the runner passes those hosts unconditionally as their own option. An open pair's recorded allowlist is therefore the same with or without the run flag, and a proxied arm behind an IP-literal gateway is still refused loudly. Addresses the Greptile P1 on #41. Spec: docs/ideation/discovery-suite/spec-phase-1.md
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
discovery, for vendor-neutral tasks whose outcome is categorical (which product the agent chose) rather than pass/fail. It is never a headline suite:HEADLINE_SUITESis unchanged, so validation, framework expansion, planning and the leaderboard aggregate all pick it up from the one constant with no store migration or schema bump.discovery. The view builds its tabs from a hard-coded list, so a suite missing there was invisible even though the report carried it. The list and hover titles are now exported, and the duplicated available-suite filter is one pure helper pinned by a newMatrix.test.ts.Runtime.egress: "proxied" | "open". An"open"runtime skips the egress proxy for that experiment's attempts even under--egress-proxy, so an arm that must reach the open internet can share a run with proxied arms instead of needing a second hosted run.resolvePairEnvironments; the Docker layer is untouched because each attempt already gates its internal network and sidecar on its pair'segress.proxy. The choice lands in the pair environment (identity) and can be exempted in a comparison group withtreatmentPolicyFields: ["egress"]. Open pairs still record their (inert) allowlist, write no denials log, and report egress as not instrumented.defineExperimentrejects"open"on a host runtime.