2.3.0
Additive release — one new feature, one proto-level deprecation, no breaking changes.
Notable
feat(grpc): log per-request [REQ] line in auth interceptor (#105) — every unary gRPC call now emits [REQ] transport=grpc method=<full_method> peer=<addr> key_id=<id|none> on both auth-success and auth-failure paths. Evidence slice for #92 — the loopback-vs-external peer split is what gates #94/#95.
chore(milpacs): deprecate GetUserViaKeycloakId rpc + keycloak_id fields (#104) — proto-level deprecated: true markers on the keycloak lookup RPC and the Profile.keycloak_id / LiteProfile.keycloak_id fields. No behavior change; new code should not depend on them. Removal will be a separate breaking release.
Dependency bumps
docker/build-push-action7.1.0 → 7.2.0 (#102)docker/login-action4 → 4.1.0 (#101)grpc1.81.0 → 1.81.1 +docker/build-push-action7 → 7.1.0 bundle (#89)
Docs
docs: seed CONTEXT.md, ADRs, and agent docs(#103) — domain-language file at repo root, ADRs 0001–0004 covering the split-process layout, intra-process plaintext dial, redis response cache, and scope-based bearer auth.
Full Changelog: 2.2.1...2.3.0