LearnNewsExamplesServices
Frontmatter
id16472
titleLarge-over-small popup overlap escapes the partial-conversion window
stateOpen
labels
bugairegression
assignees[]
createdAtAug 3, 2026, 11:02 PM
updatedAtAug 8, 2026, 5:05 PM
githubUrlhttps://github.com/neomjs/neo/issues/16472
authorneo-fable
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Large-over-small popup overlap escapes the partial-conversion window

Open Backlog/active-chunk-12 bugairegression
neo-fable
neo-fable commented on Aug 3, 2026, 11:02 PM

Context

Found during PR #16468's regression battery and confirmed solo: WorkstationHumanPopupOverlapNL.spec.mjslarge-over-small: one local proxy plus readable target choices — fails 3/3 deterministic on this host (battery port 8141, baseline-stash attribution port 8143, solo port 8149; darwin, branded-Chrome headless, e2e config, self-spawned server, --workers=1) at dev 3a39616cd3. The baseline-stash run proves independence from the #16468 diff.

The Problem

Observation, exactly: the failure is the setup-premise bound at spec :834expect(positioned.metric.score, 'large-over-small: conversion remains partial').toBeLessThan(.8). The matrix cell engineers window geometry whose composed overlap score must land in the (0.6, 0.8) window: above .6 on rx/ry/score so convert-in clears, below .8 so conversion remains partial. The received score is ≥ .8 — the premise breaks before any product assertion runs (the proxy/readability behavior under test is never reached).

Inference, separated: a score past the window means the positioned geometry produces more overlap than the cell's design — either the window-positioning path drifted (placement, size, or coordinate basis of the managed popups) or the premise's engineered coordinates went stale against a changed runtime. Which one is the classification's job; no attribution is asserted here.

The Architectural Reality

  • The cell positions real OS popups and computes positioned.metric (rx, ry, composed score) against positioned.target.managed rects — the geometry flows through the manager.Window / popup placement path.
  • The spec + its premise landed with the popup-over-popup proxy work (family ticket #16117, closed via PR #16137) — presumably green at authoring (no CI e2e job exists; authoring-time receipts are the basis, same caveat class as #16467).
  • The suspect window is the same Aug merge span named on #16467: PR #16140 (native titlebar reintegration — window chrome/geometry), PR #16137 itself, and the coordinate-basis defect family Iris recorded on #15924 (screenLeft basis / proxy-rect frame / primary-display assumption).
  • Adjacent-but-distinct deterministic reds at the same head are already receipted elsewhere: the audit-commit no-op (#16467) and the resizeSplit-commit wedge (receipts on #16365). This ticket is the third, geometrically distinct member.

The Fix

Classification first:

  1. Instrument the failing cell's setup: log both popups' requested vs actual window rects, the managed coordinates, screen/display basis values, and the computed rx/ry/score at premise time.
  2. Decide with receipts: product drift (positioning path returns different geometry than requested) vs stale premise (runtime changed legitimately; the cell's engineered coordinates need re-derivation).
  3. Repair at the owner: the positioning path if it drifted; the premise derivation if the runtime is correct. Never widen the score window or fudge the bound — the (0.6, 0.8) window is the test's semantic content.

Acceptance Criteria

  • Root cause named with instrument receipts (requested vs actual rects + basis values) before any repair lands.
  • The large-over-small cell passes its full assertion body (premise + product) twice consecutively at dev head.
  • The (0.6, 0.8) partial-conversion window is preserved as written, or its re-derivation is justified from the geometry receipts — no bound-widening.
  • If classification lands on the positioning path: a focused witness pins requested-vs-actual placement for overlapping managed popups.

Out of Scope

  • #16467 (audit-commit no-op) and #16365 (resizeSplit wedge) — the other two deterministic reds at this head
  • The #16468 FLIP staging repair (merged separately; attribution already proven)
  • Any change to the proxy/readability product assertions the premise gates

Decision Record impact

none — focused defect; no contract surface change.

Related

Related: #16117 / PR #16137 (family origin) · PR #16140 (window-chrome suspect) · #15924 (coordinate-basis defect family) · #16467 (same masked-window sibling) · PR #16468 (discovery context) · #15252 (film frame-truth gate)

Live latest-open sweep: checked the latest 20 open issues on 2026-08-03 at ~21:01Z; no equivalent found. A2A sweep: mailbox current through the evening, no overlapping claim. Receipts logs retained locally (battery + attribution + solo).

Origin Session ID: dd021188-1651-4759-80e5-b6eccf4c65cc

Retrieval Hint: large-over-small popup overlap score partial-conversion window positioning drift