T-009: Add GitHub Actions build badges#4
Conversation
d87cbc3 to
541c51c
Compare
|
Closing: superseded by merged work on main. The changes from this PR have been incorporated through other merged PRs. Thank you for the contribution! 🙏 |
There was a problem hiding this comment.
Devin Review found 2 new potential issues.
🐛 2 issues in files not directly in the diff
🐛 ContextVersion restore fails silently because to_dict() includes semver key not accepted by dataclass constructor (flux_baton.py:1074-1075)
When snapshot() writes CONTEXT_VERSION.json via ctx_version.to_dict() (flux_baton.py:1247), the output dict includes a "semver" key (from to_dict() at flux_baton.py:631). When restore() reads this file and calls ContextVersion(**cv_data) (flux_baton.py:1075), the semver key is passed as a keyword argument, but ContextVersion is a dataclass with no semver field — it's a @property (flux_baton.py:585-587). This raises TypeError: __init__() got an unexpected keyword argument 'semver', which is silently swallowed by the bare except: pass. As a result, context version data is never actually restored across generations, completely breaking the context versioning feature for persisted state.
⚠️ GENERATION commit marker is no longer written last — HANDOFF_METRICS.json is written after it (flux_baton.py:1290-1305)
The baton's atomicity contract (documented in the module docstring at flux_baton.py:16 as "Atomic writes: GENERATION file is commit marker, written last") requires GENERATION to be the final write so that a reader never sees a new generation before all state is committed. In v3, HANDOFF_METRICS.json (Write 13, flux_baton.py:1303) is written after GENERATION (Write 12, flux_baton.py:1291). If the process crashes between these two writes, a restoring agent will see a new generation number but with stale/missing metrics data. The metrics write and the record_handoff() call should be moved before the GENERATION write to preserve the atomicity invariant.
View 6 additional findings in Devin Review.
T-009: Add GitHub Actions build badges
Adds CI/build status badges to README.md for fleet visibility.
Badges added:
🤖 Auto-generated by Super Z (FLUX Fleet Greenhorn)