LearnNewsExamplesServices
Frontmatter
id15955
titleCSS-layer flicker taxonomy: style-delta frame-split and dock add/remove churn
stateOpen
labels
enhancementaitesting
assignees[]
createdAtJul 26, 2026, 3:06 AM
updatedAtJul 28, 2026, 9:52 PM
githubUrlhttps://github.com/neomjs/neo/issues/15955
authorneo-kimi-iris
commentsCount5
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

CSS-layer flicker taxonomy: style-delta frame-split and dock add/remove churn

Open Backlog/active-chunk-10 enhancementaitesting
neo-kimi-iris
neo-kimi-iris commented on Jul 26, 2026, 3:06 AM

Context

Seeded by the operator after take-15's verdict arc (2026-07-25/26): the projection-transaction body-clear class got its fix (#15951) and its instruments (#15950 census, the CDP entropy witness), and the natural next question is the CSS layer of the flicker taxonomy. This ticket is deliberately framed as enumeration-first: two candidate classes are named by hypothesis, to be verified or falsified with per-class repro witnesses — never asserted from appearance.

The Problem (hypothesis, unverified)

Two candidate classes, both plausible from the week's projection work:

  1. Style-delta frame-split — a style change whose deltas don't land in the same frame as the structural change they belong to (e.g. the flex application in the stable-topology path, setSilent + host update, overflow re-projection timing). The presentation shows one frame of the old style against the new structure.
  2. Dock layout add/remove churn — any path that destroys and re-creates chrome or panes (the staged transaction by design, pane add/remove, overflow menu open/close) presenting intermediate states the eye reads as flicker even when every individual frame is "correct."

Neither is established. The take-15 reel (87MB, take15-001227-d2.mov in the film checkout) is a ready corpus to census for both.

The Architectural Reality

  • The stable-topology fix (#15951) eliminated the shell-swap class at the projection layer; anything remaining lives at the style-delta or add/remove layers.
  • Instruments that make this falsifiable now exist: the CDP presented-frame entropy witness (per-action continuity, in-spec) and the frame-delta flicker census (test/playwright/util/flickerCensus.mjs — any video file, with timestamps).
  • Surfaces tonight's work touched: refreshDockWorkspace (staged vs stable paths), DockMotionSignal FLIP motion, the neo-no-animation settle window (~260ms theme window), overflow plugin re-projection, setSilent + host update flush ordering.

The Fix (enumeration-first)

  1. Per-class repro witnesses on the take-15 reel (or a fresh take if the reel is too clean post-#15951): census, frame-pair the deltas against the beat log, and classify each anomaly into class 1, class 2, or neither.
  2. For each confirmed class: a mechanism read (which flush/ordering boundary splits the frame) and a minimal witness spec in the CDP continuity harness.
  3. A falsification record for any candidate that does NOT reproduce — stated, not dropped quietly.

Acceptance Criteria

  • Each named candidate class has a verdict (confirmed with repro + mechanism, or falsified with the evidence named).
  • Every confirmed class has a minimal CDP-continuity witness spec.
  • Any new confirmed class beyond the two candidates gets its own row.

Out of Scope

  • The projection body-clear class (fixed, #15951) and its witness coverage.
  • The vessel skin gap (#15945, Grace) and the relocation defect (#15934, Fable).
  • Any fix work — this ticket enumerates and witnesses; fixes follow per-class.

Decision Record impact

none — enumeration/witness work in the test harness.

Related

  • #15951 (the projection fix) · #15950/#15947 (the census) · #15252 (the film) · take-15 reel + verdict record (session a76464c2)

Live latest-open sweep: checked latest 20 open issues at 2026-07-26T00:58Z; no equivalent found.

Origin Session ID: a76464c2-c4b7-48b4-a2cc-30ae42ab3dd0 Retrieval Hint: query_raw_memories("CSS flicker style-delta frame-split dock add/remove take-15 census")

Falsification record (2026-07-26, @neo-gpt-emmy's 1167-frame film-smoke census — folded by the author)

The first candidate-flash corpus (the film-v1 smoke at c59d4c7405, 1,167 decoded frames across 6 streams, every excursion source-correlated) maps zero apparent flashes to the two hypothesized classes:

  • showcase t=13.040s low-luma frame = the deliberate page.reload() between determinism runs (spec line 668) — a reset seam, not ambient flicker;
  • tear-out main light 2.800–2.840s + vessel light 0.680–0.760s = the explicit light→dark theme assertions — a choreographed theme roundtrip, not a skin regression;
  • the scene-1 theme beat at 80/120ms receives zero readable light frames — a film pacing gap (FilmPace covers gestures only), not a product event.

Verdict so far: both candidate classes remain unconfirmed; apparent flashes to date are deterministic choreography/reset seams. The enumeration continues against the take-15/16 corpora; the capture drive's presentation run + explicit theme dwell (#15978) removes the pacing artifact from future corpora.

tobiu unassigned from @neo-kimi-iris on Jul 27, 2026, 12:25 AM
tobiu unassigned from @neo-opus-ada on Jul 28, 2026, 11:23 AM