Repository navigation
Export source-bound offscreen canvas paint evidence - #830
Conversation
Required CI stopped: original integration failure retainedFrozen head The actual exception at All three unit shards, packaging contracts, both deterministic hardening jobs and terminal/contracts had passed at this stop; remaining workflows were still running. Those passes do not override failed required integration or prove native/visual parity. The initial native producer, codec and local vision evidence remains as scoped in the body. The PR stays draft. No source changes, fixes, reruns, readiness or merge are authorized. The original failure is escalated to the operator. rp1 remains permanently parked; no new fix owner or live capture lease follows. Retained original full job log SHA-256: |
Operator-authorized identical-head diagnostic rerunThe operator classified this seven-file diff as production-behavior-inert from the source diff: canvas export changes are test-only, GDI+ readiness additions are test-only or unreferenced by production, and the remaining files are tooling/tests/fixture/documentation. This is a source-level ruling, not a measured byte-identical binary claim. The original job 116497412447 still stands as failed workspace UIA convergence. The operator found no matching An explicit, issue-specific grant permits one diagnostic rerun of that integration job only on unchanged head If the single rerun passes, one follow-up issue will preserve the original failure and rerun evidence before normal required-check, Ready/fresh-DCO and exact-head merge admission. Any rerun failure, matching or different, stops for the operator with no further rerun, fix, rebase or rp1 wake. |
Identical-head diagnostic passed; normal merge gates resumeThe single operator-authorized diagnostic integration job 116507566215, attempt 2 of run The required follow-up is #831, recording the original workspace convergence refusal, log hash, artifact reference, diagnostic success and the operator's product-inert source classification. This does not establish root cause or extend the #826 rerun exception. The current nonempty exact-head inventory has 24 completed contexts, 20 successful and four configured skips. Readiness, fresh Ready-event DCO and an exact-head check remain required before any merge. This is code/tooling admission only: the scoped offscreen image acceptance and all unverified whole-window/parity claims remain unchanged. |
Add the frozen opt-in real canvas paint export and lossless artifact contracts for local component review. Refs #822 and #826. No whole-window or cross-platform parity acceptance. Executor remains permanently parked; coordinator mechanical publication only. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f5433db8-4027-4a36-8d42-6cdd6daa0542 Signed-off-by: Colin Neilens <coneilen@microsoft.com>
3a36c0f to
e75fa38
Compare
Mechanical docs-only base update; frozen feature bytes unchangedThe protected merge refused the previous head because it was one docs-only commit behind main. Under the explicit operator grant, the single feature commit was rebased without conflict onto New head: The full-template PR body is unchanged (SHA-256 For this new head the operator permits only the existing bounded #826 journal-flake rule (at most two classified failed-job reruns globally) and one diagnostic rerun for the recorded workspace-UIA-convergence signature. Any other failure stops for the operator. No admin bypass, source fix or further base change is authorized. |
Fresh up-to-date head passed without retriesHead Current-head raw logs positively record codec The seven feature files, admitted artifact and body are unchanged. The previous head's original integration failure, its one successful identical-head diagnostic and the follow-up issue remain preserved. Ready was requested only after this fresh CI pass; a fresh Ready-event DCO and exact-head protected merge check are still required. No admin bypass, source fix, additional image run or rp1 executor restart is involved. |
Summary
Add an opt-in, source-bound way to export the real canvas paint path for local component review without launching a window or capturing the desktop. The evidence class is real paint path, offscreen component render, not whole-window or cross-platform parity acceptance. Refs #822, #826.
Changes
Test plan
RED: pwsh -NoProfile -File C:\gcs\rp1\Invoke-PaintExport.ps1 -RunId red-setup3 -> exit 1; intended historical scaffold behavior failure, expected artifact 1, actual 0; 0 passed, 0 skipped, 1 failed. This predates the final seven-file source.
GREEN: pwsh -NoProfile -File Tools\windows\Tests\CanvasPaintArtifact.Tests.ps1 -ScratchRoot C:\gcs\rp1\converter-postc-callback-v2 -> exit 0; exactly 8 unique ordered synthetic groups passed, 0 skipped, 0 failed; 12 explicit subcontrols also passed.
REGRESSION: pwsh -NoProfile -File C:\gcs\rp1\Invoke-PaintExport.ps1 -RunId postc2 -> exit 0; exact named native paint test 1/1 passed on the final frozen seven-file source; three RGB hashes match. This is focused producer evidence, not a completed broad regression run.
The separately authorized actual conversion also ran once and exited 0:
It published exactly the PNG and manifest, verified 1280x720 geometry and matching decoded RGB. The producer wrapper is an external scratch artifact, not part of this change; the README supplies the replayable repository procedure. Base HEAD
24209d2a70efee78be2a8214edf013e9b787ccd0identifies the baseline, while the measured seven-file hashes identify the then-dirty feature source. It is not a claim that the feature was already committed at that HEAD, a complete clean-tree attestation of all imports, or cryptographic execution attestation.4338a7f10ffbf18329f054b2340e5fcb59a8b5b2e97c17d45b195321be47aa23aaffa47bf9c75dd3db756e67c4b4810583671cfa93ed9ccd884657f6913759c3735b84aae3da48b864b3235fe1a42c3b0f52c700f82d90e85576444c9350749aabb9f845e494b3ad466327a4f1c4231e07ea67502525a57ac39fd56c32a0f34a29bf1cde826f55e28a2442371c8bb53fa8e7d3a72796b6f2a21def7fdde37d3a3004e12848f45aebdf84534af2016629a1e1890146c737dbecc781e003fcf0d2dfa724bdb6a8cbb9b2052b8f4676137ae643dd09a791f9533a56d53461294b857d3976482f1bad0c6ec098f4bbabe0f77a72ce91f398441ea9dce3446e4f3aaae68840d65cc857dc96f7ce8ac9a28e36b0475ea742764202392e6dd4aa466c10Preserved failures and execution boundaries: two initial compilation/setup failures were not behavioral RED. The first post-C converter run executed 8 groups with 7 passing and 1 failing: the injected write-failure case reached a post-Save
NonOpaquePixelerror instead of its intended fault assertion. The corrected run observed one real COM stream callback, 3,539 accepted partial bytes and an injectedIOExceptionwith HRESULT0x80131620, whileBitmap.Savereturned normally. That is evidence for this runtime only, not a universal GDI+ behavior claim. Its staged partial PNG and the separate post-PNG publish-failure artifacts remain preserved.Two later worker-improvised, ungranted validators failed: an ANSI-sensitive outer-console regex despite a clean passing canonical native log, and a syntactically invalid independent header check after successful conversion. The five-failure rule permanently stopped that executor. The operator authorized the coordinator to admit and mechanically publish the already-frozen deliverables without source changes or a replacement fix owner. All failed commands/logs remain retained; conversion success does not erase those process deviations. No additional native run, converter retry, local broad suite or source repair followed the stop.
The earlier readiness 1/1 and adjacent card 17/17 results are historical pre-final-edit evidence, not current-source validation. Current broad/native regression is the exact-head automatic PR CI gate and is pending at initial draft publication. No failed-job rerun is preauthorized by this body; only the separately controlled #826 exception may apply to a proven inherited capture-core flake because this diff excludes all four capture-core files.
Local image review: initial individual privacy inspection found only synthetic fixture content. One fresh Claude Sonnet 5.5/high reviewer viewed this exact PNG and the individually cleared macOS project-100% frame, returning ACCEPT with stated limitations. It confirmed two legible idle cards without clipping/overlap and only a short, low-contrast connector stub. The label is displaced from that stub; direction, routing, ports and same-state edge parity are not established. It recorded meaningful card, pill, typography, age/chip and edge differences from macOS; the fixtures and states differ. This accepts scoped offscreen paint evidence, not matching macOS or the whole #764 criteria. Provenance admission is recorded on #822.
Checklist
git commit -s) per the DCOmake test)make check)Not verified
make testormake checkwas run.