test: pin INPAINT_OK and NEEDS_SRC_IDS picker lockstep - #404
Draft
cursor[bot] wants to merge 1 commit into
Draft
Conversation
Contributor
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
nanoodle | 5b334fc | Commit Preview URL Branch Preview URL |
Sep 01 2026, 08:52 PM |
cursor
Bot
force-pushed
the
cursor/missing-test-coverage-099a
branch
from
September 1, 2026 20:47
2de8946 to
34b7b0a
Compare
Editor Set vs play object — a one-sided edit hides a working mask or offers a text-to-image slot that 400s on a paid send. Co-authored-by: mikkel <mikkel@255bits.com>
cursor
Bot
force-pushed
the
cursor/missing-test-coverage-099a
branch
from
September 1, 2026 20:50
34b7b0a to
5b334fc
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Risky behavior now covered
Setand play object are the only reason those verified ids (nano-banana,flux-kontext,gemini-flash-edit, …) open the Inpaint node. A one-sided drop hides a working brush; a one-sided add ships a dead mask that still bills.text+image->image).hidream-e1-1,wan-2.6-image-edit, andvidu-q2-reference400 without a source image, but their names carry noupscal/img2imgtell. Without the list they surface as generators. Optional-image editors that do work text-only (nano-banana-2-lite,seedream-v4.5,qwen-image-3) must stay out — modality cannot separate the two.normImg(gen/edit/inpaint) and playmodelSuits(image/edit/inpaint) must agree on the same catalog row: true*inpaint*ids stay out of Gen/Edit (no mask sent → 400);INPAINT_OK+image-to-imagename-regex leaves Gen but keeps Edit+Inpaint; name-regexupscal/img2imgleaves Gen without opening Inpaint.Test files added/updated
scripts/check-inpaint-src-gates.mjs— extracts both maps + editornormImg+ playmodelSuits; pins the shipped allowlists and drives them on the same catalog table..githooks/pre-commit—touches_inpaintsrcruns the check whenindex.html,play.html, or the checker change.Why these tests materially reduce regression risk
These are hand-copied catalog-gap allowlists with a paid-call blast radius and no prior assertions (editor
Setvs play{id:1}— twin-drift does not compare them):INPAINT_OKid on one surface hides a live-verified mask; adding a false advertiser ships a billed whole-image regen.NEEDS_SRC_IDSid offers a generator that 400s (No input image data provided/INVALID_IMAGE_INPUT); widening it hides a working text-only editor.*inpaint*id leaking into Edit/Gen is a guaranteed 400 (No mask image data provided).No production behavior change. Offline, deterministic, no API spend. Ran
node scripts/check-inpaint-src-gates.mjs, pluscheck-image-ports.mjsandcheck-run-compat.mjs— all green.