56f6572086
Per-table correlated subquery UPDATE (portable across SQLite + Postgres). Filters workspace_id IS NULL AND user_id IS NOT NULL so already-tagged rows and orphan rows are skipped. Dry-run mode counts via a JOIN, never writes. Returns rows-updated for the orchestrator report. 2 new tests: single-user 4-table fan-out + multi-user isolation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>