fix(gateway): prevent unnecessary restarts from meta.lastTouchedAt changes
Add `{ prefix: "meta", kind: "none" }` to BASE_RELOAD_RULES_TAIL to
prevent gateway restarts when only metadata fields like `lastTouchedAt`
change.
Previously, when a tool modified the config (e.g., `clawdbot agents add`),
the `meta.lastTouchedAt` field would update, triggering a full gateway
restart via SIGUSR1. This aborted any in-flight LLM requests, causing
users to never receive the agent's response.
Now changes to `meta.*` fields are treated as no-ops, similar to other
metadata-like fields (identity, wizard, etc.).
Fixes #3811
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
da71eaebd2
commit
a24f0f4955
@ -108,6 +108,12 @@ describe("buildGatewayReloadPlan", () => {
|
|||||||
expect(plan.noopPaths).toContain("gateway.remote.url");
|
expect(plan.noopPaths).toContain("gateway.remote.url");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("treats meta.lastTouchedAt as no-op", () => {
|
||||||
|
const plan = buildGatewayReloadPlan(["meta.lastTouchedAt"]);
|
||||||
|
expect(plan.restartGateway).toBe(false);
|
||||||
|
expect(plan.noopPaths).toContain("meta.lastTouchedAt");
|
||||||
|
});
|
||||||
|
|
||||||
it("defaults unknown paths to restart", () => {
|
it("defaults unknown paths to restart", () => {
|
||||||
const plan = buildGatewayReloadPlan(["unknownField"]);
|
const plan = buildGatewayReloadPlan(["unknownField"]);
|
||||||
expect(plan.restartGateway).toBe(true);
|
expect(plan.restartGateway).toBe(true);
|
||||||
|
|||||||
@ -77,6 +77,7 @@ const BASE_RELOAD_RULES_TAIL: ReloadRule[] = [
|
|||||||
{ prefix: "session", kind: "none" },
|
{ prefix: "session", kind: "none" },
|
||||||
{ prefix: "talk", kind: "none" },
|
{ prefix: "talk", kind: "none" },
|
||||||
{ prefix: "skills", kind: "none" },
|
{ prefix: "skills", kind: "none" },
|
||||||
|
{ prefix: "meta", kind: "none" },
|
||||||
{ prefix: "plugins", kind: "restart" },
|
{ prefix: "plugins", kind: "restart" },
|
||||||
{ prefix: "ui", kind: "none" },
|
{ prefix: "ui", kind: "none" },
|
||||||
{ prefix: "gateway", kind: "restart" },
|
{ prefix: "gateway", kind: "restart" },
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user