fix(memory-wiki): keep claim freshness tied to evidence timestamps - #97465
vincentkoc merged 2 commits into
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 28, 2026, 6:12 AM ET / 10:12 UTC. Summary PR surface: Source +13, Tests +100. Total +113 across 2 files. Reproducibility: yes. Current main passes page Review metrics: 1 noteworthy metric.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the claim-health-local fix after maintainers accept the stricter malformed-timestamp semantics; keep page freshness as the fallback only for truly untimestamped claims. Do we have a high-confidence way to reproduce the issue? Yes. Current main passes page Is this the best way to solve the issue? Yes. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 8d168c836af3. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +13, Tests +100. Total +113 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
…penclaw#97465) * fix(memory-wiki): keep claim freshness tied to evidence * fix(memory-wiki): preserve page freshness fallback only for untimestamped claims --------- Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
…penclaw#97465) * fix(memory-wiki): keep claim freshness tied to evidence * fix(memory-wiki): preserve page freshness fallback only for untimestamped claims --------- Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
…penclaw#97465) * fix(memory-wiki): keep claim freshness tied to evidence * fix(memory-wiki): preserve page freshness fallback only for untimestamped claims --------- Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com> (cherry picked from commit 630034e)
…penclaw#97465) * fix(memory-wiki): keep claim freshness tied to evidence * fix(memory-wiki): preserve page freshness fallback only for untimestamped claims --------- Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com> (cherry picked from commit 630034e)
What Problem This Solves
Memory-wiki claim freshness should prefer explicit claim/evidence timestamps. The old path could fall back to page-level freshness even when a claim carried malformed timestamp data, which can hide bad claim metadata as a page-level stale/fresh result.
This replaces the earlier attempt in #97420, which was closed only by the author queue limit after review pressure, not because the patch was invalid.
Why This Change Was Made
The fix keeps page
updatedAtas a fallback only for claims with no explicit claim/evidence timestamp fields. If the claim provides timestamp metadata but it is malformed, the result staysunknowninstead of silently using page freshness.User Impact
Memory-wiki health reports better distinguish untimestamped claims from claims with broken timestamp metadata. That makes freshness signals more trustworthy without changing the healthy explicit-timestamp path.
Evidence
Autoreview result: clean; no accepted/actionable findings. The reviewer confirmed explicit claim/evidence timestamps remain authoritative, malformed explicit timestamps stay unknown, and page freshness is only a fallback when timestamps are absent.
After-fix Real Behavior Proof
Ran a real memory-wiki compile against a temporary vault on this PR branch. The vault had two claims on a page with fresh page-level
updatedAt:claim.malformed-explicit: claim/evidence timestamp fields present but malformed.claim.untimestamped: no claim/evidence timestamp fields, so it should still use page freshness.Command shape:
node --import tsx ... compileMemoryWikiVault(config)withrender.createDashboards=true, then readreports/claim-health.mdand.openclaw-wiki/cache/claims.jsonlfrom the compiled vault.Redacted terminal output:
{ "rootDir": "<redacted-temp-vault>", "compiledClaimCount": 2, "reportPath": "reports/claim-health.md", "reportClaimHealthLines": [ "- Stale or unknown claims: 1", "- [Claim Freshness Proof](../entities/claims.md): `claim.malformed-explicit`: Malformed explicit timestamp should not inherit page freshness. (status supported, 1 evidence, missing updatedAt)" ] }This proves the generated claim-health report path now surfaces the malformed explicit timestamp as unknown while the untimestamped claim is not listed as stale/unknown and continues to inherit the fresh page timestamp.