Skip to content

fix(memory-search): default periodic sync fallback#90019

Open
sahibzada-allahyar wants to merge 4 commits into
openclaw:mainfrom
sahibzada-allahyar:tui-40088-memory-watcher-fallback
Open

fix(memory-search): default periodic sync fallback#90019
sahibzada-allahyar wants to merge 4 commits into
openclaw:mainfrom
sahibzada-allahyar:tui-40088-memory-watcher-fallback

Conversation

@sahibzada-allahyar

@sahibzada-allahyar sahibzada-allahyar commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Default memorySearch.sync.intervalMinutes to 30 when neither agent overrides nor defaults configure it.
  • Preserve explicit intervalMinutes values from agent overrides or defaults, including intervalMinutes: 0 as the opt-out.
  • Make the interval sync fallback mark memory dirty before the interval sync runs, so the timer path rescans memory files even when watcher events were missed and dirty was previously false.
  • Document the 30-minute default and 0 opt-out in the config type/schema help surface, public memory config reference, and static config label surface.
  • Add regression coverage for both the resolved default and the manager-level interval timer path.

Fixes #40088.

Why

Issue #40088 reports that the chokidar memory watcher can silently stop delivering events, leaving memory_search backed by a stale SQLite index. The original PR only armed a periodic interval by default. Review showed that was incomplete because the interval callback called sync({ reason: "interval" }) while dirty could still be false, making the timer a no-op for memory files after a silent watcher failure.

This update makes the interval tick force the lightweight dirty/hash rescan path before calling sync, while preserving the explicit intervalMinutes: 0 opt-out.

Exact setup

Repository:

git clone https://github.com/openclaw/openclaw
git checkout origin/main
git checkout -b tui-40088-memory-watcher-fallback

Fastino Code was launched through the normal coding harness path against this worktree with DeepSeek V4 Flash and XML tool calling enabled.

Real behavior proof

Behavior or issue addressed: memory watcher events can go silent, leaving memory_search backed by stale indexed content. This patch gives the normal interval sync path a real rescan opportunity by marking memory dirty before the interval sync runs, while keeping intervalMinutes: 0 as the opt-out.

Real environment tested: local OpenClaw checkout on macOS Darwin 25.5.0 arm64, Node v26.0.0, pnpm 11.2.2, branch tui-40088-memory-watcher-fallback.

Exact steps or command run after this patch:

$ node scripts/test-projects.mjs src/agents/memory-search.test.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts
$ pnpm exec oxfmt --check --threads=1 extensions/memory-core/src/memory/manager-sync-ops.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
$ git diff --check
$ rg "as any" extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts extensions/memory-core/src/memory/manager-sync-ops.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
$ pnpm exec oxfmt --check --threads=1 docs/reference/memory-config.md src/config/schema.labels.ts
$ git diff --check

Evidence after fix:

$ node scripts/test-projects.mjs src/agents/memory-search.test.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts
[test] starting test/vitest/vitest.unit-fast.config.ts
Test Files  1 passed (1)
Tests  33 passed (33)
[test] starting test/vitest/vitest.extension-memory.config.ts
Test Files  1 passed (1)
Tests  3 passed (3)
[test] passed 2 Vitest shards in 4.75s

$ pnpm exec oxfmt --check --threads=1 extensions/memory-core/src/memory/manager-sync-ops.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
Checking formatting...
All matched files use the correct format.
Finished in 7ms on 6 files using 1 threads.

$ git diff --check
# no output

$ rg "as any" extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts extensions/memory-core/src/memory/manager-sync-ops.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
# no output

$ pnpm exec oxfmt --check --threads=1 docs/reference/memory-config.md src/config/schema.labels.ts
Checking formatting...
All matched files use the correct format.
Finished in 106ms on 2 files using 1 threads.

$ git diff --check
# no output

Additional runtime proof for the interval fallback path:

$ node --import tsx /private/tmp/openclaw-memory-interval-proof.ts
setup: {
  workspaceDir: '/private/tmp/openclaw-memory-interval-proof/workspace',
  storePath: '/private/tmp/openclaw-memory-interval-proof/state/main.sqlite',
  intervalMinutes: 1
}
before search before-token: [
  {
    path: 'memory/2026-06-04.md',
    snippet: '# Daily memory\nbefore-interval-token only\n'
  }
]
file updated without manual sync/search trigger
immediate search before-token: [
  {
    path: 'memory/2026-06-04.md',
    snippet: '# Daily memory\nbefore-interval-token only\n'
  }
]
after interval search before-token: [
  {
    path: 'memory/2026-06-04.md',
    snippet: '# Daily memory\nafter-interval-token only\n'
  }
]
after interval search after-token: [
  {
    path: 'memory/2026-06-04.md',
    snippet: '# Daily memory\nafter-interval-token only\n'
  }
]

