Skip to content

fix(memory): do not prune session index from a failed directory scan#91091

Draft
amknight wants to merge 3 commits into
mainfrom
ak/memory-sync-prune-guard
Draft

fix(memory): do not prune session index from a failed directory scan#91091
amknight wants to merge 3 commits into
mainfrom
ak/memory-sync-prune-guard

Conversation

@amknight

@amknight amknight commented Jun 7, 2026

Copy link
Copy Markdown
Member

Summary

A full memory sync treats source enumerations as the source of truth for destructive maintenance: stale-row pruning of the session and memory-file indexes (files + chunks + vectors + FTS), full reindex rebuilds, and exported-session reconciliation. These enumerations swallowed filesystem errors and returned an empty listing, so a single transient scan failure (NFS EIO/ESTALE, permission blip) was indistinguishable from an empty directory and wiped the corresponding index — followed by an expensive full re-read/re-embed after the next successful scan. The failed-scan prune test in this PR fails without the guard (the indexed row gets deleted), confirming the hazard is live.

Sessions

  • packages/memory-host-sdk: add scanSessionFilesForAgent(agentId): { ok, files }. ok: true means the directory was actually read or authoritatively does not exist (see below); ok: false means the scan failed. listSessionFilesForAgent delegates to it and is unchanged for its non-destructive callers.
  • resolveMemorySessionSyncPlan takes a required scanOk and returns pruneStaleRows, true only for a full enumeration that authoritatively read the directory.
  • syncSessionFiles gates the stale-row prune on pruneStaleRows. A failed scan skips the prune (with a warning) and leaves the index intact for the next successful enumeration.
  • A missing sessions dir is authoritative-empty only when the parent agent dir exists: fresh agents (the dir appears on first transcript write) prune orphans without log noise, while an unreachable state tree (e.g. unmounted volume) counts as a failed scan.
  • MemorySourceSyncPlan carries scanOk; runSync no longer clears dirty/sessionsDirty/sessionsDirtyFiles after a failed scan, so the next eligible sync retries instead of reporting a clean sync that indexed nothing.
  • The memory-file sibling gets the same guard: new scanMemoryFiles(): { ok, files } (exported via engine-storage and the plugin SDK barrel) with explicit root readdir probes — fs-safe walkDirectory swallows readdir errors even at the walk root, so an lstat-only check would still report ok on the exact failure class this PR targets. syncMemoryFiles skips its stale-row prune on a failed enumeration.
  • Full reindexes abort (assertReindexScanOk) instead of swapping in an empty index built from a failed scan; the safe path restores the original DB on throw, the unsafe path skips writeMeta so the next sync retries the rebuild.
  • exportSessions skips its reconcile-delete pass on a failed listing so one blip cannot delete the exported session-markdown corpus.
  • Renamed the local CLI diagnostics in cli.runtime.ts (scanMemoryFilesdiagnoseMemoryFiles, scanSessionFilesdiagnoseSessionFiles) to avoid colliding with the new SDK export surfaced through the same barrel.

Why skip on failed, not on empty

Deletions/resets archive to usage-counted .deleted./.reset. artifacts that still appear in the listing, and disk-budget can physically remove the last archive — so an authoritatively empty directory with a non-empty index is legitimately reachable. In that case we must still prune, or deleted-session content would linger in search forever. Skipping only on a failed scan prevents the wipe without introducing persistent orphan rows.

Known residual gaps (follow-ups)

  • Subtree readdir failures below the probed roots remain invisible (@openclaw/fs-safe walkDirectory reports no errors); blast radius is the affected subtree, not the whole index. A clean fix needs an additive fs-safe API (e.g. WalkDirectoryResult.failedDirCount), which would also remove the root readdir probes.
  • resolveCanonicalRootMemoryFile swallows workspace-root readdir errors; bounded to the single root memory file.

Verification

Rebased on origin/main (e3a6da0f51). The rebase dropped the previously included manager-sync-ops.startup-catchup.test.ts assertion fix — it landed on main independently and the commit was skipped as already applied.

  • pnpm test extensions/memory-core905/905 passing (66 files), including the new manager-sync-ops.prune-guard.test.ts, manager-sync-ops.targeted-delta.test.ts, manager-session-sync-state.test.ts matrix, and main's atomic-reindex suites added since the original base.
  • pnpm test packages/memory-host-sdk/src/host/session-files.test.ts packages/memory-host-sdk/src/host/internal.test.ts31/31 passing (scan ok / authoritatively-empty / absent-dir-with-parent / unreachable-tree / failed readdir-after-lstat / failed extra path; listSessionFilesForAgent and listMemoryFiles unchanged on failure).
  • pnpm tsgo:core, pnpm tsgo:extensions, pnpm tsgo:test:packages, pnpm tsgo:test:extensions — clean.
  • Reindex abort re-verified against main's new swap machinery (865fdab075, "preserve live SQLite index during swaps"): runMemoryAtomicReindex publishes via swapMemoryIndexFiles only after build() resolves; assertReindexScanOk throws inside build() before any dirty-flag clearing, so the temp DB is closed and removed, the original DB handle and FTS/vector state are restored, and dirty state is retained for retry.
  • Hazard proof: running this PR's failed-scan prune test without the guard deletes the indexed session row (expected ['sessions/main/thread.jsonl'] to deeply equal []).

