Text visible immediately after input does not prove that it survives reopening. A blank restarted editor does not prove that a previously saved article vanished either. Northstar connects current UI, journal and reopened saved document while distinguishing which outcome was actually verified.
Separate draft completion from reservation completion
The draft path returns bodyVerified and draftVerified with reservationVerified=False. It confirms editor composition, not completed server reservation registration. The reservation receipt instead reopens and checks the existing server article before reporting reservationVerified. Additional fields explain the particular completion hidden behind a broad verified label.
Without this distinction a preparation request could be reported as successful publication. Seeing a saved-list row is also different from checking its body. I separate currently visible, prepared and verified after reopening according to their evidence. A short success response needs a clear scope so the next caller can continue from facts rather than an inflated interpretation.
Do not type the title first in a blank restarted editor
When ArticleProgress contains committed blocks but current composition is empty, prepare attempts to restore a saved draft. It first verifies that the title is truly blank. Typing a title beforehand can create a new title-only document and an intervening save prompt, obstructing restoration of the intended draft.
A different current title stops with ARTICLE_DRAFT_RESTORE_REQUIRES_BLANK_TITLE. Finding earlier work does not authorize clearing a new title a person is composing. The blank body becomes a reason to reconcile UI and journal, rather than permission to begin the entire writing process again.
Open only a uniquely identified saved-title row
Prepare searches the saved-draft list and then the intended title. A remaining hasMore flag means the result is incomplete and is refused. It normalizes display whitespace and separates the appended save timestamp before requiring exactly one matching title. It does not open the first roughly similar article.
After opening, it waits for both title and journaled composition prefix to match. A matching title with a different body or media produces ARTICLE_SAVED_DRAFT_MISMATCH. Workflows with many identical titles may still need stronger identity. The implementation's title/timestamp form and composition comparison are described within their scope, not as universal document authentication.
Check list completeness before concluding a reservation is absent
OpenList waits for the refreshed total count to agree with loaded reservation rows. It does not trust an old count retained in an editor or interpret partial loading as absence. Exactly one row must match title and scheduled time; multiple matches expose a duplicate condition rather than silently selecting one.
After final submission, the procedure navigates back or uses a receipt-reading tab to check that list and the body. Failure to find the result remains OUTCOME_UNKNOWN and does not send another publication. Delayed screen response calls for reading the original result before considering any further effect.
Existing tests preserve differences and ambiguity first
Rich-content tests restore a blank restarted editor while keeping the upload count at one. A different saved body, absent title or multiple matching titles must not trigger overwrite or reupload. A new title-only document is preserved as well. A separate reservation fixture distinguishes one final submission from reuse of its original result.
This content task wrote no fresh service article and restored no original saved draft. It reads functions and fixture tests to explain the maker's reasoning. The shared module's thirty checks concern synthetic composition comparison, not server reopening or real document durability. Each claim remains attached to the kind of evidence that actually supports it.
Make retained content an inspectable readback result
Generated files and visible input are useful reports but may not explain the operational outcome. A reopenable saved location, its actual content and retained media composition need separate confirmation. Avoiding confusion between a blank restarted screen and permission to write a new article is part of the same responsibility.
I want writing automation to tell the next worker exactly how far confirmation reached. Separating a prepared draft from a server reservation and reading uncertain outcomes from their original record gives a concrete reason not to send the same work twice. The maker's handover should retain comparison evidence, rather than relying on an unqualified statement that saving can be trusted.