That proof used an isolated temp OpenClaw workspace/state dir with memorySearch.provider: "none", sync.watch: false, sync.onSessionStart: false, sync.onSearch: false, and sync.intervalMinutes: 1. The script used the real memory manager runtime from this branch. It first indexed before-interval-token, then rewrote the memory file to after-interval-token without manual sync or search-triggered sync. The immediate search still returned the old indexed snippet; after the interval tick, the same manager returned the updated snippet, showing the interval fallback rescanned memory even without watcher/search triggers.

Observed result after fix: the runtime interval test exercises the timer path and observes the interval callback setting dirty=true before calling sync. The config regression path observes unconfigured agents resolving memorySearch.sync.intervalMinutes to 30, and the format/diff checks observe a clean changed-file surface.

What was not tested: a multi-hour gateway session with an actual chokidar outage; the covered runtime path is the interval fallback that runs after such an outage leaves memory clean/stale. The live-style proof uses a short configured interval so it can complete in one run.

Validation

$ node scripts/test-projects.mjs src/agents/memory-search.test.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts
[test] starting test/vitest/vitest.unit-fast.config.ts
Test Files  1 passed (1)
Tests  33 passed (33)
[test] starting test/vitest/vitest.extension-memory.config.ts
Test Files  1 passed (1)
Tests  3 passed (3)
[test] passed 2 Vitest shards in 4.75s
$ pnpm exec oxfmt --check --threads=1 extensions/memory-core/src/memory/manager-sync-ops.ts extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
Checking formatting...
All matched files use the correct format.
Finished in 7ms on 6 files using 1 threads.
$ git diff --check
# no output
$ rg "as any" extensions/memory-core/src/memory/manager-sync-ops.interval.test.ts src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts extensions/memory-core/src/memory/manager-sync-ops.ts src/agents/memory-search.ts src/agents/memory-search.test.ts
# no output

Review-comment docs/help repair:

$ pnpm exec oxfmt --check --threads=1 docs/reference/memory-config.md src/config/schema.labels.ts
Checking formatting...

All matched files use the correct format.
Finished in 106ms on 2 files using 1 threads.

$ git diff --check
# no output

Platform tested

OS: Darwin 25.5.0 arm64
Node: v26.0.0
pnpm: 11.2.2

Out-of-scope follow-ups

  • Multi-hour live gateway/chokidar outage reproduction.
  • A live gateway memory_search session showing stale content refreshing after an actual watcher outage.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: XS triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 3, 2026
@clawsweeper

clawsweeper Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed June 30, 2026, 5:41 AM ET / 09:41 UTC.

Summary
The PR defaults memory search interval sync to 30 minutes, forces interval ticks through the dirty rescan path, documents the default and opt-out, and adds focused regression coverage.

PR surface: Source +21, Tests +58, Docs +12. Total +91 across 8 files.

Reproducibility: yes. at source level: current main and v2026.6.10 still default intervalMinutes to 0, and current main's interval path does not force a dirty rescan before syncing. I did not reproduce the multi-hour chokidar outage itself in this read-only review.

Review metrics: 1 noteworthy metric.

  • Config/default surface: 1 default changed, 0 new keys. Unconfigured memorySearch.sync.intervalMinutes changes from disabled to 30 minutes, so existing-user upgrade behavior is the main merge decision.

Stored data model
Persistent data-model change detected: migration/backfill/repair: src/config/zod-schema.agent-runtime.ts, vector/embedding metadata: src/agents/memory-search.test.ts, vector/embedding metadata: src/agents/memory-search.ts. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #40088
Summary: This PR is the open candidate fix for the watcher-silence stale-index issue; older interval fallback attempts are closed unmerged, and adjacent stale-memory PRs cover different freshness paths.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🦐 gold shrimp
Proof: 🦞 diamond lobster
Patch quality: 🦐 gold shrimp
Result: needs maintainer review before merge.

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

Rank-up moves:

  • Scope interval dirty marking so managers without the memory source do not retain a no-op dirty flag.
  • Get maintainer acceptance for changing the unconfigured interval default from disabled to 30 minutes.

Risk before merge

  • [P1] Existing unconfigured users would move from disabled periodic memory sync to a 30-minute background filesystem/hash rescan and possible indexing or provider work.
  • [P1] The interval callback marks every manager dirty; sessions-only managers can retain dirty=true because memory sync is skipped when the memory source is disabled, causing later searches to await repeated no-op syncs.
  • [P1] The PR is currently mergeableState dirty, so maintainers will need a refresh after the code/product blockers are resolved.

