Stop at once as ui_contract_mismatch on ChatGPT's new page layout #78
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
x/ego-chat!78
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/new-layout-fail-fast"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
First step for #77. ChatGPT now serves a new page layout on every fresh load. This browser contract cannot operate it yet, and until now it retried
page_state_unresolvedfor the whole 90-minute pre-Send budget: 139 and 160 attempts in the reported cases. This change makes it stop at once with a named reason. The port to the new layout follows separately.What the new layout looks like (live, read-only, 2026-09-25, build
e74a52d7…):#prompt-textareaand no fallback textarea. The composer is a ProseMirrordiv[contenteditable="true"][role="textbox"]labelled "Ask ChatGPT", with no id, inside[data-composer-layout].data-message-author-roleordata-message-id. Turns are[data-turn-key].data-testidis left, and there is no#thread-bottom.Change:
#prompt-textarea, a visiblerole="textbox"editor, and a[data-composer-layout]element.assertReadyraises the human-onlyui_contract_mismatchin every mode, before anything is composed.ego_preflightreportsblockedReason: "ui_contract_mismatch"with an unsafe browser contract.Verification
page_state_unresolvedwhereui_contract_mismatchwas expected:layout: "shell", built from the live markup.npm test: 1428 tests, 1427 pass, 1 skipped.npm run test:ego-monitor148/148. ESLint clean on changed files. A3K fixture regenerated.Not released alone: this ships in the same release as the new-layout port (#77).