Notes

  • perf(memory): coalesce + cache session-file listings to cut NFS READDIR load #91081 (session-listing cache perf PR, still open) is complementary: it reduces READDIR load further; this PR makes the destructive consumers stop trusting failed listings. Integration note for whichever lands second: the listing cache must carry the { ok, files } scan result and must never serve a failed scan as authoritative, or it reintroduces the wipe hazard this PR closes.

@openclaw-barnacle openclaw-barnacle Bot added extensions: memory-core Extension: memory-core size: M maintainer Maintainer-authored PR labels Jun 7, 2026
@clawsweeper

clawsweeper Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed June 28, 2026, 1:47 AM ET / 05:47 UTC.

Summary
The PR adds authoritative memory/session scan-result helpers, gates destructive memory/session pruning and QMD export reconciliation on successful scans, bumps @openclaw/fs-safe, and adds regression coverage plus SDK baseline updates.

PR surface: Source +225, Tests +693, Config -1, Generated 0, Other +6. Total +923 across 22 files.

Reproducibility: yes. Source inspection shows current main can turn failed or incomplete memory/session enumerations into empty listings that destructive prune/export paths treat as authoritative; I did not execute tests because this review is read-only.

Review metrics: 2 noteworthy metrics.

  • Plugin SDK Surface: 2 functions, 2 result types added. The PR exports scan-authority helpers through plugin SDK-facing memory entrypoints, so maintainers should review the new public contract.
  • Dependency Lock Surface: 1 direct dependency bumped; 1 root snapshot mismatch. The runtime fix relies on @openclaw/fs-safe 0.4.0 failedDirs, so lockfile consistency matters before merge.

Stored data model
Persistent data-model change detected: migration/backfill/repair: extensions/memory-core/src/memory/manager-sync-ops.prune-guard.test.ts, migration/backfill/repair: extensions/memory-core/src/memory/manager-sync-ops.targeted-delta.test.ts, persistent cache schema: extensions/memory-core/src/memory/manager-sync-ops.prune-guard.test.ts, persistent cache schema: extensions/memory-core/src/memory/manager-sync-ops.targeted-delta.test.ts, serialized state: extensions/memory-core/src/memory/qmd-manager.test.ts, serialized state: packages/memory-host-sdk/src/host/session-files.test.ts, and 22 more. Confirm migration or upgrade compatibility proof before merge.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🦞 diamond lobster
Patch quality: 🧂 unranked krab
Result: blocked by patch quality or review findings.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P2] Fix missing whole-tree session ENOENT handling so unavailable state roots are non-authoritative.
  • Regenerate pnpm-lock.yaml on current main so the root snapshot resolves @openclaw/fs-safe 0.4.0 without unrelated dependency drift.
  • Resolve the PR conflict and rerun exact-head memory-core, memory-host SDK, plugin SDK baseline, and typecheck gates.

Risk before merge

  • [P1] The PR exposes scanMemoryFiles and scanSessionFilesForAgent through plugin SDK-facing entrypoints, so maintainers should either accept that new public contract or keep the scan authority internal.
  • [P1] The branch intentionally changes retry and cleanup semantics by retaining memory/session index rows, dirty state, and exported markdown after failed scans until a later authoritative enumeration.
  • [P1] GitHub reports the PR as draft and conflicting/dirty, so the exact merge result still needs validation after the correctness fixes land.
  • [P1] The lockfile root snapshot is inconsistent with the dependency bump and can break frozen installs or run code without the @openclaw/fs-safe 0.4.0 contract it relies on.

Maintainer options:

  1. Repair Scan Classification And Lockfile (recommended)
    Classify a missing whole state/agent tree as non-authoritative when it may be an unavailable state root, regenerate pnpm-lock.yaml so the root snapshot resolves @openclaw/fs-safe 0.4.0, then rerun exact-head checks.
  2. Decide The SDK Contract
    Maintainers should choose whether the new scan-result helpers are public plugin SDK surface or should stay internal to memory-core before this branch lands.
  3. Pause Until Merge Head Is Clean
    Because GitHub reports this draft branch as conflicting, maintainers can leave it paused until the actual merge result and dependency graph can be reviewed.

Next step before merge

  • [P2] Manual maintainer review is needed because the branch is protected/draft/conflicting and requires SDK contract judgment after the concrete P1 fixes are made.

