A redraft keeps the plan's id, so a plan the service worker answered from its cache could pass for the finished rebuild. The API client's apiRead now says whether a GET was the cached copy; the plan carries it, and the Draft board shows the retryable draft-unread error instead of a cached plan with the drafted id. A later read from the server still lands the draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>