7 October 2026
3 — docs sync never quiet, no-source surfaces, one source one workspace, the update return, bypass close, security pins, pricing footnote (4 migrations)
-
Release 3 — main → release. Hand merge; no auto-merge. Migration-bearing: FOUR migrations apply in the release run's migrate step, in this order:
20261005000030_due_sync_projects_per_source,20261006000010_unmap_clears_sync_state,20261006000020_close_orgs_delete_bypass,20261006000030_one_source_one_workspace. Backup warning: the usual pre-release snapshot per the runbook —20261006000010deletes orphanedsync_staterows (adyrix/stem's stale GitHub card among them, founder-ruled) and addsmapped_atto both mapping tables;20261006000030re-points nothing on existing rows (account_idnull until each row's next reconnect) and replaces the Linear lookup index with a unique one. - Before the merge — pre-merge checks (read-only on production; founder re-runs at the merge)
-
HARD GATE for
20261006000030:select external_id, count(distinct org_id) from public.connections where provider = 'linear' and status <> 'revoked' group by external_id having count(distinct org_id) > 1;→ must return 0 rows, or the migration's fail-closed block refuses and applies nothing. Coordinator's reads: 1 row at 15:20 IST on 2026-10-06 (adyrix + production-test on one Linear workspace), 0 rows after the founder's two production-test disconnects (19:55 IST and 23:40 IST on 10-06). Nobody may connect a Linear workspace another Stemmory workspace already holds between now and the migrate step (today's code does not refuse it).