Maintainer options:

  1. Repair dirty scoping and confirm the default (recommended)
    Guard the interval dirty mark to memory-source managers and get maintainer acceptance for the 30-minute default before merge.
  2. Keep periodic sync opt-in
    If maintainers do not want the upgrade behavior, preserve the 0 default and document intervalMinutes: 30 as the workaround or doctor recommendation.
  3. Accept default-on after repair
    Maintainers may accept the added background work as a deliberate compatibility tradeoff once the sessions-only dirty bug is fixed.

Next step before merge

  • [P2] Human review is needed because one blocker is a product/upgrade decision; the narrow code defect should be repaired on this PR after that direction is settled.

Security
Cleared: No supply-chain, workflow, dependency, secret-handling, permission, or downloaded-artifact change was found in the PR diff.

Review findings

  • [P1] Keep default-on interval sync behind maintainer approval — src/agents/memory-search.ts:448
  • [P2] Scope interval dirty marking to memory sources — extensions/memory-core/src/memory/manager-sync-ops.ts:1459
Review details

Best possible solution:

Scope the interval dirty mark to memory-source managers, then merge only if maintainers explicitly accept the 30-minute default-on fallback; otherwise keep periodic sync opt-in and document the workaround.

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

Yes at source level: current main and v2026.6.10 still default intervalMinutes to 0, and current main's interval path does not force a dirty rescan before syncing. I did not reproduce the multi-hour chokidar outage itself in this read-only review.

Is this the best way to solve the issue?

No as submitted: the resolver and interval path are the plausible narrow surfaces, but the default-on fallback needs maintainer upgrade acceptance and the dirty assignment must be scoped to managers that actually include memory files.

Full review comments:

  • [P1] Keep default-on interval sync behind maintainer approval — src/agents/memory-search.ts:448
    Changing the fallback from 0 to 30 makes existing unconfigured setups start periodic background rescans and possible indexing/provider work. This is a config/default and fallback behavior change; preserve the opt-in default or land it only after explicit maintainer acceptance and upgrade proof.
    Confidence: 0.85
  • [P2] Scope interval dirty marking to memory sources — extensions/memory-core/src/memory/manager-sync-ops.ts:1459
    The new interval callback sets dirty=true for every manager. With sources: ["sessions"], runSync never consumes or clears the memory dirty flag because shouldSyncMemory is false, while search still awaits sync whenever dirty is true, so later searches can pay repeated no-op syncs.
    Confidence: 0.88

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 738b2be4b49b.

Label changes

Label justifications:

  • P1: The linked bug can leave memory_search backed by stale indexed content in long-running agent workflows.
  • merge-risk: 🚨 compatibility: The PR changes existing unconfigured users from no periodic memory sync to automatic background rescans and possible indexing/provider work.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (terminal): The PR body includes after-fix terminal output from a real memory manager setup showing stale results before the interval tick and updated results afterward.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes after-fix terminal output from a real memory manager setup showing stale results before the interval tick and updated results afterward.
Evidence reviewed

PR surface:

Source +21, Tests +58, Docs +12. Total +91 across 8 files.

View PR surface stats
Area Files Added Removed Net
Source 5 26 5 +21
Tests 2 59 1 +58
Docs 1 12 0 +12
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 8 97 6 +91

What I checked:

  • Repository policy read: Root policy requires full AGENTS.md review and treats config/default additions and fallback behavior as compatibility-sensitive merge risk. (AGENTS.md:29, 738b2be4b49b)
  • Scoped policy read: Scoped extension and docs guides were read for the bundled memory plugin and public memory config reference surfaces. (extensions/AGENTS.md:1, 738b2be4b49b)
  • Live PR state: Live GitHub shows this PR is open, contributor-authored, proof-supplied, and currently labeled waiting on author with compatibility merge risk. (b3ef3304630a)
  • Linked issue: The linked issue is open and describes stale memory_search results after watcher events stop, with intervalMinutes currently disabled as the missing fallback.
  • PR changes default: The PR diff changes the resolver fallback for unconfigured memorySearch.sync.intervalMinutes from 0 to 30. (src/agents/memory-search.ts:448, b3ef3304630a)
  • PR forces dirty on interval: The PR diff sets this.dirty = true before interval sync, which is the right stale-watcher mechanism but currently not source-scoped. (extensions/memory-core/src/memory/manager-sync-ops.ts:1459, b3ef3304630a)

