@@ -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
|
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`
|
constraints apply (no init-only props/positional records). Do NOT increment `provider_switches`
|
||||||
on an initial forced-mode set.
|
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