Skip to content

PR 04: Persist experiment candidate pools#123

Closed
cm2435 wants to merge 7 commits into
codex/episode-sample-pr03-public-authoring-apifrom
codex/episode-sample-pr04-experiment-persistence
Closed

PR 04: Persist experiment candidate pools#123
cm2435 wants to merge 7 commits into
codex/episode-sample-pr03-public-authoring-apifrom
codex/episode-sample-pr04-experiment-persistence

Conversation

@cm2435

@cm2435 cm2435 commented May 26, 2026

Copy link
Copy Markdown
Contributor

Review Guide

Stack position: PR 04, base codex/episode-sample-pr03-public-authoring-api, head codex/episode-sample-pr04-experiment-persistence.

Implements RFC Docs

  • 03a-persistence-schemas.md: experiments, experiment_environments, experiment_sampler_invocations, and experiment_sample_pool_entries.
  • 03-core-runtime-persistence-fe.md: candidate buffering and retention.
  • 03b-implementation-churn.md: persist_experiment, candidate pool fill, sampler invocation records.
  • 09-implementation-plan/05-pr-04-experiment-persistence-candidate-pool.md.

Why This PR Exists

This turns the public experiment/environment/sample seam into persisted provenance and a candidate buffer. It lets streamed and batch environments contribute candidate samples without immediately launching work.

What Actually Changes

  • Adds experiment SQLModel rows under core/persistence/experiments.
  • Adds migration/metadata wiring for experiment persistence.
  • Adds CoreExperimentPersistencePort.
  • Adds repository and candidate pool logic under core/application/experiments.
  • Persists experiment rows, environment rows, sampler invocations, and candidate pool entries.
  • Stores both sample_ref_json and full sample_json for candidate rows.
  • Reuses pending unselected rows before pulling more samples from environments.
  • Round-robins environments during fill and dedupes on environment/sample key.
  • Adds sample_from_pool_entry(...) to rehydrate candidate JSON through public Task.from_definition(...), while avoiding materialized runtime sample IDs.

Gotchas / Review Risks

  • This PR should not create SampleRecord runtime rows or WAL rows. It is persistence and buffering only.
  • The implemented schema follows the PR 04 plan more than the broader sketch: sampler_name, sampler_config_json, requested_k, and sample_ref_json are the important review fields.
  • Candidate refill can advance streaming environments; retained unselected rows are what prevent dropped candidates.
  • record_sampler_invocation may look uncalled in this PR because the real caller lands in PR 05.
  • At review time, this PR had known red CI from migration ordering (sample_context_events before sample_task_attempts) and architecture-guard expectations that later stack cleanup adjusts.

Cleaned Later

  • PR 05 records sampler invocations from real submit and materializes selected samples.
  • PR 11 removes definition-backed compatibility.
  • PR 12 uses candidate pool entries for trainer rollout batches.

Validation Notes

