@@ -95,3 +95,22 @@ BuildConsumer→SubtagAlarmConsumer, or a contract/IPC round-trip test if the en
|
||||
Branch off `main`. #2 is the clean confirmed fix; #1 is diagnose-then-fix. Net48 worker
|
||||
constraints apply (no init-only props/positional records). Do NOT increment `provider_switches`
|
||||
on an initial forced-mode set.
|
||||
|
||||
---
|
||||
|
||||
## Resolution (2026-06-15)
|
||||
|
||||
**#1 was NOT a bug — it was a grpcurl proto-mismatch artifact.** End-to-end instrumentation
|
||||
proved: the gateway sends `forcedMode=Subtag`, the worker's `BuildConsumer` builds the
|
||||
`SubtagAlarmConsumer`, and the worker `QueryActive` + gateway `ApplyReconcile`/`StreamAlarms`
|
||||
all carry `degraded=true` / `source_provider=SUBTAG`. The original "degraded=false" observation
|
||||
came from running grpcurl against the host checkout's proto (branch `feat/lazy-browse-children`),
|
||||
which predates the feature and lacks the `degraded`/`source_provider` fields — grpcurl silently
|
||||
dropped them. With the matching proto, every active alarm shows `degraded=true`. No code change.
|
||||
Tasks 1/3/4 (worker diagnostics + #1 fix) were dropped; the temporary diagnostics were reverted.
|
||||
|
||||
**#2 was a real defect — fixed.** Gateway now seeds `_providerMode`/gauge/feed from the configured
|
||||
forced mode (`fix: gateway reflects configured forced provider mode`). Verified live:
|
||||
`provider_mode=2`, first `ProviderStatus` = `Mode=Subtag, degraded=true,
|
||||
reason="Forced subtag mode (configuration)"`. Auto mode unchanged → windev production (Auto)
|
||||
unaffected; no redeploy required. Gateway tests: 163 passed.
|
||||
|
||||
Reference in New Issue
Block a user