Work-order thread join: close the class gap

The conversationId-only thread-to-work-order join is fixed everywhere it can mint or miss a work order for a staff-created PMS work order, with ONE shared definition on main.

Status is DERIVED from each row’s own PR, decision and prod-evidence links by bin/refresh-tracker workorder-join-dedup-fix — never typed. Last refreshed 2026-10-22 02:11Z.

Overall
—
 
—
Shipped
—
Merged
—
In flight
—
Open
—
Waiting on you
Groups — click to filter
Status
—

Every row opens: when it was added, why it exists, and the links that prove it. Rows waiting on a human carry a Decide → link straight to the answerable question on the decisions page. Statuses are re-derived from live PR, decision and prod-evidence state by bin/refresh-trackers; nothing here is typed by hand. Merged and shipped both count as done (Gera, 2026-10-19); a prod_evidence permalink is what moves a row from Merged to Shipped.

PropFlow Docs