- pipelines: new schema_scope ('selected'|'all') and include_fk fields with
lightweight ALTER TABLE migration for existing DBs
- atlas: computeSchemaExcludes() limits diff/apply to selected tables via
repeated --exclude (bare-name globs); avoids unsupported-type failures on
unrelated tables (e.g. TiDB VECTOR) and prevents DROP of target-only tables
- fk toggle off appends --exclude '*[type=foreign-key]'; FKs referencing
excluded parent tables are skipped by Atlas automatically
- pipeline form extracted to shared component; new /pipelines/[id]/edit page
with full prefill; edit entries in list and detail pages
- Connections CRUD with test (sling conns test) and table discovery (sling conns discover)
- Pipelines: source/target, mode, schema_sync toggle, per-table PK/UK for incremental
- Run engine: atlas schema apply then sling run -r, JSON log parsing, SSE live logs
- Runs history with log replay; dashboard with binary health check
- Atlas dev schema on target server (sling_ui_atlas_dev) instead of docker dev-url
- full-refresh translated to truncate when schema_sync is on to preserve Atlas-built DDL