Likely related people:

  • vincentkoc: Recent GitHub path history shows multiple memory index, SQLite, and stale reindex safety commits touching the memory manager and config surfaces. (role: recent area contributor; confidence: high; commits: f324f7e2813a, d64db0fc3d1c, 25e68e9fa709; files: extensions/memory-core/src/memory/manager-sync-ops.ts, src/agents/memory-search.ts, src/config/zod-schema.agent-runtime.ts)
  • steipete: History shows sync interval timer clamping, memory search config/docs work, and broader memory/provider maintenance around this surface. (role: adjacent owner; confidence: medium; commits: 5c38c0c76d27, 37fbc8cd8f94, 43190f5248b5; files: extensions/memory-core/src/memory/manager-sync-ops.ts, src/agents/memory-search.ts, src/config/zod-schema.agent-runtime.ts)
  • jalehman: Recent commits refactored transcript corpus and session identity mapping in the memory manager path that is relevant to the sessions-only dirty-state blocker. (role: recent session-memory contributor; confidence: medium; commits: c24d266b2d09, 475252453b4b, d3781cc4b8ec; files: extensions/memory-core/src/memory/manager-sync-ops.ts)
  • RomneyDa: Recent history includes gateway memory watch warning/default work and the current shallow blame for the resolver and interval regions after a broad rewrite. (role: recent config/watch contributor; confidence: medium; commits: 2405bbcbafa6, 0904f3e5539d, 2ec670898018; files: src/agents/memory-search.ts, extensions/memory-core/src/memory/manager-sync-ops.ts, docs/reference/memory-config.md)
  • lukeboyett: Authored the merged watcher FD fan-out fix in the same memory watcher subsystem, which is adjacent to this fallback behavior. (role: adjacent watcher fix author; confidence: medium; commits: 9e43d0327fc8; files: extensions/memory-core/src/memory/manager-sync-ops.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.
Review history (1 earlier review cycle)
  • reviewed 2026-06-21T13:31:14.021Z sha b3ef330 :: found issues before merge. :: [P1] Keep default-on sync behind maintainer approval | [P2] Scope interval dirty marking to memory sources

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jun 3, 2026
@openclaw-barnacle openclaw-barnacle Bot added extensions: memory-core Extension: memory-core size: S and removed size: XS labels Jun 3, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 3, 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:

@openclaw-barnacle openclaw-barnacle Bot added the docs Improvements or additions to documentation label Jun 4, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 4, 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.

@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 4, 2026
@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 4, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

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

Re-review progress:

@sahibzada-allahyar
sahibzada-allahyar force-pushed the tui-40088-memory-watcher-fallback branch from 4eb772c to adfe202 Compare June 4, 2026 01:44
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 4, 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: 🦪 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: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 4, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. 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: 🦪 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. labels Jun 4, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 4, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

Addressed the intervalMinutes help-text review note. The docs, config type JSDoc, and runtime schema description now clarify that setting 0 disables interval-based sync while other configured triggers such as onSessionStart, onSearch, and watch/file-change sync can still reindex memory.\n\nVerification:\n\ntext\n$ pnpm exec oxfmt --check --threads=1 docs/reference/memory-config.md src/config/types.tools.ts src/config/zod-schema.agent-runtime.ts\nChecking formatting...\nAll matched files use the correct format.\nFinished in 121ms on 3 files using 1 threads.\n\n$ git diff --check\n# no output\n\n\n@clawsweeper re-review

@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 4, 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 the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 4, 2026
@sahibzada-allahyar
sahibzada-allahyar force-pushed the tui-40088-memory-watcher-fallback branch from 2baa64b to b3ef330 Compare June 4, 2026 14:17
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 4, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 4, 2026
@clawsweeper

clawsweeper Bot commented Jun 4, 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:

@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

Checked the red CI locally at the current PR branch. The failing architecture/tooling signals appear stale now:\n\ntext\npnpm check:architecture\n# passed\n\nnode scripts/test-projects.mjs test/scripts/lint-suppressions.test.ts\n# 1 test file passed, 3 tests passed\n\n\nI do not have permission to rerun the failed GitHub Actions jobs directly (GitHub requires admin rights to rerun). Could a maintainer rerun the failed CI jobs when convenient?

@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. 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 19, 2026
@sahibzada-allahyar

Copy link
Copy Markdown
Contributor Author

Update: rebasing this branch onto current main yields an empty diff — the memory-search zero-hit / periodic-sync fallback behavior this targeted is already present in main after the memory-core sync rework. This PR appears superseded and can be closed unless a specific gap remains. The stale build-artifacts/topology CI failures were from the pre-rebase state and no longer apply.

@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling docs Improvements or additions to documentation extensions: memory-core Extension: memory-core merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. size: S stale Marked as stale due to inactivity 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.

memory_search: chokidar file watcher silently stops delivering events, index goes stale

2 participants