fix(review): avoid false persistent data-model findings - #983
Conversation
|
Codex review: found issues before merge. Reviewed August 2, 2026, 5:03 PM ET / 21:03 UTC. ClawSweeper reviewWhat this changesThe branch narrows persistent data-model detection and adds regressions so runtime, telemetry, and test-only vocabulary does not create stored-data merge-risk findings. Merge readiness⛔ Blocked by patch quality or review findings - 6 items remain Keep this member-authored PR open, but do not merge it as-is: its classifier edits target the pre-modularization monolith, while current review reports invoke the unchanged classifier in Priority: P2 Review scores
Verification
How this fits togetherClawSweeper reads pull-request file paths and patches to classify configuration and persistent-data changes before rendering a durable review report and merge-risk labels. The data-model classifier feeds the report renderer, which turns detected surfaces into maintainer-facing review guidance. flowchart LR
A[GitHub pull-file metadata] --> B[Pull-request context]
B --> C[Data-model classifier]
C --> D[Detected persistence surfaces]
D --> E[Review report renderer]
E --> F[Merge-risk guidance]
G[Focused regression fixtures] --> C
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Rebase the PR and apply the approved narrow production-path and explicit-persistence-signal boundary to Do we have a high-confidence way to reproduce the issue? Yes—source-reproducible with high confidence: current main’s report renderer calls the unchanged classifier in Is this the best way to solve the issue? No. The approved narrower boundary is a reasonable solution, but this branch must move it and its regressions to the active classifier module before it can solve the live behavior. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against de31c9959070. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (17 earlier review cycles; latest 8 shown)
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
|
@clawsweeper re-review |
1 similar comment
|
@clawsweeper re-review |
|
Maintainer decision for head 89e4344: accept the narrower persistent-data classifier boundary. Keep the explicit production-path and persistence-signal positives and the added false-positive regressions; ordinary runtime/test vocabulary must not create a persistent-data merge gate. |
|
@clawsweeper re-review |
What Problem This Solves
Fixes an issue where OpenClaw pull requests with runtime repair, telemetry, cache-usage, or test-fixture vocabulary could be reported as persistent data-model changes even when they did not alter stored state. This produced misleading merge risk in reviews such as openclaw/openclaw#115869.
Why This Change Was Made
The detector now keeps persistence matching tied to explicit storage operations, semantic schema language, and production data-model paths while excluding test-only surfaces. It preserves real schema, migration, cache, vector, serialized-state, compound-path, prose, and production snapshot signals.
User Impact
Maintainers get fewer false stored-data warnings without losing review gates for actual persistence or migration changes.
Evidence
pnpm run build && node --test test/pr-surface-policy.test.ts: 28/28 passed.cache versionandembedding dimension, and compound identifiers such ascheckpointFilePath.git diff --check: clean.Real Behavior Proof
Claim: the detector no longer classifies the Code Mode reliability patch as a stored data-model change while retaining concrete persistence findings.
Exercised surface:
dataModelChangeFromPullFilesForTest, using the complete 118-file GitHub pull-file fixture from openclaw/openclaw#115869.Command and environment: built
@openclaw/clawsweeperon Node 26, then executed the compiled detector 50 times over the captured 118-file fixture.Observed result:
{ "change": false, "surfaces": [] }; p50 3.77 ms, p90 3.87 ms, max 7.53 ms. The prior published review reported 12 unrelated data-model surfaces.Artifact or trace: focused test output and benchmark summary are included in the task handoff; CI will rerun repository gates on this exact branch.
Limits: this PR fixes classifier precision only. Complete pull-file materialization for PRs above the compact review limit remains a separate change.
Combined Integration Proof - July 31, 2026
Both exact merge orders were tested from base
16f01b29508632ab3a904087191e39b20968ab68:983 -> 984: clean cherry-picks; 66/66 focused tests passed.984 -> 983: clean cherry-picks; 66/66 focused tests passed.609478921e5b04e2b1844001bfe81ca713f4f099, with 6 files changed, 560 insertions, and 25 deletions.git diff --check 16f01b29508632ab3a904087191e39b20968ab68..HEADpassed in both worktrees.{ "config": { "change": false, "keys": [] }, "data": { "change": false, "surfaces": [] } }.Commands used direct
tscplusnode --test test/context.test.ts test/pr-surface-policy.test.ts test/review-prompt-context.test.ts; no dependency reconciliation occurred in the proof worktrees.Maintainer Decision - July 31, 2026
Approved: retain the narrower production-path and explicit-signal classifier boundary. The demonstrated Code Mode false positive is not useful merge-risk signal, while the positive schema, migration, serialized-state, cache, vector, compound-path, missing-patch, and truncated-input guards preserve the conservative cases that matter. No broader vocabulary fallback is requested.