feat(KB-136): add shared badge pub/sub for multi-instance deployments

- Add BadgePubSub interface with Redis and in-memory adapters

- Implement cross-instance badge snapshot delivery via Redis pub/sub

- Add message validation, echo loop prevention, and structured caching

- Support graceful fallback to in-memory mode when Redis unavailable

- Update ServerOptions for dependency injection and add documentation
This commit is contained in:
gsxdsm
2026-03-30 12:52:07 -07:00
parent af11364cd9
commit 4927346f57
14 changed files with 1341 additions and 23 deletions

View File

@@ -60,10 +60,9 @@ describe("CLI package.json publishing config", () => {
expect(pkg.private).not.toBe(true);
});
it("does not have @kb/* workspace packages in dependencies", () => {
it("declares ioredis as a runtime dependency for badge pub/sub", () => {
const deps = Object.keys(pkg.dependencies || {});
const kbDeps = deps.filter((d) => d.startsWith("@kb/"));
expect(kbDeps).toEqual([]);
expect(deps).toContain("ioredis");
});
});