Description
Source inspection confirms app graph dbSystemName defaults every unknown engine to postgresql, while resolveDBIdentities accepts any resolved database fixture. A DocumentDB db_instance can therefore emit false PostgreSQL span identity. The reference migration omits that optional identity join as a temporary limitation; real causal database bindings are separate and must remain intact. Correct unsupported-engine behavior fail-closed, or add only sourced engine mappings, without inventing vendor identifiers.
Acceptance Criteria
- #1 Public blueprint loading or build rejects an unsupported db_instance engine rather than emitting PostgreSQL identity; red then green regression crosses the actual app boundary
- #2 Supported PostgreSQL, MySQL and Redis identities and causal database bindings remain unchanged; any added mapping is sourced in the canonical signal contract
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/
Implementation Notes
Admit the independently recorded generic fail-closed bug only: reject unsupported db_instance engines rather than emitting false PostgreSQL identity. No new DocumentDB mapping, call-occurrence API, additive timing, reference migration or owner-park reopening is authorized. Existing supported mappings and actual build boundary must be preserved.
Delivered in published main 616627ce, preserving upstream dependency-lock drift without rewriting history. Exact merged tree a4f86981 passed full composed check run 20261026T014931Z-synthkit-a42d9ae6, including app plain 40.081s and race 411.411s. Complete four-file native review and CodeRabbit passed; full local privacy scan clean. Exact merged selected PostgreSQL/MySQL CLI proof resolves 1925/1925 names with unchanged metric-name/label inventory and all 49 distinct sourced database names and exact keys. No schema/config/skill field changed, so generation condition is not applicable; actual gen-check passed in the full gate. New-head hosted CI is being watched separately; no live/backend or reference-migration admission.