mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-11 16:53:49 +00:00
fix(gateway): skip heartbeat wake on deduped notifications
This commit is contained in:
@@ -46,6 +46,14 @@ describe("system events (session routing)", () => {
|
||||
it("requires an explicit session key", () => {
|
||||
expect(() => enqueueSystemEvent("Node: Mac Studio", { sessionKey: " " })).toThrow("sessionKey");
|
||||
});
|
||||
|
||||
it("returns false for consecutive duplicate events", () => {
|
||||
const first = enqueueSystemEvent("Node connected", { sessionKey: "agent:main:main" });
|
||||
const second = enqueueSystemEvent("Node connected", { sessionKey: "agent:main:main" });
|
||||
|
||||
expect(first).toBe(true);
|
||||
expect(second).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("isCronSystemEvent", () => {
|
||||
|
||||
@@ -63,12 +63,12 @@ export function enqueueSystemEvent(text: string, options: SystemEventOptions) {
|
||||
})();
|
||||
const cleaned = text.trim();
|
||||
if (!cleaned) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
const normalizedContextKey = normalizeContextKey(options?.contextKey);
|
||||
entry.lastContextKey = normalizedContextKey;
|
||||
if (entry.lastText === cleaned) {
|
||||
return;
|
||||
return false;
|
||||
} // skip consecutive duplicates
|
||||
entry.lastText = cleaned;
|
||||
entry.queue.push({
|
||||
@@ -79,6 +79,7 @@ export function enqueueSystemEvent(text: string, options: SystemEventOptions) {
|
||||
if (entry.queue.length > MAX_EVENTS) {
|
||||
entry.queue.shift();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function drainSystemEventEntries(sessionKey: string): SystemEvent[] {
|
||||
|
||||
Reference in New Issue
Block a user