Key review tests are experiment persistence roundtrip, candidate pool behavior, Alembic/metadata checks, and architecture guards around where persistence code is allowed to live.

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/143ccb0d-6ddb-4894-9c26-6e364fff5d2a-activity-stack.png
swebench-verified/143ccb0d-6ddb-4894-9c26-6e364fff5d2a-sad.png
swebench-verified/143ccb0d-6ddb-4894-9c26-6e364fff5d2a-visual-debugger-full.png
swebench-verified/32a24a7b-6175-4146-b4f0-2215bbe10b30-activity-stack.png
swebench-verified/32a24a7b-6175-4146-b4f0-2215bbe10b30-happy.png
swebench-verified/32a24a7b-6175-4146-b4f0-2215bbe10b30-visual-debugger-full.png
swebench-verified/58811522-5db6-4714-ba87-93004a3464e3-activity-stack.png
swebench-verified/58811522-5db6-4714-ba87-93004a3464e3-happy.png
swebench-verified/58811522-5db6-4714-ba87-93004a3464e3-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/19b30853-4d61-4316-887c-fb0bfec3e261-activity-stack.png
researchrubrics/19b30853-4d61-4316-887c-fb0bfec3e261-happy.png
researchrubrics/19b30853-4d61-4316-887c-fb0bfec3e261-visual-debugger-full.png
researchrubrics/bee9fac7-06f3-404e-b4d1-111ae733c969-activity-stack.png
researchrubrics/bee9fac7-06f3-404e-b4d1-111ae733c969-happy.png
researchrubrics/bee9fac7-06f3-404e-b4d1-111ae733c969-visual-debugger-full.png
researchrubrics/c8d9d3bd-886d-4319-85fa-6c14fa9ff143-activity-stack.png
researchrubrics/c8d9d3bd-886d-4319-85fa-6c14fa9ff143-sad.png
researchrubrics/c8d9d3bd-886d-4319-85fa-6c14fa9ff143-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/1f01eaf9-c8d8-42bc-b251-3f1a5ed2d5d9-activity-stack.png
minif2f/1f01eaf9-c8d8-42bc-b251-3f1a5ed2d5d9-happy.png
minif2f/1f01eaf9-c8d8-42bc-b251-3f1a5ed2d5d9-visual-debugger-full.png
minif2f/3400e3b4-3b40-4a2d-8d61-5759d50c6e4f-activity-stack.png
minif2f/3400e3b4-3b40-4a2d-8d61-5759d50c6e4f-sad.png
minif2f/3400e3b4-3b40-4a2d-8d61-5759d50c6e4f-visual-debugger-full.png
minif2f/388e50bc-cb66-4f3f-9267-1d8a9158f93d-activity-stack.png
minif2f/388e50bc-cb66-4f3f-9267-1d8a9158f93d-happy.png
minif2f/388e50bc-cb66-4f3f-9267-1d8a9158f93d-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/195ded10-2f93-4dd4-9c1c-a851497134ad-activity-stack.png
minif2f/195ded10-2f93-4dd4-9c1c-a851497134ad-happy.png
minif2f/195ded10-2f93-4dd4-9c1c-a851497134ad-visual-debugger-full.png
minif2f/3ba2d6c5-5c21-411e-b2f8-129803f213ef-activity-stack.png
minif2f/3ba2d6c5-5c21-411e-b2f8-129803f213ef-happy.png
minif2f/3ba2d6c5-5c21-411e-b2f8-129803f213ef-visual-debugger-full.png
minif2f/4000517a-83af-4425-8fad-3e9d0089b83f-activity-stack.png
minif2f/4000517a-83af-4425-8fad-3e9d0089b83f-sad.png
minif2f/4000517a-83af-4425-8fad-3e9d0089b83f-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/6894051e-ca3b-4e1d-b8c7-1dec81b36481-activity-stack.png
researchrubrics/6894051e-ca3b-4e1d-b8c7-1dec81b36481-happy.png
researchrubrics/6894051e-ca3b-4e1d-b8c7-1dec81b36481-visual-debugger-full.png
researchrubrics/877a1f8b-20a1-4e58-9186-0f5c69bc9428-activity-stack.png
researchrubrics/877a1f8b-20a1-4e58-9186-0f5c69bc9428-sad.png
researchrubrics/877a1f8b-20a1-4e58-9186-0f5c69bc9428-visual-debugger-full.png
researchrubrics/abefb238-2ba9-4b0a-bad1-03e9c7b296de-activity-stack.png
researchrubrics/abefb238-2ba9-4b0a-bad1-03e9c7b296de-happy.png
researchrubrics/abefb238-2ba9-4b0a-bad1-03e9c7b296de-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/02013b35-97a0-4d12-a5f8-f529b1ce1dbb-activity-stack.png
swebench-verified/02013b35-97a0-4d12-a5f8-f529b1ce1dbb-sad.png
swebench-verified/02013b35-97a0-4d12-a5f8-f529b1ce1dbb-visual-debugger-full.png
swebench-verified/289c5116-c908-4412-aaf3-d8fad029e49f-activity-stack.png
swebench-verified/289c5116-c908-4412-aaf3-d8fad029e49f-happy.png
swebench-verified/289c5116-c908-4412-aaf3-d8fad029e49f-visual-debugger-full.png
swebench-verified/fb316cd7-599d-4d98-85ab-b9c3193cc92c-activity-stack.png
swebench-verified/fb316cd7-599d-4d98-85ab-b9c3193cc92c-happy.png
swebench-verified/fb316cd7-599d-4d98-85ab-b9c3193cc92c-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/a7753dab-16e4-4314-af73-93056d31691e-activity-stack.png
minif2f/a7753dab-16e4-4314-af73-93056d31691e-happy.png
minif2f/a7753dab-16e4-4314-af73-93056d31691e-visual-debugger-full.png
minif2f/bf0a9478-83f6-469e-bebd-2e21e087453a-activity-stack.png
minif2f/bf0a9478-83f6-469e-bebd-2e21e087453a-happy.png
minif2f/bf0a9478-83f6-469e-bebd-2e21e087453a-visual-debugger-full.png
minif2f/e4df53d9-6760-4130-a0c4-51bb99acdae1-activity-stack.png
minif2f/e4df53d9-6760-4130-a0c4-51bb99acdae1-sad.png
minif2f/e4df53d9-6760-4130-a0c4-51bb99acdae1-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/6812e17c-8834-4210-b4aa-da175bc3aeb3-activity-stack.png
swebench-verified/6812e17c-8834-4210-b4aa-da175bc3aeb3-happy.png
swebench-verified/6812e17c-8834-4210-b4aa-da175bc3aeb3-visual-debugger-full.png
swebench-verified/caae8768-43ec-49bd-a29f-167073bdce01-activity-stack.png
swebench-verified/caae8768-43ec-49bd-a29f-167073bdce01-sad.png
swebench-verified/caae8768-43ec-49bd-a29f-167073bdce01-visual-debugger-full.png
swebench-verified/f2709467-4d47-4302-9cd2-2a788f3eae53-activity-stack.png
swebench-verified/f2709467-4d47-4302-9cd2-2a788f3eae53-happy.png
swebench-verified/f2709467-4d47-4302-9cd2-2a788f3eae53-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/11f8a579-de72-4932-96a5-ad663e5cbd9c-activity-stack.png
researchrubrics/11f8a579-de72-4932-96a5-ad663e5cbd9c-happy.png
researchrubrics/11f8a579-de72-4932-96a5-ad663e5cbd9c-visual-debugger-full.png
researchrubrics/2784bad8-1ae1-4ed8-b45d-2ee15c3f946e-activity-stack.png
researchrubrics/2784bad8-1ae1-4ed8-b45d-2ee15c3f946e-sad.png
researchrubrics/2784bad8-1ae1-4ed8-b45d-2ee15c3f946e-visual-debugger-full.png
researchrubrics/6a46325b-a906-4f11-946d-e0605fbd2714-activity-stack.png
researchrubrics/6a46325b-a906-4f11-946d-e0605fbd2714-happy.png
researchrubrics/6a46325b-a906-4f11-946d-e0605fbd2714-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/1df56467-b29f-4ea1-9110-ffe3e51ed951-activity-stack.png
researchrubrics/1df56467-b29f-4ea1-9110-ffe3e51ed951-sad.png
researchrubrics/1df56467-b29f-4ea1-9110-ffe3e51ed951-visual-debugger-full.png
researchrubrics/706f84a5-7e3a-47eb-bf9d-0b94af033094-activity-stack.png
researchrubrics/706f84a5-7e3a-47eb-bf9d-0b94af033094-happy.png
researchrubrics/706f84a5-7e3a-47eb-bf9d-0b94af033094-visual-debugger-full.png
researchrubrics/9575ebf4-d015-4211-8d78-aca13d61f25f-activity-stack.png
researchrubrics/9575ebf4-d015-4211-8d78-aca13d61f25f-happy.png
researchrubrics/9575ebf4-d015-4211-8d78-aca13d61f25f-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/ac0d85fe-6cf7-4bd8-8b67-39a7432e9e6c-activity-stack.png
minif2f/ac0d85fe-6cf7-4bd8-8b67-39a7432e9e6c-happy.png
minif2f/ac0d85fe-6cf7-4bd8-8b67-39a7432e9e6c-visual-debugger-full.png
minif2f/b1026c5a-9021-4d46-9384-c4386a72cfa7-activity-stack.png
minif2f/b1026c5a-9021-4d46-9384-c4386a72cfa7-happy.png
minif2f/b1026c5a-9021-4d46-9384-c4386a72cfa7-visual-debugger-full.png
minif2f/e78950a9-5420-48a8-aad8-c9b9a03ead7d-activity-stack.png
minif2f/e78950a9-5420-48a8-aad8-c9b9a03ead7d-sad.png
minif2f/e78950a9-5420-48a8-aad8-c9b9a03ead7d-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/0592297d-d3f2-4cee-a39d-fe45328bb5fa-activity-stack.png
swebench-verified/0592297d-d3f2-4cee-a39d-fe45328bb5fa-sad.png
swebench-verified/0592297d-d3f2-4cee-a39d-fe45328bb5fa-visual-debugger-full.png
swebench-verified/257d4941-5303-47a0-9480-100a800e6812-activity-stack.png
swebench-verified/257d4941-5303-47a0-9480-100a800e6812-happy.png
swebench-verified/257d4941-5303-47a0-9480-100a800e6812-visual-debugger-full.png
swebench-verified/32874283-0a8c-44a8-b711-3abce6c98dd0-activity-stack.png
swebench-verified/32874283-0a8c-44a8-b711-3abce6c98dd0-happy.png
swebench-verified/32874283-0a8c-44a8-b711-3abce6c98dd0-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/c53837db-8731-42bc-bb33-08269c03039e-activity-stack.png
minif2f/c53837db-8731-42bc-bb33-08269c03039e-happy.png
minif2f/c53837db-8731-42bc-bb33-08269c03039e-visual-debugger-full.png
minif2f/fc66b9dd-7ecc-4c5f-8ba6-b8a0c3b020be-activity-stack.png
minif2f/fc66b9dd-7ecc-4c5f-8ba6-b8a0c3b020be-sad.png
minif2f/fc66b9dd-7ecc-4c5f-8ba6-b8a0c3b020be-visual-debugger-full.png
minif2f/fc94b58e-a666-4fbc-8789-39103e4b2001-activity-stack.png
minif2f/fc94b58e-a666-4fbc-8789-39103e4b2001-happy.png
minif2f/fc94b58e-a666-4fbc-8789-39103e4b2001-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/38ad8a20-40fd-43f7-97a5-41aa0dad755e-activity-stack.png
researchrubrics/38ad8a20-40fd-43f7-97a5-41aa0dad755e-happy.png
researchrubrics/38ad8a20-40fd-43f7-97a5-41aa0dad755e-visual-debugger-full.png
researchrubrics/c86066df-5c33-48f4-822b-e8fa4ba19981-activity-stack.png
researchrubrics/c86066df-5c33-48f4-822b-e8fa4ba19981-sad.png
researchrubrics/c86066df-5c33-48f4-822b-e8fa4ba19981-visual-debugger-full.png
researchrubrics/fca04e10-6b13-478c-9c1c-ce38e38096b4-activity-stack.png
researchrubrics/fca04e10-6b13-478c-9c1c-ce38e38096b4-happy.png
researchrubrics/fca04e10-6b13-478c-9c1c-ce38e38096b4-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/9c0cfa4d-4113-4e4d-a5a0-d8d1ca52e860-activity-stack.png
swebench-verified/9c0cfa4d-4113-4e4d-a5a0-d8d1ca52e860-happy.png
swebench-verified/9c0cfa4d-4113-4e4d-a5a0-d8d1ca52e860-visual-debugger-full.png
swebench-verified/9d5eeb51-c957-40f4-a664-805fecc84fd0-activity-stack.png
swebench-verified/9d5eeb51-c957-40f4-a664-805fecc84fd0-sad.png
swebench-verified/9d5eeb51-c957-40f4-a664-805fecc84fd0-visual-debugger-full.png
swebench-verified/9ee833b2-4140-4c9a-8a7c-75cdb8e765fc-activity-stack.png
swebench-verified/9ee833b2-4140-4c9a-8a7c-75cdb8e765fc-happy.png
swebench-verified/9ee833b2-4140-4c9a-8a7c-75cdb8e765fc-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

