feat: bind Cron provenance to an independent slot - #227
Conversation
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: 730b9644bf
ℹ️ 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".
| pub(crate) const STATIC_PROVIDER_SLOTS: &[StaticProviderSlot] = &[ | ||
| StaticProviderSlot::NetworkInfrastructure, | ||
| StaticProviderSlot::HostScoped, | ||
| StaticProviderSlot::Cron, |
There was a problem hiding this comment.
Raise the provider-state cardinality for Cron
Adding this seventh static slot makes provider_states_for emit seven entries, but RuntimeMap.provider_states and the generated runtime-map schema still require exactly six, while apps/api/src/daemonResponseValidation.ts also checks against a six-slot set. Consequently every normal daemon /daemon/runtime/map response is rejected at the browser-facing API boundary; update the Rust length bound, generated contracts, and API slot set together with this slot.
AGENTS.md reference: AGENTS.md:L30-L35
Useful? React with 👍 / 👎.
| continue; | ||
| } | ||
| edge.evidence_refs = vec![RuntimeEvidenceRef { | ||
| version: 4, |
There was a problem hiding this comment.
Accept version-four Cron evidence in response validation
When HostScoped and Cron have succeeded and at least one cron job exists, this emits evidence version 4, but RuntimeEvidenceRef.version still has a Schemars maximum of 3 and hasCoherentRuntimeEvidence accepts only versions 1–3. Thus, even after correcting the provider-state count, the browser-facing runtime-map request fails validation precisely when the new Cron provenance is present; raise the schema bound, regenerate the contracts, and add the closed V4 API validation rule.
AGENTS.md reference: AGENTS.md:L28-L35
Useful? React with 👍 / 👎.
730b964 to
57d069e
Compare
Summary\n- split Cron collection out of HostScoped into a fixed 15-second, single-flight slot\n- bind closed V4 declared schedule evidence only after Cron owns a revision/timestamp\n- fail closed by omitting scheduled-job RunsOn edges until canonical host_local is retained\n\n## Validation\n- npm run generate:contracts\n- npm run check:contracts\n- cargo test -p dockermap-daemon\n- cargo test -p dockermap-core\n- cargo clippy --workspace --all-targets -- -D warnings\n\nNo API/web/docs edits are included; those need follow-on integration.