Repository navigation
simplify(automation): admit concrete schedules before due decisions - #4551
Conversation
|
4d634db to
45fedda
Compare
45fedda to
0374d13
Compare
|
Independent premerge verdict: PASS+NOTES. Reviewed exact head Fresh isolated Bazel evidence, each through
Source review found immutable private admitted state, pinned runtime ownership, one canonical resolver, and direct admitted due decisions. Host receipt/backend denial remains intact. Disabled-backend fixtures clear Notes: cross-tick job reloads and runner-boundary readmission remain; this is not full #4428 completion. The generated schema delta is only the resolver documentation name and matches current Rust source; no generation or contract-check claim. The macOS daemon test link emitted a non-failing compact-unwind size warning. No full journeys or hosted required checks were rerun or claimed. No edits, commits, CI restarts or merge actions. Head/base were rechecked and the verification checkout stayed clean. |
Remove the obsolete age override from current CLI and configuration writes. Project historical settings at effective and scheduled admission boundaries while keeping stored revisions byte-identical. Reuse canonical retirement and rollback projection so preview and application agree and cannot revive the retired field. Cover absent, null and numeric historical values, admitted schedules, rejected writes, registry convergence and rollback replay.
Read-only project opens can pin historical settings before registry convergence. Remove retired lock-timeout fields from the runtime copy so dashboard configuration reads expose the current settings representation. Keep the original snapshot and its identity unchanged. Preserve raw schedule text, including invalid schedules, for inspection while admission retains its separate typed failure. Cover mixed historical absent/null/numeric fields, unchanged snapshot bytes, and valid and invalid schedule behavior.
869ba51 to
db9ab48
Compare
HostAdmissionTestRuntimeV1::profile opens a runtime rather than reading one back, so the test did not compile. Build the ProfileRoot from the test's profile directory like the neighbouring tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clippy's field_reassign_with_default rejects assigning timeout_secs after Default::default(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # plugin/chatgpt-extension/embedded/server.mjs
Why
Refs #4428. Parent link is #4542 on
simplify/automation-task-lease.Fixed tasks and jobs interpreted the same schedule string and interval during validation and each due decision. Resolve that pair at admission so decisions cannot reconstruct conflicting timing states.
What changed
Arc.ConfiguredInterval, the old parser/validator APIs, repeated decision parsing and invalid-to-manual fallbacks.stale_lock_secscontrol from current CLI flags, patches, registry writes, and the generated SDK. Effective reads and schedule admission project historical settings into the current representation.Scope
Blast Radius
Scheduled fixed tasks, host receipts, user jobs and scheduler status use the admitted timing representation. Retry, activity, denial, cancellation and retained settlement behavior stay covered. Three retry fixtures now use a valid one-second cooldown and wait for that boundary instead of bypassing settings with zero.
Prior schedule-admission verification
Lock-timeout retirement verification
Read-only configuration projection follow-up
Read-only project opens can publish a historical configuration pin before registry convergence. The runtime projection now removes retired
stale_lock_secsfields from its own automation-settings copy, so raw dashboard configuration reads expose the current settings. The pinned historical snapshot and its digest remain unchanged; invalid schedule text remains inspectable and separate admission still returns its typed error.A regression constructs real runtime pins from serialized historical snapshots with absent, null, and numeric retired fields, checks unchanged snapshot bytes and digest validation, and exercises valid schedule precedence plus invalid schedule admission. Pinned formatting, diff checks, and normal commit hooks passed. The new native regression has not run locally because of the disk and memory constraints; hosted CI is required.