mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 14:40:43 +00:00
fix(memory): make qmd gateway startup lazy
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
6a67688ac174403c996027d90fa16eabb9aeff6a8af890b17d4628910c3b440f config-baseline.json
|
||||
8bc9fda7c1096472beaa416a61043ce51d691d4dcad9ed3e0be46e68bb70b0ce config-baseline.core.json
|
||||
96edba9fd67fa057f6b6c43d54a168db25d0e27ddd4e91a7e2918c8657f0f212 config-baseline.json
|
||||
510ed7af2e3731c8a307dbc10181328f82764a4e8dd9e9dddc6118db6f882ff7 config-baseline.core.json
|
||||
9f5fad66a49fa618d64a963470aa69fed9fe4b4639cc4321f9ec04bfb2f8aa50 config-baseline.channel.json
|
||||
0dd6583fafae6c9134e46c4cf9bddee9822d6436436dcb1a6dcba6d012962e51 config-baseline.plugin.json
|
||||
|
||||
@@ -51,17 +51,21 @@ present.
|
||||
## How the sidecar works
|
||||
|
||||
- OpenClaw creates collections from your workspace memory files and any
|
||||
configured `memory.qmd.paths`, then runs `qmd update` on boot and
|
||||
periodically (default every 5 minutes). These refreshes run through QMD
|
||||
subprocesses, not an in-process filesystem crawl. Semantic modes also run
|
||||
`qmd embed`.
|
||||
configured `memory.qmd.paths`, then runs `qmd update` when the QMD manager is
|
||||
opened and periodically afterward (default every 5 minutes). These refreshes
|
||||
run through QMD subprocesses, not an in-process filesystem crawl. Semantic
|
||||
modes also run `qmd embed`.
|
||||
- The default workspace collection tracks `MEMORY.md` plus the `memory/`
|
||||
tree. Lowercase `memory.md` is not indexed as a root memory file.
|
||||
- QMD's own scanner ignores hidden paths and common dependency/build
|
||||
directories such as `.git`, `.cache`, `node_modules`, `vendor`, `dist`, and
|
||||
`build`. Boot refreshes use a one-shot QMD subprocess path instead of
|
||||
creating the full long-lived in-process watcher during gateway startup.
|
||||
- Boot refresh runs in the background so chat startup is not blocked.
|
||||
`build`. Gateway startup does not initialize QMD by default, so cold boot
|
||||
avoids importing the memory runtime or creating the long-lived watcher before
|
||||
memory is first used.
|
||||
- If you want a gateway-start refresh anyway, set
|
||||
`memory.qmd.update.startup` to `idle` or `immediate`. The opt-in startup
|
||||
refresh uses a one-shot QMD subprocess path instead of creating the full
|
||||
long-lived in-process watcher.
|
||||
- Searches use the configured `searchMode` (default: `search`; also supports
|
||||
`vsearch` and `query`). `search` is BM25-only, so OpenClaw skips semantic
|
||||
vector readiness probes and embedding maintenance in that mode. If a mode
|
||||
|
||||
@@ -497,8 +497,10 @@ QMD model overrides stay on the QMD side, not OpenClaw config. If you need to ov
|
||||
| ------------------------- | --------- | ------- | ------------------------------------- |
|
||||
| `update.interval` | `string` | `5m` | Refresh interval |
|
||||
| `update.debounceMs` | `number` | `15000` | Debounce file changes |
|
||||
| `update.onBoot` | `boolean` | `true` | Refresh on startup in a QMD subprocess |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | Block startup until refresh completes |
|
||||
| `update.onBoot` | `boolean` | `true` | Refresh when the long-lived QMD manager opens; also gates opt-in startup refresh |
|
||||
| `update.startup` | `string` | `off` | Optional gateway-start refresh: `off`, `idle`, or `immediate` |
|
||||
| `update.startupDelayMs` | `number` | `120000` | Delay before `startup: "idle"` refresh runs |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | Block manager opening until its initial refresh completes |
|
||||
| `update.embedInterval` | `string` | -- | Separate embed cadence |
|
||||
| `update.commandTimeoutMs` | `number` | -- | Timeout for QMD commands |
|
||||
| `update.updateTimeoutMs` | `number` | -- | Timeout for QMD update operations |
|
||||
|
||||
Reference in New Issue
Block a user