Screenshots pushed to screenshots/pr-123.

researchrubrics/85fc3135-802c-415b-ad1d-78c1e2f3275a-activity-stack.png
researchrubrics/85fc3135-802c-415b-ad1d-78c1e2f3275a-sad.png
researchrubrics/85fc3135-802c-415b-ad1d-78c1e2f3275a-visual-debugger-full.png
researchrubrics/990d16fc-3503-415e-af10-3649dfb17df7-activity-stack.png
researchrubrics/990d16fc-3503-415e-af10-3649dfb17df7-happy.png
researchrubrics/990d16fc-3503-415e-af10-3649dfb17df7-visual-debugger-full.png
researchrubrics/d48d7320-e942-4f22-a249-6024e9248133-activity-stack.png
researchrubrics/d48d7320-e942-4f22-a249-6024e9248133-happy.png
researchrubrics/d48d7320-e942-4f22-a249-6024e9248133-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

Screenshots pushed to screenshots/pr-123.

minif2f/33d4db4a-7abd-438d-94ec-67bebea8a3f5-activity-stack.png
minif2f/33d4db4a-7abd-438d-94ec-67bebea8a3f5-sad.png
minif2f/33d4db4a-7abd-438d-94ec-67bebea8a3f5-visual-debugger-full.png
minif2f/bf4807e7-04ba-46f2-8243-7e4f89c325b8-activity-stack.png
minif2f/bf4807e7-04ba-46f2-8243-7e4f89c325b8-happy.png
minif2f/bf4807e7-04ba-46f2-8243-7e4f89c325b8-visual-debugger-full.png
minif2f/d2ed1460-e6de-4d48-b224-541ee51ebb6d-activity-stack.png
minif2f/d2ed1460-e6de-4d48-b224-541ee51ebb6d-happy.png
minif2f/d2ed1460-e6de-4d48-b224-541ee51ebb6d-visual-debugger-full.png

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

