Symptom
Shared unproven half behind three PARTIALs (connector-declarative-boot, connector-degraded-recovery, connector-spec-path-no-escape): a connector edit on disk fires a metadata reload that does not reconcile the change — no reconcile, no teardown, no re-materialize. Not scored a fail, because the default os dev restarts the serve child on recompile so the user-visible loop still applies the change; the production trigger (a Studio package publish) was not drivable in the run. Flagged for triage.
Root cause
reconcileDeclaredConnectors (packages/services/service-automation/src/plugin.ts, ~line 1059) reads ql.registry.listItems('connector'), but the artifact reload re-ingests object definitions and not connector items — so on a connector-only edit the registry the reconcile reads is stale and the reconcile is a no-op. The connector materialize/teardown never re-runs off the reload event.
Stale-premise check: present on origin/main (reconcileDeclaredConnectors still reads listItems('connector'), and the reload path does not re-ingest connectors).
Reproduction
os dev a stack with a declared connector, but drive a metadata reload without a serve-child restart (or reload via a Studio package publish).
- Edit the connector definition on disk and trigger the reload.
Expected: the connector is torn down and re-materialized from the new definition. Actual: the reload re-ingests objects only; the connector reconcile is a no-op and the old connector stays live.
Source
Extracted from the QA run #7690 (framework 92f26f7, console 09987b680).
Symptom
Shared unproven half behind three PARTIALs (
connector-declarative-boot,connector-degraded-recovery,connector-spec-path-no-escape): a connector edit on disk fires a metadata reload that does not reconcile the change — no reconcile, no teardown, no re-materialize. Not scored a fail, because the defaultos devrestarts the serve child on recompile so the user-visible loop still applies the change; the production trigger (a Studio package publish) was not drivable in the run. Flagged for triage.Root cause
reconcileDeclaredConnectors(packages/services/service-automation/src/plugin.ts, ~line 1059) readsql.registry.listItems('connector'), but the artifact reload re-ingests object definitions and not connector items — so on a connector-only edit the registry the reconcile reads is stale and the reconcile is a no-op. The connector materialize/teardown never re-runs off the reload event.Stale-premise check: present on
origin/main(reconcileDeclaredConnectorsstill readslistItems('connector'), and the reload path does not re-ingest connectors).Reproduction
os deva stack with a declared connector, but drive a metadata reload without a serve-child restart (or reload via a Studio package publish).Expected: the connector is torn down and re-materialized from the new definition. Actual: the reload re-ingests objects only; the connector reconcile is a no-op and the old connector stays live.
Source
Extracted from the QA run #7690 (framework 92f26f7, console 09987b680).