Security
Needs attention: The TypeScript changes do not introduce a direct credential or permission issue, but the dependency/lockfile mismatch is a concrete supply-chain and install-integrity concern before merge.

Review findings

  • [P1] Treat a missing state tree as a failed session scan — packages/memory-host-sdk/src/host/session-files.ts:403-404
  • [P1] Regenerate the lockfile for the fs-safe bump — package.json:1967
Review details

Best possible solution:

Keep the scan-authority guard, repair missing state-tree classification, regenerate the lockfile on current main, resolve conflicts, and make an explicit maintainer decision on the SDK surface before merge.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection shows current main can turn failed or incomplete memory/session enumerations into empty listings that destructive prune/export paths treat as authoritative; I did not execute tests because this review is read-only.

Is this the best way to solve the issue?

No, not in its current form. Carrying scan authority to destructive consumers is the right fix shape, but the missing whole-tree ENOENT case and inconsistent lockfile need repair before this is the best merge candidate.

Full review comments:

  • [P1] Treat a missing state tree as a failed session scan — packages/memory-host-sdk/src/host/session-files.ts:403-404
    This returns ok: true for every ENOENT from the sessions directory. If an existing user's state root or agent tree disappears because a volume is unmounted or unavailable, a full sync can still treat that as authoritative-empty and prune session-derived state. Please only treat the missing sessions dir as authoritative when the parent agent/state path is readable; otherwise return ok: false.
    Confidence: 0.86
  • [P1] Regenerate the lockfile for the fs-safe bump — package.json:1967
    The package bump requires @openclaw/fs-safe 0.4.0 for walkDirectory().failedDirs, but PR-head pnpm-lock.yaml still resolves the root snapshot to @openclaw/fs-safe 0.3.0 and changes unrelated proxyline/undici resolution. A frozen install can reject this or run without the dependency contract the code relies on, so please regenerate the lockfile on current main and remove the unrelated resolution drift.
    Confidence: 0.9

Overall correctness: patch is incorrect
Overall confidence: 0.88

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 119dc4bd821e.

Label changes

Label justifications:

  • P2: This is a normal-priority memory-core bugfix with limited blast radius to memory/session indexing and export behavior.
  • merge-risk: 🚨 compatibility: The PR adds plugin SDK-facing scan-result exports and changes dependency resolution, which can affect plugin/API and upgrade behavior.
  • merge-risk: 🚨 session-state: The diff changes when session index rows, dirty flags, and exported session markdown are retained or pruned after scan failures.
  • merge-risk: 🚨 automation: The lockfile root snapshot is inconsistent with the dependency bump and can break install/check automation or run against the wrong fs-safe contract.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦞 diamond lobster and patch quality is 🧂 unranked krab.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Not applicable: The external-contributor proof gate does not apply because this is a MEMBER maintainer draft PR; the PR body still provides supplemental targeted test and hazard-proof claims for maintainer review.
Evidence reviewed

PR surface:

Source +225, Tests +693, Config -1, Generated 0, Other +6. Total +923 across 22 files.

View PR surface stats
Area Files Added Removed Net
Source 9 270 45 +225
Tests 9 700 7 +693
Docs 0 0 0 0
Config 2 1 2 -1
Generated 1 2 2 0
Other 1 30 24 +6
Total 22 1003 80 +923

Security concerns:

  • [medium] Lockfile resolves the wrong dependency graph — package.json:1967
    The PR bumps @openclaw/fs-safe in package.json, but the root lockfile snapshot still references 0.3.0 and changes unrelated proxyline/undici resolution; that can undermine the dependency contract and frozen-install integrity.
    Confidence: 0.88

What I checked:

  • Repository policy read: Root and scoped AGENTS guides were read fully; extension and plugin SDK policy apply because the PR changes bundled memory-core code and SDK-facing exports. (AGENTS.md:1, 119dc4bd821e)
  • Live PR state: GitHub reports this PR open, draft, maintainer-labeled, head 75a1da0, base 119dc4b, and mergeStateStatus DIRTY/mergeable CONFLICTING. (75a1da0a15c1)
  • Current main failure mode: Current main lists memory files with listMemoryFiles, swallows listing/stat failures, then deletes stale memory rows based on the resulting list, so an incomplete scan can drive destructive pruning. (packages/memory-host-sdk/src/host/internal.ts:150, 119dc4bd821e)
  • PR scan guard shape: PR head passes scan.ok into session sync planning and makes pruneStaleRows true only for a full authoritative scan, which is the right core fix shape for destructive consumers. (extensions/memory-core/src/memory/manager-sync-ops.ts:2189, 75a1da0a15c1)
  • Blocking session ENOENT defect: PR head still returns { ok: true, files: [] } for every ENOENT from the sessions directory, and its test asserts an absent whole agent/session tree is authoritative-empty. (packages/memory-host-sdk/src/host/session-files.ts:403, 75a1da0a15c1)
  • Lockfile mismatch: PR head bumps package.json to @openclaw/fs-safe 0.4.0, but the root lockfile snapshot still resolves @openclaw/fs-safe as 0.3.0 and drifts proxyline/undici resolution. (package.json:1967, 75a1da0a15c1)

