Skip to content

fix(qualification): overlay control anchors on bottom/left/right; own broker for raw control (D46, TIN-6654) - #140

Merged
Jess Sullivan (Jesssullivan) merged 1 commit into
xoxd-ai:mainfrom
Jesssullivan:fix/kit-anchor-control-socket-20261018
Oct 18, 2026
Merged

Jess Sullivan (Jesssullivan) merged 1 commit into
xoxd-ai:mainfrom
Jesssullivan:fix/kit-anchor-control-socket-20261018

Conversation

@Jesssullivan

Copy link
Copy Markdown

Implements operator ruling D46 (Linear TIN-5509, comment 90d4a0c8) and fixes TIN-6654.

Anchor rule (D46)

The attended 600-frame gate on the alpha.12/native.2 candidates (TIN-5511, comment 341b7282) gave these results:

  • 600/600 Host frames were overlay-free.
  • The run reported unanchored anyway. macOS draws the menu bar above the Host overlay, so the raw-VNC control's top ring is menu bar: 45/5120 tinted, against bottom 5120/5120 and left/right 2767/2880.

The old "≥ 50% on every side" rule can never anchor on a target whose menu bar is visible, and the target profile requires a visible menu bar.

What changes:

  • Required sides: the control must now cover ≥ 50% of the bottom, left and right rings (CONTROL_REQUIRED_SIDES).
  • Top: still measured and reported. The receipt now also carries topBelowMenuBar: the most-tinted ring-high band within the top 4% of the frame. That band is diagnostic only, because the feather is already faint there. At the dimmest heartbeat it falls below the edge-band thresholds.
  • Fail-closed: a control with no overlay, or missing any required side, is still unanchored.

Raw control on its own broker (TIN-6654)

createBroker rejects two profiles for one desktop, so overlay_600 could not open its raw control session on the Host broker.

What changes:

  • New flag: --control-socket gives the control session its own observation-only broker. It defaults to --socket.
  • Receipt: records each session's socket.
  • Unchanged: the broker guard.
  • README: documents the separate-config pattern, where the raw profile gets its own tunnel endpoint and does not share a targetId with the Host profile.

Validation

  • npm test: 857/857 on Node 24.21.0, including a new menu-bar control test that covers the fail-closed cases.
  • docs:check: passes.

Part of TIN-5511. Related to TIN-6639, TIN-6654.

…ght; own broker for the raw control (D46, TIN-6654)

The macOS menu bar draws above the Host overlay, so on a target whose menu
bar is visible the control's top ring is menu bar (PZM 2026-10-18: top
45/5120 tinted, bottom 5120/5120, left and right 2767/2880) and the old
every-side rule could never anchor. Require bottom, left and right; report
the top ring and the best band below the menu bar without gating on it.
A control without the overlay, or missing a required side, stays unanchored.

overlay_600's raw control session can now use its own broker
(--control-socket): one broker refuses two profiles for the same desktop,
and that guard is unchanged.

Part of TIN-5511. Related to TIN-6639, TIN-6654.
@Jesssullivan
Jess Sullivan (Jesssullivan) merged commit 3400dc5 into xoxd-ai:main Oct 18, 2026
4 checks passed
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.

1 participant