Repository navigation
docs(character): re-derive the selector table from shipped code, drop the false VERIFIED - #734
Merged
Merged
Conversation
… the false VERIFIED Fixes #731. docs/CHARACTER.md section 12 marked rows **VERIFIED** that stopped being true at #703, and the file is mirrored to website/docs, so the false claims are published. A row marked verified that is not is worse than no row: it is what a reader trusts INSTEAD of reading the code. That is how #727 got written - the carrier split was documented nowhere a selector author would look, and the table confidently said otherwise. Every row re-derived by reading the constant, not edited from memory. What that turned up, beyond what #731 reported: - Model picker: the documented selector carried `aria-haspopup='menu'`, which appears in NONE of the four shipped entries. Not merely stale - it never matched the shipped tuple. - Generate / submit: SUBMIT_BUTTON_SELECTORS is single-carrier, and on the migrated host BOTH `<i>` entries miss. Only the third, `has-text('arrow_forward')`, fires - matching the mat-icon's text rather than its tag. Observed live 2026-09-07: `prompt_submitted via="button:has-text('arrow_forward')"`. It works by luck, not by design; noted in the row and tracked in #730. - Prompt box: the row claimed PROMPT_INPUT_SELECTORS[0]. On the migrated host [0] misses and [1] `div[contenteditable="true"]` is what matches (live, same run). - Editor-ready anchor and body-mode chip: both gained mat-icon / custom-element alternatives at #703 that the rows never picked up. The undated **VERIFIED** marker is replaced by a per-row date naming what the row was checked against - code, live run, or both - so a row cannot silently outlive its evidence again. The carrier split is stated at the top of the section, where someone writing a selector will actually meet it. Deliberately NOT included: the Format-button row and the docs/USAGE.md `--format-prompt` entry. Both describe behaviour that is still changing in #729, and documenting a flag from this branch would describe the broken version. They ship with that PR. Also removed before commit: a [[ligature-carrier-differs-by-host]] wikilink I had added here. That memory file lands with #729, not develop - a pointer to something that does not exist yet is the same defect this PR is fixing. Verified: website mirror regenerated and in sync, doc links resolve, PII scan clean, hygiene 1023 files. Three pre-existing dangling wikilinks remain in this file (private-store-only memories); left alone, out of scope.
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.
Summary
docs/CHARACTER.md§ 12 marked selector rows VERIFIED that stopped being true at #703. The file is mirrored towebsite/docs/, so the false claims are published.A row marked verified that is not is worse than no row: it is what a reader trusts instead of reading the code. That is how #727 happened — the labs/migrated carrier split was documented nowhere a selector author would look, and this table confidently said otherwise.
Every row was re-derived by reading the constant, not edited from memory. That turned up more than #731 reported.
Fixes #731
What re-deriving found
button[aria-haspopup='menu']:has(i.google-symbols:text-is('arrow_drop_down'))arrow_drop_downunder either carrier, onbuttonand[role='button'].button:has(i.google-symbols:text('arrow_forward'))<i>entries miss. Only the third,has-text('arrow_forward'), fires — matching the<mat-icon>'s text rather than its tag. Live 2026-09-07:prompt_submitted via="button:has-text('arrow_forward')". It works by luck, not design (#730).== PROMPT_INPUT_SELECTORS[0][0]misses and[1]div[contenteditable="true"]matches — observed in the same live run.<i>half onlyflow-slot-chip-button:has(mat-icon:…)— added at #703, never picked up by the row.The structural fix, not just the content fix
The undated VERIFIED marker is gone. Each row now carries a date naming what it was checked against — code, a live run, or both — so a row cannot silently outlive its evidence again. The carrier split is stated at the top of the section, where someone writing a selector actually meets it.
Deliberately not included
docs/USAGE.md--format-promptentry. Both describe behaviour still changing in fix(character): re-anchor the Format button on its custom element, not a tag that moved #729; documenting the flag from this branch would describe the broken version. They ship there.[[ligature-carrier-differs-by-host]]wikilink I had added here before committing — that memory file lands with fix(character): re-anchor the Format button on its custom element, not a tag that moved #729, not develop. A pointer to something that does not exist yet is the same defect this PR fixes.Validation
generate_website_docs.pyregenerated +--checkin sync (20 files)check_doc_links.py— all links resolved across 29 filescheck_website_docs_pii.py— clean, 25 published filescheck_repo_hygiene.py— 1023 files, no violationscheck_council_memory.py— 48 memory files, all cited[[wikilink]]in the file audited for resolutionDocs-only: no code, no tests, no Flow surface touched — so no e2e is owed.