Follow-ups from review on the id-keyed draft change: - composerDraftEnvironmentId read the environment out of the key, so an id-keyed new-task draft had no owner: attachment uploads never started and sign-out archival skipped the draft while cleanup deleted it. It now takes the draft and reads the project stamp, falling back to the legacy key shape only for drafts not yet migrated. - Archived signed-out drafts get the same legacy-key migration as live ones, so they surface and open after restore. - Switching environments retargets the active draft to the matched project, like switching projects does, instead of leaving the stamp on the old machine. - openDraft refuses a draft whose stamped project is not loaded rather than letting the composer fall back to the environment's first project. - The draft screen waits for draft hydration before deciding a draftId is gone, and keeps retrying while the project list is still empty, so a cold launch into a Draft row lands on it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Julius Marminge committed on 9/6/2026, 7:12:37 PMparent22c1f67
7 files changedLine totals unavailable