An image request can return no prose. Treating that as automatically unfinished may wait forever on an existing result, while accepting any picture on the page can select an old image. Northstar separates text and image completion without losing the provenance of the new output.

Separate empty prose from ready image evidence

An ordinary answer requires nonempty value. With requireImage, an empty value can proceed to stability comparison when image-open belongs to the same new answer group. An image request should not require an unnecessary explanatory sentence simply to look complete. Media can carry the result without accompanying prose.

That does not permit accepting any image. Images excludes disabled controls and compares response groups. A ready image left beside the new answer from an older turn is insufficient. The evidence should fit the requested output format while retaining the connection to this particular result.

Read load state rather than mere control presence

The adapter derives readiness from an actual response image's completion and natural dimensions. A recognized generated-image card button also needs loaded pixels inside it. The current size threshold reduces confusion between tiny icons and generated results; it is an adapter criterion rather than a universal image-quality standard.

Loaded display does not establish original resolution or successful file storage. Seeing a thumbnail differs from downloading and checking PNG bytes. This article concerns observation of generated output, leaving download as another result. Evidence from the display should not be enlarged into inspection of the complete stored file.

Use a narrow exception for cards without a separate answer heading

Some actual image-only turns lack a separate assistant heading. The fallback runs only when no new answer was found, an image is required and busy is false. It checks a recognized named enabled generated-image button in the page group, with a newer ordinal and exactly one candidate. Ready-image count must also exceed the baseline.

The exception does not accept any new picture elsewhere on the page. Two ambiguous cards, old ordering, another response group or an unready card remain unproven. This narrows evidence within a known UI layout; it does not cryptographically bind a provider's server request identity to the picture.

Tests separate heading-free media from old output

The headless-image fixture keeps an old image and adds a ready new card after sending. It distinguishes completion without a separate assistant heading from cases missing freshness, readiness or scope. Another image fixture covers a new answer with an empty body.

This task read that code and those tests without requesting new image generation. It did not send an image request twice as an experiment. Historical original fixtures and actually executed independent-module checks remain separate evidence. Negative cases matter because they demonstrate how an apparent picture result can be rejected rather than simply proving that one happy path passes.

The shared example handles declared observations only

The new module accepts ready media in the same answer for an image target or uses an explicitly enabled page exception. Tests inspect unique named cards, increased count and ordinal, and exclusion of other-answer images. Readiness itself is a caller declaration; executing the example does not observe actual page loading.

Even observed_complete retains business_success_verified=False because the package implements no request sending, browser observation or file download. Readers can experiment with judgment through code and records, but running the example cannot be reported as success of a real generation service. The missing integration responsibility is stated alongside the reusable contract.

Define completion according to the requested output form

One condition imposed on both text and images can wait for unnecessary prose in one case and finish with words but no image in another. First establish the requested artifact, then compare evidence appropriate to that form. A new answer need not be a long sentence.

I see an agent-friendly generative-service program as one that can read its output precisely: which card is new, which media are ready and which file checks remain. Those distinctions make the next step clear. Images can be verified as images while retaining the boundary that prevents earlier pictures from masquerading as new output.