* fix(tabs): distinguish the active two-row group
* fix(tabs): apply group focus styling to single-row headers
* fix(tabs): retain faint group rails and outline collapsed counts
* fix(tabs): soften collapsed group count outline
---------
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
The v0.6.56 switch (#13302 / #13376) defaulted off and gated connection
loader expansion, which turned into the "connection nodes cannot be
expanded" regression (#13536, #13579). Making the switch default on
(#13597) did not solve the underlying UX mismatch: clicking a connection
node both connects and expands, so an off switch still expanded on click
and looked broken.
Restore the long-standing behavior: connection loaders always expand
after loading again. Keep the #13557 manual-toggle expansion fix so the
first click always expands reliably. Remove the setting from the editor
settings store, settings dialog, settings search, draft/transfer
allowlists and all locales; existing persisted values are ignored by the
normalizer.
The #13302 performance concern is preserved as a possible future
optimization, but not as a default-off behavior switch.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
MQTT was reported separately: its connection node uses its own loadMqttTopics loader, but shares the same toggle path, so it has the same guarantee as redis/mongo/etcd/milvus/es. Add MQTT plus mq, nacos, dynamodb, zookeeper, consul and qdrant cases; reverting the #13557 fix fails all 12 new cases.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
v0.6.56 turned the long-standing auto-expand behavior into a default-off switch (#13302/#13376). That changed the default UX and the default-off flip also exposed the manual expansion regression #13557. Restore the old default while keeping the opt-out switch: users with many schemas can still disable it.
Existing blobs from the default-off builds are migrated once via sidebarExpandTreeOnConnectMigrationVersion; an explicit toggle afterwards is honored.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
The #13536 regression affected Redis, MongoDB, etcd, Milvus and Elasticsearch as well, since all of them share the connection toggle path. Lock the cross-type behavior in the expansion suite so a future loader gating change cannot regress it silently.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
`sidebarExpandTreeOnConnect` was registered on the EditorSettings interface, in
DEFAULT_EDITOR_SETTINGS, in the normalizeEditorSettings whitelist and in the
settings-dialog draft, but never in `applyEditorSettingsPatch()`. That function
assigns every field explicitly, so the key was dropped on every apply:
- the store value never changed, so the toggle had no effect at all;
- the persisted snapshot kept the old value;
- the dialog rebuilt its base from the unchanged store, so the draft stayed
dirty forever and "apply and close" kept reporting unsaved changes.
Add the missing branch and cover it with two regression tests: one asserts the
toggle reaches the store and disk, the other asserts the dialog dirty state
clears once the toggle is applied.
v0.6.56 introduced prefetchCompletionTablesIfEnabled() with a body that
called itself instead of completionMetadata.prefetchCompletionTables().
Query tabs pass prefetchCompletion=true and the helper runs synchronously
during setup, so every query tab mount (including opening a .sql file)
recursed until the stack overflow aborted setup, leaving a blank,
unresponsive editor.
Call the composable's prefetch again behind the same query-tab guard and
cover the mount path with a regression test.
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
A no-row result (for example a PostgreSQL SET statement) leaves the tab with a result that has no columns. When the next query starts, that result is retained intentionally, but the result surface could not mount DataGrid (no tabular data) and only rendered QueryLoadingState when the result was missing or an error. The running query therefore showed neither the elapsed time nor the stop button.
Show the loading state whenever an execution is running and DataGrid cannot own the surface, including the retained non-tabular result case.
Closes#13508