Repository navigation
Description
Outcome
DurinDoor has model/session caches and prompt-cache affinity, but no semantic response cache module. Introduce exact caching first, then optional semantic lookup.
Evidence and source state
DurinDoor baseline: 93f6de64c69b17d52f790d6f14d09a74cffc7fa5.
- open-sse/handlers/chatCore.js
OmniRoute source snapshot:61e07fb7e0d4e1e76111495d3718c9e4d06d2a62onrelease/v3.8.52. - src/lib/semanticCache.ts
- omniroute #14159: feat(cache): configurable dual-layer semantic caching with Redis/In-Memory vector stores (re-land of #12630) | MERGED | merge
7a921299c5b4c28dcf837f56a1c312b61414a646 - omniroute #14565: fix(cache): fold output contract into semantic-cache Layer-1 hash (#14484) | MERGED | merge
65c584a5eb06dac2624f2764c6c9fc602f51bf6b - omniroute #15156: fix(cache): fold generation params (reasoning.effort/max_tokens) into semantic cache signature | MERGED | merge
2018dcf43f4c26d267044fd001fe7fe97983ca96 - omniroute #15816: fix(backend): semantic cache keys ignore function_call arguments and function_call_output output | OPEN
- omniroute #15909: fix(cache): include tool calls and results in exact signatures | OPEN
Implementation subtasks and acceptance criteria
- Include model/provider, caller scope, tools/args/results, output contract, reasoning, generation params and relevant headers in cache identity.
- Never cache failed/truncated completions or bypass authorization on a hit.
- Support TTL, purge, opt-out, stream replay and truthful cache-hit cost/usage.
Dependencies
No hard predecessor. Complete source review and reproduction/discovery before implementation.
Parent epic: #1065. Roadmap: #1056. Priority P3. Stage 4.
Delivery contract
Planning ticket only. No implementation, runtime test, live-provider call, deployment or stored-data mutation was performed in this audit. Before a port, confirm a merged final upstream diff or a reachable source commit, compare local equivalents/tests, and preserve local auth/routing/quota/database contracts. Open upstream work remains a review candidate. Use port(omniroute): title and target a focused PR at bloodf/durindoor:main. Behavior changes require a focused test plus docs. Run npm run lint and cd tests && npm run test:ci; never add baseline failures. Pure docs/CI edits may skip runtime tests. Regenerate registry/agent indexes with their scripts. Preserve stored credentials and unrelated work.
Activity
bloodf commentedon Nov 2, 2026
Evaluation 2026-11-01: PORT-LATER
bloodf commentedon Nov 3, 2026
Closing as not planned per the owner's decision: large OmniRoute feature ports are out of scope for V5. Reopen this issue if the work is picked up after V5.