Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 21s
Smoke Test / smoke (pull_request) Failing after 19s
Validate Config / YAML Lint (pull_request) Failing after 14s
Validate Config / JSON Validate (pull_request) Successful in 20s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 59s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Cron Syntax Check (pull_request) Successful in 13s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 10s
Validate Config / Playbook Schema Validation (pull_request) Successful in 16s
Validate Config / Shell Script Lint (pull_request) Failing after 46s
Architecture Lint / Lint Repository (pull_request) Failing after 9s
PR Checklist / pr-checklist (pull_request) Successful in 5m30s
Add a verification note and regression test proving the pipeline daily reset is already wired on main via reset_pipeline_state.py, nightly scheduler integration, and midnight cron configuration.
43 lines
1.8 KiB
Markdown
43 lines
1.8 KiB
Markdown
# Issue #650 Verification
|
|
|
|
Status: already implemented on `main`
|
|
|
|
Issue: `[Pipeline] pipeline_state.json needs daily reset`
|
|
|
|
Summary:
|
|
The repo already contains the full daily-reset implementation for `pipeline_state.json`.
|
|
Yesterday's complete/failed states are reset by age, stuck running states older than 6 hours are cleared, the nightly scheduler calls the reset helper before each cycle, and a dedicated midnight cron entry runs the reset script against `~/.hermes/pipeline_state.json`.
|
|
|
|
Evidence on `main`:
|
|
- `scripts/reset_pipeline_state.py`
|
|
- removes stale `complete` and `failed` entries older than 24 hours
|
|
- removes stale `running` entries older than 6 hours
|
|
- supports direct execution against `~/.hermes/pipeline_state.json`
|
|
- `scripts/test_reset_pipeline_state.py`
|
|
- covers fresh vs stale complete entries
|
|
- covers stale failed entries
|
|
- covers stuck running entries
|
|
- passes on a fresh clone
|
|
- `scripts/nightly-pipeline-scheduler.sh`
|
|
- calls `reset_pipeline_state.py` before pipeline scheduling
|
|
- treats stale completion state as not reusable forever
|
|
- `cron/pipeline-daily-reset.yml`
|
|
- schedules a midnight daily reset using `python3 scripts/reset_pipeline_state.py --state-file ~/.hermes/pipeline_state.json`
|
|
|
|
Verification commands run:
|
|
- `python3 scripts/test_reset_pipeline_state.py`
|
|
- `bash -n scripts/nightly-pipeline-scheduler.sh`
|
|
- `python3 -m py_compile scripts/reset_pipeline_state.py`
|
|
|
|
Result:
|
|
- reset script tests passed
|
|
- scheduler shell syntax check passed
|
|
- reset script compiled cleanly
|
|
|
|
Additional trail:
|
|
- issue comment references closed PR #676 describing timestamp-based staleness logic
|
|
- current `main` already contains the reset helper, scheduler integration, tests, and cron wiring
|
|
|
|
Recommendation:
|
|
Close issue #650 as already implemented on `main`.
|