Skip to content

Add canonical focused UI capture mode - #943

Merged
coneilen merged 4 commits into
mainfrom
coneilen-fix-f2-capture-wrapper
Oct 28, 2026
Merged

coneilen merged 4 commits into
mainfrom
coneilen-fix-f2-capture-wrapper

Conversation

@coneilen

@coneilen coneilen commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds a repository-grade focused matched-capture mode that reuses the canonical scene worker, validates the exact F2 terminal-chrome controls, and preserves full capture ownership, deadline, privacy, and cleanup contracts without changing product behavior.

Changes

  • Add FOCUSED_LIVE_CAPTURE authorization, current-source/hash binding, exact 11-scene planning, focused manifest/release validation, and checked-in preparation.
  • Keep tab/card roster reads strict and add a separate owned chrome-control reader for Split Right, Split Down, and New Tab with stable IDs, Button/Invoke checks, and DPI-scaled 24x22 logical geometry.
  • Add behavioral contracts for the prior empty roster, all 11 scenes, prelaunch path ordering, missing/extra/foreign/wrong controls, wrong owner/bounds, deadline refusal, and cleanup.
  • Preserve C:\f7/C:\f8/C:\f9 historical refusals and retain the authoritative C:\fa V4 evidence. V4 completed all 11 product scenes and released with an exact COMPLETE manifest and zero survivors.
  • Leave investigation/ui-parity-matrix.md unchanged. V4 closes the focused Windows density finding across all 11 affected states, but the existing qualified Mac G08 handoff contains only the one selected-tab state. Multi-tab, alternate selection/focus, hover-close, last-tab safety, and overflow still lack exact paired Mac captures, so the whole Tab pills row remains Partial.

Test plan

RED: pwsh -NoProfile -File Tools\windows\Tests\UiCaptureDriver.Tests.ps1 -MatchedScenarioContractOnly -ScratchRoot C:\fr7b -> 7/8; Get-CapMatchedCapturePlan was not recognized
GREEN: pwsh -NoProfile -File Tools\windows\Tests\UiCaptureDriver.Tests.ps1 -MatchedScenarioContractOnly -ScratchRoot C:\fg1k -> 8/8 passed
REGRESSION: pwsh -NoProfile -File Tools\windows\Tests\UiCaptureDriver.Tests.ps1 -RequireRealSeed -ScratchRoot C:\uf185d -> 185/185 passed, zero skips

  • pwsh -NoProfile -File Tools\windows\Tests\UiCaptureDriver.Tests.ps1 -ScratchRoot C:\uf182h ... -> 182/182 passed, zero skips.
  • pwsh -NoProfile -File Tools\windows\Tests\ValidationRunner.Tests.ps1 -> PASS.
  • pwsh -NoProfile -File Tools\windows\validate.ps1 -Task hardening -> deterministic fixtures passed 3/3 repeated runs.
  • pwsh -NoProfile -File Tools\tdd\Tests\TddEvidence.Tests.ps1 -> PASS.
  • git diff --check origin/main...HEAD and git ls-files --eol -> clean diff; all touched files LF.
  • C:\fa\outputs\manifest.json -> COMPLETE, zero failures/cleanup failures/pending launches/survivors; 11 GUI launches and 11 clean zmx seeds.
  • C:\fa\outputs\focused-release.json -> RELEASED_ZERO_SURVIVORS, KERNEL_EXIT_AND_EOF_PROVEN, FOCUSED_RELEASE_ZERO_SURVIVORS; worker exit 0 and no cleanup failures or survivors.
  • V4 retained 11/11 raw unresampled PNGs. Every image is 2906x1910 outer, 2880x1800 client, DPI 192. Tab pills are 50 physical / 25 logical pixels high, close targets are 48 physical / 24 logical pixels wide, and Split Right / Split Down / New Tab are 48x44 physical / 24x22 logical.
  • All 11 images were individually privacy-reviewed: PASS. They contain only the canonical Matched fixture, C:\fa owned paths, offline fixture text, and standard Windows shell boilerplate; no credentials, usernames, tokens, external repositories, or personal data.
  • Manifest SHA256 055FFED8347538A43E2236843DB1BA74DDBAB3C59EF97CF4F8F01745B92C5D9C; release SHA256 48F70765C9B8B7D49B4591855629FD6603BE27E9DC3A3CDB8B7F125BB01B651F.
Scene PNG SHA256 Dimensions
agent-unknown 6F12C26FD21D8744DC4411D5DF2EC8F260EEFE8707C1D8A060D6341ADE7441E3 2906x1910
backend-idle D6820E8674C1C16434FC059E8D40A942AC20961C650E80BB6F9402416D220C7A 2906x1910
goal-needs-you 5DAA12EF224DBB9CA6FA9EECA17DD64737C282B9FE90674E0A0E5481BBBFC441 2906x1910
loop-running F808C1CFE7C5DADBBDA338A4345F2FA63564B57976ABF19EDF9F8FE734547D32 2906x1910
two-agent-selected 44A76E7887D783626B9189486389334465956B50195F04E242618E59EDAB9943 2906x1910
two-shell-selected 32504B2946146A374806CD2F307487F8CD3899A29732D776BCC40CA5CA7FFFB9 2906x1910
split-right-focused 20B2777F2FD3AE1428F9ACDE5C6BFE1F529F51F8A9EA9067E14D5983A5BA8BB5 2906x1910
many-first BDEB07B94731A1BE49A5982A81780EA327FA36E1057CEC22CE07B8A91DAF280B 2906x1910
overflow-last 575C85BC8299E8AD6B71D4EDC7F34CFCDAA7150D69C2742F202D0697A0F233AD 2906x1910
hover-close 923F587F6C5FB83E3B1ABBD529E37F326DAB5A664CA31B526CC308274E494A0F 2906x1910
last-guard BE549C327A022FF0B01083A0A382F2FB5BBD94A58BEE8A42FA52EDFFD7D3AF4F 2906x1910
  • Not run: macOS make test / make check; this Windows-only change was validated with the Windows capture, runner, hardening, TDD, diff, and LF gates above.

Checklist

  • I have read the Contributing Guidelines
  • I have signed off my commits (git commit -s) per the DCO
  • Tests pass locally (make test)
  • Code follows the existing style (make check)
  • I added the test/contract before the implementation and observed the intended RED failure

coneilen and others added 4 commits October 28, 2026 09:50
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen merged commit 0c503ec into main Oct 28, 2026
27 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