Screenshots pushed to screenshots/pr-123.

swebench-verified/113cb6be-efdb-4390-aa4e-29550e6117da-activity-stack.png
swebench-verified/113cb6be-efdb-4390-aa4e-29550e6117da-happy.png
swebench-verified/113cb6be-efdb-4390-aa4e-29550e6117da-visual-debugger-full.png
swebench-verified/627d2239-9a28-47b2-85a3-58f2ecda7af5-activity-stack.png
swebench-verified/627d2239-9a28-47b2-85a3-58f2ecda7af5-happy.png
swebench-verified/627d2239-9a28-47b2-85a3-58f2ecda7af5-visual-debugger-full.png
swebench-verified/9661a92b-a285-4f36-83a2-9caec5d96a89-activity-stack.png
swebench-verified/9661a92b-a285-4f36-83a2-9caec5d96a89-sad.png
swebench-verified/9661a92b-a285-4f36-83a2-9caec5d96a89-visual-debugger-full.png

@cm2435
cm2435 force-pushed the codex/episode-sample-pr04-experiment-persistence branch from 9a884eb to 815a331 Compare May 27, 2026 14:00
@cm2435
cm2435 force-pushed the codex/episode-sample-pr03-public-authoring-api branch from c323335 to c20f49c Compare May 27, 2026 14:00
@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@cm2435
cm2435 force-pushed the codex/episode-sample-pr04-experiment-persistence branch from 815a331 to 98fe37b Compare May 27, 2026 14:44
@github-actions

Copy link
Copy Markdown

E2E smoke — minif2f

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — swebench-verified

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@github-actions

Copy link
Copy Markdown

E2E smoke — researchrubrics

No PNG screenshots were uploaded for this leg. See screenshots/pr-123 for the uploaded placeholder.

@cm2435

cm2435 commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

Closed after landing the cumulative episode/sample stack snapshot through PR132 directly onto dev in merge commit 1c22130. This PR's changes are included in dev.

@cm2435 cm2435 closed this Jun 7, 2026
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