Conversation
- Introduced `coordination_config.py` for reading configuration values from TOML files. - Added `coordination_state.py` to maintain and update the state of gap selections and responses. - Created `gap_slice.py` to generate current gap slices based on defined criteria. - Implemented shell scripts for pulling and pushing model runner responses and gap slices. - Developed `reconcile-gap-ledger.sh` to integrate responses and update the gap ledger. - Added `run-gap-loop.sh` to automate the gap processing loop. - Enhanced ingestion monitoring in `live.py` to track telemetry events and errors. - Updated server and store modules to support ingestion status reporting.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e19d3f3864
ℹ️ 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 previous is not None: | ||
| delay = max((current - previous).total_seconds() / self._speed, 0.0) | ||
| if delay > 0: | ||
| time.sleep(delay) | ||
| if delay > 0: |
There was a problem hiding this comment.
Initialize delay before the first replay event
When previous is None on the first loop iteration, delay is never assigned before if delay > 0. In the default fixture workflow (lab_llm.main enables --replay-fixtures by default), the replay thread now dies with UnboundLocalError on its very first event, so the standard local dashboard startup path comes up without ingesting any fixture data.
Useful? React with 👍 / 👎.
| ## Verification run | ||
| - |
There was a problem hiding this comment.
Add a parseable verified session id to the response template
The new coordination loop only recognizes verified runs through the exact Verified session id: block parsed in coordination_state.py/audit-dashboard.sh, and check-loop-stop aborts with missing-verified-session-id whenever addressed gaps are reported without one. Because the generated response.md template leaves ## Verification run as a free-form bullet, a model-runner response that follows this template but phrases the session id differently will not be parsed, causing reconciliation to stop even after successful upstream fixes.
Useful? React with 👍 / 👎.
| source.addEventListener("connected", () => { | ||
| setError(null); | ||
| setIngestion((current) => (current ? { ...current, connected: true } : current)); |
There was a problem hiding this comment.
Keep ingestion connectivity separate from SSE connectivity
connected in /api/status comes from IngestionMonitor and is supposed to describe whether the telemetry source itself is available, but this handler forces it to true as soon as the browser opens the SSE stream. In JSONL mode with a missing or rotated file, the backend correctly reports connected: false; the frontend then overwrites that to true on the SSE handshake and shows jsonl · connected even though no telemetry source is actually being tailed.
Useful? React with 👍 / 👎.
coordination_config.pyfor reading configuration values from TOML files.coordination_state.pyto maintain and update the state of gap selections and responses.gap_slice.pyto generate current gap slices based on defined criteria.reconcile-gap-ledger.shto integrate responses and update the gap ledger.run-gap-loop.shto automate the gap processing loop.live.pyto track telemetry events and errors.