fn apply_tabs_reordered_bulk(
wstore: &WaveStore,
workspace_id: &str,
tab_ids: &[String],
) -> Result<(), Box<dyn Error>>Expand description
Phase E.5.3 — replace the workspace’s tabids with the new
list and drain any legacy pinnedtabids rows. Pinning was a
Waveterm feature removed from AgentMux; bootstrap merges legacy
pinned tabs into the reducer’s tab_ids, so the next reorder
is the canonical full ordering. Leaving stale pinnedtabids
in SQLite would cause UI double-insertion (workspace.tsx
builds the displayed tab list as [...pinnedtabids, ...tabids]).