Likely related people:

  • amknight: Authored this PR and the related NFS enumeration/session-delta/archive-retention work around the same memory/session scan hazard. (role: current investigation and adjacent fix owner; confidence: high; commits: 2a0685d58e68, 75a1da0a15c1, 8682d0701b27; files: extensions/memory-core/src/memory/manager-sync-ops.ts, packages/memory-host-sdk/src/host/session-files.ts, packages/memory-host-sdk/src/host/internal.ts)
  • jalehman: Recent commits changed transcript corpus and session identity surfaces that this PR now uses as the canonical session listing path. (role: recent area contributor; confidence: medium; commits: c24d266b2d09, 475252453b4b, d3781cc4b8ec; files: extensions/memory-core/src/memory/manager-sync-ops.ts, packages/memory-host-sdk/src/host/session-files.ts, src/plugin-sdk/memory-core-host-engine-storage.ts)
  • vincentkoc: Recent main history shows repeated memory index, SQLite migration, and reindex safety work in the same manager path. (role: recent memory index maintainer; confidence: medium; commits: 6e6bd5633f1c, 7485dd649262, 88bc08c124a5; files: extensions/memory-core/src/memory/manager-sync-ops.ts, packages/memory-host-sdk/src/host/internal.ts)
  • steipete: History shows memory-host package extraction, fs-safe extraction, and plugin SDK facade work that define the boundary this PR expands. (role: historical owner-boundary contributor; confidence: medium; commits: 538605ff44d2, bd6c7969ea9c, 6a387afc533a; files: packages/memory-host-sdk/src/host/internal.ts, src/plugin-sdk/memory-core-host-engine-storage.ts, packages/memory-host-sdk/src/host/session-files.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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 keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. labels Jun 7, 2026
@amknight amknight self-assigned this Jun 10, 2026
@amknight
amknight force-pushed the ak/memory-sync-prune-guard branch from 92684c4 to 31c7719 Compare June 10, 2026 01:05
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. label Jun 10, 2026
@amknight
amknight marked this pull request as ready for review June 10, 2026 01:16
@amknight

Copy link
Copy Markdown
Member Author

/clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@amknight

Copy link
Copy Markdown
Member Author

/clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

@amknight

Copy link
Copy Markdown
Member Author

/clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 11, 2026
@clawsweeper clawsweeper Bot added rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. labels Jun 12, 2026
@amknight

Copy link
Copy Markdown
Member Author

This is awaiting the new version of fs-safe being released

@amknight
amknight force-pushed the ak/memory-sync-prune-guard branch from 39d8647 to aa94a36 Compare June 16, 2026 09:44
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation size: XL and removed size: L labels Jun 16, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 16, 2026
@amknight
amknight marked this pull request as draft June 16, 2026 10:30
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 19, 2026
amknight added 3 commits June 27, 2026 09:55
…91091)

Rebased onto main's corpus-based session enumeration. A failed sessions or
memory scan (transient NFS EIO/ESTALE) no longer masquerades as an empty
listing that wipes the session/memory index or the exported QMD corpus.

- scanSessionFilesForAgent() returns {ok, files}; resolveMemorySessionSyncPlan
  gates the stale-row prune on scanOk (pruneStaleRows). Indexing stays
  corpus-driven (archive artifacts + dreaming/cron classification); only the
  ok-flag gates destructive prunes.
- runInPlaceReindex aborts via assertReindexScanOk before publishing an empty
  rebuild; exportSessions throws before reconciling QMD deletes.
0.4.0 adds `failedDirs` to WalkDirectoryResult so walkDirectory surfaces
readdir failures instead of swallowing them (consumed by the memory scan in
the next commit). 0.4.0 is well past the 48h minimumReleaseAge window, so it
no longer needs the release-age exclude.
Replace the manual fs.readdir root-probes in scanMemoryFiles with
walkDirectory's failedDirs (fs-safe 0.4.0). collectMemoryFilesFromDir now
reports whether the walk was complete; a failed readdir at any depth (not
just the probed root) flags the scan not-ok so destructive prunes skip an
incomplete listing rather than wiping unseen files.
@amknight
amknight force-pushed the ak/memory-sync-prune-guard branch from aa94a36 to 75a1da0 Compare June 28, 2026 05:32
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to documentation extensions: memory-core Extension: memory-core maintainer Maintainer-authored PR merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XL status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant