Architecture rework: fix protocol bugs, add origin-side cache, document spec
8-expert review identified 3 bugs in shipped code (Vary header hallucination, fn/function wire key mismatch, max-age=0 defeating PSR) — all fixed with tests updated across Python and TypeScript. Added: manifest version field, affects validation, wire format convention, origin-side cache module (HMAC key derivation, MemoryCache + RedisCache backends, reverse index for scoped invalidation, executor integration). 16 known issues documented in cache/KNOWN_ISSUES.md from expert review — critical items (user_id not passed, purge race condition, no Redis error handling) to be fixed in follow-up. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
6
MIZAN.md
6
MIZAN.md
@@ -183,6 +183,12 @@ The cache identity for a context is: context name + shared elevated params.
|
||||
`user_id=123` is one cache entry. Per-function overrides via `specify` are
|
||||
part of the request but do not change the cache identity.
|
||||
|
||||
### Wire format convention
|
||||
All parameter names on the wire (HTTP headers, JSON keys, query params, manifest fields)
|
||||
use `snake_case`. TypeScript adapters convert to `camelCase` at the boundary for local use
|
||||
but emit `snake_case` in protocol-level artifacts (invalidation headers, manifest params).
|
||||
This is a protocol rule, not a language convention.
|
||||
|
||||
---
|
||||
|
||||
## 4. Mutation Invalidation with `affects`
|
||||
|
||||
Reference in New Issue
Block a user