Skip to content

docs(character): re-derive the selector table from shipped code, drop the false VERIFIED - #734

Merged
ffroliva merged 1 commit into
developfrom
docs/731-stale-verified-selectors
Sep 7, 2026
Merged

ffroliva merged 1 commit into
developfrom
docs/731-stale-verified-selectors

Conversation

@ffroliva

@ffroliva ffroliva commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

docs/CHARACTER.md § 12 marked selector rows VERIFIED that stopped being true at #703. 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 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

Row What the doc said What ships
Model picker button[aria-haspopup='menu']:has(i.google-symbols:text-is('arrow_drop_down')) That selector is in none of the four shipped entries. Not merely stale — it never matched the tuple. Shipped: arrow_drop_down under either carrier, on button and [role='button'].
Generate / submit button:has(i.google-symbols:text('arrow_forward')) 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. Live 2026-09-07: prompt_submitted via="button:has-text('arrow_forward')". It works by luck, not design (#730).
Prompt box == PROMPT_INPUT_SELECTORS[0] On the migrated host [0] misses and [1] div[contenteditable="true"] matches — observed in the same live run.
Editor-ready anchor Slate only Slate or ProseMirror. Asking only for Slate reported 0 boxes on an editor whose box was visible throughout.
Body mode (slot 1) <i> half only Also flow-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

Validation

  • generate_website_docs.py regenerated + --check in sync (20 files)
  • check_doc_links.py — all links resolved across 29 files
  • check_website_docs_pii.py — clean, 25 published files
  • check_repo_hygiene.py — 1023 files, no violations
  • check_council_memory.py — 48 memory files, all cited
  • Every [[wikilink]] in the file audited for resolution

Docs-only: no code, no tests, no Flow surface touched — so no e2e is owed.

… 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.
@ffroliva
ffroliva merged commit 632a4b3 into develop Sep 7, 2026
15 checks passed
@ffroliva
ffroliva deleted the docs/731-stale-verified-selectors branch September 7, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs/CHARACTER.md marks stale <i>-only selectors VERIFIED; docs/USAGE.md never documents --format-prompt

1 participant