Root cause:
The V1R4C5 baseline promotion commit (a32c76a) was made on a feature branch
that was never merged to main. As a result, both baseline/current.json and
versions/V1R4C5.json on main still reflect V1R4C3 state. Runtime
getBaseline() continues to return V1R4C3 with commit f5435e3.
Changes:
- baseline/current.json: update current_baseline -> V1R4C5, git ->
a32c76a3c1 (the actual promotion commit),
add constraints from the original promotion
- versions/V1R4C5.json: create the missing version metadata file with status
active-baseline, referencing V1R4C5 tag (object ac9bdac...)
Why this does not affect V1R4C5 release content:
- V1R4C5 release documents (docs/releases/*.md) are untouched
- V1R4C5 tag is unchanged and not moved
- No V1R4C6 functionality introduced
- No memory search or vector index enabled
Rollback method:
git revert <this commit hash>
# Or restore baseline/current.json from V1R4C3 content:
# git checkout main~1 baseline/current.json
# And delete versions/V1R4C5.json:
# git rm versions/V1R4C5.json
# Then commit the revert
Constraints honored:
- No direct writes to main (using PR)
- No force push
- V1R4C5 tag not moved/rebuild
- No V1R4C6 content
- Memory search remains disabled
- Integrate ActionMonitor into ChatGPT GitOps API for failure tracking
- Add ErrorClassifier with permission, git, runtime, system, secret violation error types
- Add FailureRouter to route errors to correct recovery agents (openclaw/hermes/windows_codex_app)
- Add RecoveryController orchestrating full pipeline: capture→classify→route→plan→execute→validate→record
- Update error_classifier to include ClientResponseError, rate limit, and secret_violation patterns
- All 8 integration tests passing (ActionMonitor, ErrorClassifier, FailureRouter, RecoveryController, API 500 scenario)
- Push baseline to V1R2C2 with tag v1r2c2-baseline