fix(config): log observe recovery write failures#75441
Conversation
|
Codex review: needs maintainer review before merge. What this changes: The PR logs config health-state write failures in config I/O and observe-recovery helpers, adds async and sync regression tests for those failure paths, and adds a changelog entry. Maintainer follow-up before merge: This is an open maintainer-labeled implementation PR with a useful narrow code diff, but the remaining work is maintainer/author handling of PR metadata and exact-head CI rather than a safe autonomous repair lane. Security review: Security review cleared: The diff is limited to local config recovery logging, focused tests, and changelog text, with no dependency, workflow, permission, secret-handling, network, or code-execution changes. Review detailsBest possible solution: Land the narrow config health-state logging and regression coverage after removing the auto-close wording for #63423 and getting exact-head CI green. Keep #63423 open, or split it into narrower follow-ups, for the remaining pairing and infra empty-catch cleanup. Do we have a high-confidence way to reproduce the issue? Yes. A high-confidence reproduction path is to inject Is this the best way to solve the issue? Yes for the source patch direction: logging at the health-state helper boundary with async and sync tests is a narrow maintainable fix. The PR metadata should be changed from closing #63423 to relating to it, and the current CI failure must be cleared before merge. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 7ac23eeeb581. |
67d3ef1 to
184f022
Compare
|
I see that my core work from #70515 (audit extensions and EACCES tests) has been integrated here. Since those commits were already passing and validated in my original PR, I’m concerned that merging them into this broader scope of health-state logging is complicating the CI resolution. I’m happy to help debug, but if the CI failures persist, it might be more efficient for the project to land the focused, verified fix from #70515 first. This would ensure the primary bug is resolved while we iterate on the additional logging layers separately. Let me know the best way to support this. |
|
I’ve just reviewed the CI logs for the checks-node-core failure here. It seems the integration of health-state logging is causing regressions that weren't present in my original PR #70515. As a maintainer, keeping the main branch stable is priority one. Since #70515 was already green and focused, I strongly suggest we land it now to fix the core bug. We can always follow up with @sallyom's additional logging once her CI is stabilized. Reopening #70515 is the fastest way to get back to a clean state. |
|
There is a significant issue with #75441 being labeled as 'superseding' my work. The claim that it "resolves the full issue #63423" is factually incorrect; that issue requires changes in src/pairing/ and src/infra/ which are untouched here. By bundling my stable, verified fixes into a "full resolution" package that doesn't actually exist, this PR has introduced a structural regression. Specifically, it is currently failing CI because it attempts to import internal functions recently privatized in ad3e4db—functions my original fix does not depend on. We are now in a situation where a green, verified baseline is being held hostage by a 'Red' PR that misrepresents its own scope. I have provided a standalone, passing branch (fix/config-restore-baseline) to restore stability immediately. I suggest landing the verified commits independently rather than waiting for a broken and over-scoped packaging to be reworked. |
|
@sallyom A case study in how open-source contributions get lost — told entirely through public, verifiable facts. The bug: What I did: What happened next: The factual problems with these claims: What I did to try to resolve it: The response: The current state: For context, this is not my first contribution to openclaw. PR #74453 (fix for voice-call webhook in-flight limiter) was merged. I'm not posting this to call anyone out. Every commit, CI log, bot analysis, and comment is public. I'm posting it because this pattern — where a working contribution is absorbed into a larger, broken scope, the original is closed by automation, and the contributor loses all agency — is one of the invisible friction points that drives people away from open source. The facts are the facts. #OpenSource #SoftwareEngineering #CodeReview #DevCommunity |
|
holding this as DRAFT PR until #70515 merges, will rebase off of that. |
184f022 to
c49ed32
Compare
Merged via squash. Prepared head SHA: c49ed32 Co-authored-by: sallyom <[email protected]> Reviewed-by: @sallyom
Summary
Fixes #63423
Test plan
pnpm test src/config/io.observe-recovery.test.ts src/config/io.audit.test.tspnpm lint:corepnpm tsgo:corepnpm tsgo:core:testpnpm exec oxfmt --check --threads=1 CHANGELOG.md src/config/io.audit.ts src/config/io.ts src/config/io.observe-recovery.ts src/config/io.observe-recovery.test.tsgit diff --check