Repository navigation
Conversation
Persist file-tail replay state, isolate and bound incident evidence queries, and make agent replacement and subprocess handling recoverable. Reset workspace state on credential changes, exercise served assets in browser tests, and enforce bounded module-size exceptions.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 33c49b14c6
ℹ️ 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".
| file.write_all(&bytes)?; | ||
| file.sync_all()?; | ||
| drop(file); | ||
| fs::rename(&temporary, &self.path)?; |
There was a problem hiding this comment.
Replace existing checkpoints atomically on Windows
On Windows, std::fs::rename fails when the destination already exists. The initial checkpoint save succeeds, but the first new line changes the state and this rename then fails; the forwarder repeatedly restarts without POSTing that line, effectively disabling configured file-tail delivery on Windows. Use a Windows-compatible atomic replacement primitive while preserving the durable checkpoint semantics.
AGENTS.md reference: AGENTS.md:L25-L25
Useful? React with 👍 / 👎.
File-tail restarts could lose undelivered history, incident queries could combine hosts or hide incomplete evidence, and deployment failures could leave an agent without a recoverable predecessor. The browser workspace could also retain stale evidence across credential changes or show synthetic graph data. This change preserves delivery and evidence identity, bounds expensive work, and makes replacement and workspace resets explicit.
Changes
Verification
Reviewer considerations
Previously saved incident IDs that included transcript anchors must be refreshed through listing. Incomplete windows explicitly report provisional scores/signals. Permanent file-tail rejections retain pending state for operator recovery.
Browser tests use real served assets with intercepted API fixtures and cached Chrome 153 (revision 1243), rather than Playwright's absent expected revision 1228. Native Windows, appliance/live Docker replacement, and end-to-end collector delivery were not qualified; replacement success verifies version and running state, not an ingest receipt. No deployment was performed.