Merge round 34 #1403

Closed
opened 2026-10-07 20:37:06 +00:00 by kayg · 20 comments
Owner

Merge round 34 (night 2026-10-08). Base: job/merge33-1122 at ef0aa12b1 (deployed to production tonight). Merge the accepted branches at these exact commits:

Then full gates, one adversarial round, a screenshot set of every touched area, READY/NOT READY.

Merge round 34 (night 2026-10-08). Base: job/merge33-1122 at ef0aa12b1 (deployed to production tonight). Merge the accepted branches at these exact commits: - 9b270ad6f job/bash-notes (test-only) - 98dc46d05 job/tasksperf-1286 (#1286 Tasks virtualised) - a6d40efeb job/bash-money (#1288 #1301 #1307 #1206, number property tests) - f64aeef85 job/bash-files (#1265 #1355) - 3457d4c9c job/mailglass-1373 (#1373 opaque Morph reader) - 3f05f7052 job/bash-security (probe runner) - 06a5d6786 job/searchbar-1360 (#1360 floating Pills) Then full gates, one adversarial round, a screenshot set of every touched area, READY/NOT READY.
Author
Owner

Started merge34 on job/merge34 at ef0aa12b12. Fetched origin; origin/dev equals the required production base. I will merge the seven exact commits in the listed order, run full gates and the Money number checks, then one bounded adversarial round and the requested macOS-emulated screenshots. No push or deploy.

Started merge34 on job/merge34 at ef0aa12b12e0047cf9a779827cc0ed32261b934e. Fetched origin; origin/dev equals the required production base. I will merge the seven exact commits in the listed order, run full gates and the Money number checks, then one bounded adversarial round and the requested macOS-emulated screenshots. No push or deploy.
Author
Owner

All seven exact commits are merged, in order. Resolutions: Notes retained the already-correct exact header selector and incoming explanation. Tasks retained production Notes pins and Card documentation, and added TagPill truncation guidance; merged Tasks registry entries will be refreshed to exact live geometry. Money retained current Check groups controls, cancellation helper, canonical return route, label checkbox activation and form-scoped account action, while retaining the incoming slow paired-file read probe. Files retained both Photos screenshot usage comments. Mail retains Card-owned material and adds a shared opaque prop rather than reintroducing a feature-owned div; delivery-time image fixture documentation and the new busy-list fixture both remain. Security retains the single image-proxy phase, explicit Instance feature-selector classification and mark-unread isolation review. Search retains data-toast-dock, the keyboard results-region Tab stop and plain-text result counts; incoming floating action rows and non-sticky group headings remain. Files storm diagnostics and consume-once cleanup remain.
Final fetch still reports origin/dev = ef0aa12b12. cargo fmt --check passed (no output). Full workspace Clippy and web build are running. No test expectations were weakened during conflict resolution.

All seven exact commits are merged, in order. Resolutions: Notes retained the already-correct exact header selector and incoming explanation. Tasks retained production Notes pins and Card documentation, and added TagPill truncation guidance; merged Tasks registry entries will be refreshed to exact live geometry. Money retained current Check groups controls, cancellation helper, canonical return route, label checkbox activation and form-scoped account action, while retaining the incoming slow paired-file read probe. Files retained both Photos screenshot usage comments. Mail retains Card-owned material and adds a shared opaque prop rather than reintroducing a feature-owned div; delivery-time image fixture documentation and the new busy-list fixture both remain. Security retains the single image-proxy phase, explicit Instance feature-selector classification and mark-unread isolation review. Search retains data-toast-dock, the keyboard results-region Tab stop and plain-text result counts; incoming floating action rows and non-sticky group headings remain. Files storm diagnostics and consume-once cleanup remain. Final fetch still reports origin/dev = ef0aa12b12e0047cf9a779827cc0ed32261b934e. cargo fmt --check passed (no output). Full workspace Clippy and web build are running. No test expectations were weakened during conflict resolution.
Author
Owner

Merged performance contracts now pass: perf-lint: PASS; 0 violations; 22544 scoped exceptions. Refreshed 74 existing exact source hashes, replaced one moved module identity with its unique live identity, and refreshed source locations for touched UI files. No new waiver or limit change was added. The ratchet equals the live ledger; material.inline-style-resolution shrank from 18 to 17. Production web build passed. Privacy summary-runner unit result: Ran 3 tests in 0.323s / OK.

Merged performance contracts now pass: `perf-lint: PASS; 0 violations; 22544 scoped exceptions`. Refreshed 74 existing exact source hashes, replaced one moved module identity with its unique live identity, and refreshed source locations for touched UI files. No new waiver or limit change was added. The ratchet equals the live ledger; material.inline-style-resolution shrank from 18 to 17. Production web build passed. Privacy summary-runner unit result: `Ran 3 tests in 0.323s` / `OK`.
Author
Owner

Web check result (verbatim): svelte-check found 0 errors and 4 warnings in 2 files. Initial full web test result (verbatim): Test Files 1 failed | 296 passed (297) / Tests 1 failed | 2115 passed (2116). The only failure was the #1373 source assertion for the explicit Mail material role classes after selecting the shared Card. Kept the existing expectation and restored those role hooks; added assertions for Card-owned opacity and its default-off prop. Focused result (verbatim): Test Files 1 passed (1) / Tests 83 passed (83). Fix committed as 490f0e977. The complete web suite is running again after this fix. Rust gates continue compiling in the assigned directory.

Web check result (verbatim): `svelte-check found 0 errors and 4 warnings in 2 files`. Initial full web test result (verbatim): `Test Files 1 failed | 296 passed (297)` / `Tests 1 failed | 2115 passed (2116)`. The only failure was the #1373 source assertion for the explicit Mail material role classes after selecting the shared Card. Kept the existing expectation and restored those role hooks; added assertions for Card-owned opacity and its default-off prop. Focused result (verbatim): `Test Files 1 passed (1)` / `Tests 83 passed (83)`. Fix committed as 490f0e977. The complete web suite is running again after this fix. Rust gates continue compiling in the assigned directory.
Author
Owner

Full workspace Clippy passed. Verbatim final line:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s

The log also records three shared sccache shutdown warnings and Cargo's local compiler fallback. These are build-host diagnostics; Clippy returned 0. Money tests and workspace tests are now proceeding. The corrected production web build returned 0.

Full workspace Clippy passed. Verbatim final line: ``` Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s ``` The log also records three shared sccache shutdown warnings and Cargo's local compiler fallback. These are build-host diagnostics; Clippy returned 0. Money tests and workspace tests are now proceeding. The corrected production web build returned 0.
Author
Owner

The corrected source passes web check. Verbatim final result:

svelte-check found 0 errors and 4 warnings in 2 files

The warnings are unused Mail swipe-action selectors and one AI Models selector. The corrected production web build also returned 0. The final origin/dev merge command returned Already up to date.; no newer dev work entered this round.

The corrected source passes web check. Verbatim final result: ``` svelte-check found 0 errors and 4 warnings in 2 files ``` The warnings are unused Mail swipe-action selectors and one AI Models selector. The corrected production web build also returned 0. The final origin/dev merge command returned `Already up to date.`; no newer dev work entered this round.
Author
Owner

Corrected full web test result (verbatim):

 Test Files  297 passed (297)
      Tests  2116 passed (2116)
   Duration  824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%)

Focused merge-resolution finding: the incoming Security/Search history silently changed one existing feature-selector unit expectation to feature_flag_id, while the production #1350 test and route classification still use instance_feature_flag_id. The merged tests demanded both names for the same dictionary value. Restored the production test file byte-for-byte; no expectation differs from the required base. Commit 401f8c8ef. Focused result (verbatim): Ran 20 tests in 0.378s / OK. Live preflights also passed: 429 operations, 1206 generated tools, and 53 reviewed Admin operations.

Corrected full web test result (verbatim): ``` Test Files 297 passed (297) Tests 2116 passed (2116) Duration 824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%) ``` Focused merge-resolution finding: the incoming Security/Search history silently changed one existing feature-selector unit expectation to `feature_flag_id`, while the production #1350 test and route classification still use `instance_feature_flag_id`. The merged tests demanded both names for the same dictionary value. Restored the production test file byte-for-byte; no expectation differs from the required base. Commit 401f8c8ef. Focused result (verbatim): `Ran 20 tests in 0.378s` / `OK`. Live preflights also passed: 429 operations, 1206 generated tools, and 53 reviewed Admin operations.
Author
Owner

Money-specific crate gates passed: cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4 returned 0.

Number property suite (verbatim):

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.12s

Money core unit suite (verbatim):

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

Money plugin unit suite (verbatim):

test tests::durable_import_tests::generated_import_confirm_replay_and_undo_preserve_minor_units ... ok
test result: ok. 124 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 117.48s

Import review (verbatim):

test ynab_csv_preserves_exact_minor_units ... ok
test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 11.56s

All other Money integration and documentation suites also passed. Full workspace tests are compiling. No balance derivation code changed relative to the production base; the accepted Money branch adds integer-unit review coverage and UI import/transaction fixes.

Money-specific crate gates passed: `cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4` returned 0. Number property suite (verbatim): ``` test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.12s ``` Money core unit suite (verbatim): ``` test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s ``` Money plugin unit suite (verbatim): ``` test tests::durable_import_tests::generated_import_confirm_replay_and_undo_preserve_minor_units ... ok test result: ok. 124 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 117.48s ``` Import review (verbatim): ``` test ynab_csv_preserves_exact_minor_units ... ok test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 11.56s ``` All other Money integration and documentation suites also passed. Full workspace tests are compiling. No balance derivation code changed relative to the production base; the accepted Money branch adds integer-unit review coverage and UI import/transaction fixes.
Author
Owner

Evidence update: Tasks phone Matrix captures were empty because the #1286 harness scrolls to the rightmost No Deadline column while its real fixture Tasks have a Later Deadline. I kept all geometry checks and changed capture positioning to bring the designated real Task into view. No application layout or assertion expectation changed. These frames will be recaptured.

Money's first screenshot walk failed when Sharp could not load the host libstdc++.so.6. The frozen install is unchanged; the installed Nix GCC runtime path resolves Sharp. The rerun will use it.

Extra Money number review passed against the merged production UI and real API (verbatim):

PASS the CSV, Money API and every displayed month and Account balance retain exact integer minor units
Evidence update: Tasks phone Matrix captures were empty because the #1286 harness scrolls to the rightmost No Deadline column while its real fixture Tasks have a Later Deadline. I kept all geometry checks and changed capture positioning to bring the designated real Task into view. No application layout or assertion expectation changed. These frames will be recaptured. Money's first screenshot walk failed when Sharp could not load the host libstdc++.so.6. The frozen install is unchanged; the installed Nix GCC runtime path resolves Sharp. The rerun will use it. Extra Money number review passed against the merged production UI and real API (verbatim): ``` PASS the CSV, Money API and every displayed month and Account balance retain exact integer minor units ```
Author
Owner

The first Matrix recapture still hid phone Task cards behind sticky table headers: native scrollIntoView does not account for these headers. The capture helper now positions the Card beyond both sticky headers and checks that its title intersects the unoccluded viewport. This is review tooling only; every original geometry assertion remains. A focused recapture will verify it. The first helper change is committed as 75ed22b36; the correction is a separate atomic step.

Search review's unchanged assertion contradicts the base #1320 accessible Tab stop. Filed #1407; the original run remains recorded as failed. Independent capture tooling will show real indexed Notes and selected-result Pills without claiming that E2E passed.

Quick Look shortcut opening shows an immediate close-button ring. Filed non-blocking cosmetic issue #1406. Capture tooling now restores the first PDF page and retains separate shortcut and pointer frames.

The first Matrix recapture still hid phone Task cards behind sticky table headers: native scrollIntoView does not account for these headers. The capture helper now positions the Card beyond both sticky headers and checks that its title intersects the unoccluded viewport. This is review tooling only; every original geometry assertion remains. A focused recapture will verify it. The first helper change is committed as 75ed22b36; the correction is a separate atomic step. Search review's unchanged assertion contradicts the base #1320 accessible Tab stop. Filed #1407; the original run remains recorded as failed. Independent capture tooling will show real indexed Notes and selected-result Pills without claiming that E2E passed. Quick Look shortcut opening shows an immediate close-button ring. Filed non-blocking cosmetic issue #1406. Capture tooling now restores the first PDF page and retains separate shortcut and pointer frames.
Author
Owner

The full cargo test --workspace -- --test-threads=4 session ended with exit 143 (SIGTERM) before completion, after about one hour including 41m 04s compilation. No failed test is present in its log. Every earlier crate completed. Comparing the Notes unit binary's --list with recorded results identifies exactly one outstanding test: tests::seven_hundred_notes_reconcile_without_feedback.

Per the SLOW-only timeout rule I am rerunning that one test once with --exact. I am also running the Notes Apple replay integration target and the crates not reached by the interrupted workspace command (notifications, Photos, video, Search, server, sync, Tags), then all workspace doc tests. Completed suites are not rerun. Original and resume logs remain separate and will be attached verbatim. This does not convert the original exit 143 into an exit 0.

The full `cargo test --workspace -- --test-threads=4` session ended with exit 143 (SIGTERM) before completion, after about one hour including 41m 04s compilation. No failed test is present in its log. Every earlier crate completed. Comparing the Notes unit binary's `--list` with recorded results identifies exactly one outstanding test: `tests::seven_hundred_notes_reconcile_without_feedback`. Per the SLOW-only timeout rule I am rerunning that one test once with `--exact`. I am also running the Notes Apple replay integration target and the crates not reached by the interrupted workspace command (notifications, Photos, video, Search, server, sync, Tags), then all workspace doc tests. Completed suites are not rerun. Original and resume logs remain separate and will be attached verbatim. This does not convert the original exit 143 into an exit 0.
Author
Owner

Review images are attached at actual CSS pixel size. Each set uses macOS emulation and the real production SPA with real API fixtures. Widths: 390, 820, 1440; both appearances. Claude/orchestrator owns the visual review.

The Shortcut Quick Look frames retain the #1406 focus-ring finding; the pointer frames show the following click state. Phone PDF header occlusion is #1408. Search images were captured independently; the unchanged original review failed under #1407.

Tasks: 390-light-list.png, 390-light-board.png, 390-light-matrix.png, 390-dark-list.png, 390-dark-board.png, 390-dark-matrix.png

Files PDF: pdf-quicklook-390-light.png, pdf-quicklook-390-dark.png, pdf-quicklook-820-light.png, pdf-quicklook-820-dark.png, pdf-quicklook-1440-light.png, pdf-quicklook-1440-dark.png

Mail: paper-light-desktop-morph.png, paper-light-desktop-split.png, paper-light-phone-push.png, paper-light-tablet-morph.png, paper-light-tablet-split.png

Search Pills: search-pills-390-light-click.png, search-pills-390-dark-click.png, search-pills-820-light-click.png, search-pills-820-dark-click.png, search-pills-1440-light-click.png, search-pills-1440-dark-click.png

Review images are attached at actual CSS pixel size. Each set uses macOS emulation and the real production SPA with real API fixtures. Widths: 390, 820, 1440; both appearances. Claude/orchestrator owns the visual review. The Shortcut Quick Look frames retain the #1406 focus-ring finding; the pointer frames show the following click state. Phone PDF header occlusion is #1408. Search images were captured independently; the unchanged original review failed under #1407. Tasks: [390-light-list.png](https://git.kayg.org/attachments/8ace54d5-0f41-4738-93ea-f77ff2d6fe9f), [390-light-board.png](https://git.kayg.org/attachments/c0f0779c-555c-465f-b62c-5e3b0d9b0ab3), [390-light-matrix.png](https://git.kayg.org/attachments/7336e2aa-a79e-4631-8190-e16dbe6ee8b2), [390-dark-list.png](https://git.kayg.org/attachments/31ee8c3f-47b0-425e-8c95-fe415f37b7c1), [390-dark-board.png](https://git.kayg.org/attachments/a36ab9ff-baed-40ca-88ea-277907233104), [390-dark-matrix.png](https://git.kayg.org/attachments/c5efb977-95ba-40f1-bb9b-e750871a4109) Files PDF: [pdf-quicklook-390-light.png](https://git.kayg.org/attachments/e9be076c-8ea5-4287-a132-7912bd7084c6), [pdf-quicklook-390-dark.png](https://git.kayg.org/attachments/3092c598-845d-4c97-a429-091f465cbc3f), [pdf-quicklook-820-light.png](https://git.kayg.org/attachments/32b2224a-d2af-4c6a-9e4c-d2666f03d2ff), [pdf-quicklook-820-dark.png](https://git.kayg.org/attachments/e23ba7a7-581e-4ffd-aacb-78746d697932), [pdf-quicklook-1440-light.png](https://git.kayg.org/attachments/30ddd205-146e-44f1-baea-486dcd480e9b), [pdf-quicklook-1440-dark.png](https://git.kayg.org/attachments/226b3052-dc70-47ed-84ec-44adb55b7db0) Mail: [paper-light-desktop-morph.png](https://git.kayg.org/attachments/8ceb9013-95c2-4e3f-8173-c572e7b99dd5), [paper-light-desktop-split.png](https://git.kayg.org/attachments/0b1ef564-d004-4799-8873-002cdf653348), [paper-light-phone-push.png](https://git.kayg.org/attachments/5d70abe9-ba8d-4877-b891-0a05287c996b), [paper-light-tablet-morph.png](https://git.kayg.org/attachments/77812088-a641-4a1c-a9c3-2f363b8ce4ae), [paper-light-tablet-split.png](https://git.kayg.org/attachments/8e33eafe-768a-4195-9fbb-850949f10f4b) Search Pills: [search-pills-390-light-click.png](https://git.kayg.org/attachments/8b6bab8f-47fd-4f79-9254-bda8a8b331c2), [search-pills-390-dark-click.png](https://git.kayg.org/attachments/d9ca6b14-fc50-4349-9a5e-e437988ce28f), [search-pills-820-light-click.png](https://git.kayg.org/attachments/ee6e14d8-ae5c-4a86-beb0-c25d75b78cb1), [search-pills-820-dark-click.png](https://git.kayg.org/attachments/c674bba3-ef54-4239-a285-86575079d575), [search-pills-1440-light-click.png](https://git.kayg.org/attachments/f15c8ae8-6d27-466a-9b8a-8be5165f6982), [search-pills-1440-dark-click.png](https://git.kayg.org/attachments/b2f4c5e6-6de7-4957-967a-a11d7fc40164)
Author
Owner

Head e381e7b1ec: the sticky-aware Tasks capture fix passed and is committed. The corrected phone Matrix frame contains real visible Task cards. Files capture-position and separate shortcut/pointer proof is committed as 4583cc510. The code comments for Card, Mail material ownership, Search group flow and both capture fixes were re-read.

Exact SLOW-only Notes retry, verbatim:

test tests::seven_hundred_notes_reconcile_without_feedback ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 320 filtered out; finished in 105.50s

Notes Apple replay resume, verbatim:

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.22s

The remaining crate suites and doc tests continue. No failed Rust test has been recorded.

Filed #1410 for the reproducible Money cancellation return failure (two unchanged acceptance runs). A separate camera-only walk reached the populated 820 px budget but timed out creating its next preview; its first preview had been left live when moving between capture contexts. The camera now cancels that ready preview before closing each context. The original Money acceptance file and its expectations are unchanged. Remaining captures will run after the adversarial browser work, one browser at a time.

The single 90-minute adversarial round started at 22:17:48 UTC using the real release server verified as ef0aa12b12. Its Rust runtime source matches this merged branch; the only merged Rust changes are Money tests. Initial classification, native media/document isolation, auth redirect and startup health checks passed.

Head e381e7b1ec57874149db519ccb4773b8114f8297: the sticky-aware Tasks capture fix passed and is committed. The corrected phone Matrix frame contains real visible Task cards. Files capture-position and separate shortcut/pointer proof is committed as 4583cc510. The code comments for Card, Mail material ownership, Search group flow and both capture fixes were re-read. Exact SLOW-only Notes retry, verbatim: ``` test tests::seven_hundred_notes_reconcile_without_feedback ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 320 filtered out; finished in 105.50s ``` Notes Apple replay resume, verbatim: ``` test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.22s ``` The remaining crate suites and doc tests continue. No failed Rust test has been recorded. Filed #1410 for the reproducible Money cancellation return failure (two unchanged acceptance runs). A separate camera-only walk reached the populated 820 px budget but timed out creating its next preview; its first preview had been left live when moving between capture contexts. The camera now cancels that ready preview before closing each context. The original Money acceptance file and its expectations are unchanged. Remaining captures will run after the adversarial browser work, one browser at a time. The single 90-minute adversarial round started at 22:17:48 UTC using the real release server verified as ef0aa12b12e0047cf9a779827cc0ed32261b934e. Its Rust runtime source matches this merged branch; the only merged Rust changes are Money tests. Initial classification, native media/document isolation, auth redirect and startup health checks passed.
Author
Owner

Verification checkpoint at head d395b6e25d.

All recorded Rust unit/integration assertions passed. The first full workspace command was interrupted with exit 143 before the last Notes test. Its one exact retry passed; the missing Notes integration and remaining crate suites passed. The resumed command session also returned 143 after its final Tag suite and six selected-crate doc suites had recorded passing results, before printing the shell status or starting the full workspace doc command. No signal cause is claimed. A separate full workspace doc command completed with exit 0. Both interrupted logs are preserved; no interrupted command is relabelled exit 0.

cargo fmt --check: exit 0, no output.
cargo clippy --workspace --all-targets -- -D warnings: exit 0, final output verbatim:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s

Web build: exit 0, final output verbatim:

Compressed 914 static variants; saved 21511252 bytes.

Web check: exit 0, verbatim:

svelte-check found 0 errors and 4 warnings in 2 files

Full bun run test --maxWorkers=2: exit 0, verbatim:

 Test Files  297 passed (297)
      Tests  2116 passed (2116)
   Duration  824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%)

New non-blocking round findings, with unchanged regression expectations:

  • #1411: NFC filename query passes; equivalent NFD query misses the two uploaded filenames. Both uploaded body sentinels remain searchable.
  • #1412: the Mail attachment Save to Files button is ready, but a selected list row intercepts every real click. This is a hit-testing failure, not SLOW.
  • #1413: editor raw textContent includes an intentionally hidden, aria-hidden block ID. The browser-actions area stops at that assertion; later history/deep-link checks are not claimed passed. Source integrity, concurrent edits, offline reconciliation and restart cases passed separately.

The live round passed 938 cross-User owned-ID/missing-ID comparisons and 122 Job/Mail/quota checks with zero denial failures. It reports 39 identifier routes without a local fixture factory; retain that coverage limit. The planned SIGKILL in Search chaos is the committed crash-recovery handshake, not an unexpected server crash.

Verification checkpoint at head d395b6e25da20d8c67b8b9fc1a593b813939c8a7. All recorded Rust unit/integration assertions passed. The first full workspace command was interrupted with exit 143 before the last Notes test. Its one exact retry passed; the missing Notes integration and remaining crate suites passed. The resumed command session also returned 143 after its final Tag suite and six selected-crate doc suites had recorded passing results, before printing the shell status or starting the full workspace doc command. No signal cause is claimed. A separate full workspace doc command completed with exit 0. Both interrupted logs are preserved; no interrupted command is relabelled exit 0. `cargo fmt --check`: exit 0, no output. `cargo clippy --workspace --all-targets -- -D warnings`: exit 0, final output verbatim: ``` Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s ``` Web build: exit 0, final output verbatim: ``` Compressed 914 static variants; saved 21511252 bytes. ``` Web check: exit 0, verbatim: ``` svelte-check found 0 errors and 4 warnings in 2 files ``` Full `bun run test --maxWorkers=2`: exit 0, verbatim: ``` Test Files 297 passed (297) Tests 2116 passed (2116) Duration 824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%) ``` New non-blocking round findings, with unchanged regression expectations: - #1411: NFC filename query passes; equivalent NFD query misses the two uploaded filenames. Both uploaded body sentinels remain searchable. - #1412: the Mail attachment Save to Files button is ready, but a selected list row intercepts every real click. This is a hit-testing failure, not SLOW. - #1413: editor raw textContent includes an intentionally hidden, aria-hidden block ID. The browser-actions area stops at that assertion; later history/deep-link checks are not claimed passed. Source integrity, concurrent edits, offline reconciliation and restart cases passed separately. The live round passed 938 cross-User owned-ID/missing-ID comparisons and 122 Job/Mail/quota checks with zero denial failures. It reports 39 identifier routes without a local fixture factory; retain that coverage limit. The planned SIGKILL in Search chaos is the committed crash-recovery handshake, not an unexpected server crash.
Author
Owner

Release-round checkpoint, head d395b6e25d. The bounded round is still running; no second matrix round was started.

Filed additional non-blocking findings with unchanged probe expectations:

  • #1415: semantic recall returns no matching result within 120 seconds, with a later same-round read still empty. No model-readiness cause is claimed.
  • #1417: two content-classified PDF Items remain listed without thumbnails after 15 seconds; worker/queue state was not recorded. Native PDF isolation and browser Quick Look checks passed separately.
  • #1418: Calendar owner range omits at least one marker. Cross-User feed rotate/revoke/delete return 403 instead of the probe's 404. Same-round missing-ID comparisons return identical 403 bodies, with no foreign mutation or disclosure observed.

Hostile byte findings=0; video Share bytes matched for the recipient, and non-recipient/missing responses were equal 404. Journal concurrency retained all 46 expected entries. ZIP streaming and analytics storm timings are SLOW-only. Final round exit and remaining coverage will be reported after its completion or 90-minute limit.

Release-round checkpoint, head d395b6e25da20d8c67b8b9fc1a593b813939c8a7. The bounded round is still running; no second matrix round was started. Filed additional non-blocking findings with unchanged probe expectations: - #1415: semantic recall returns no matching result within 120 seconds, with a later same-round read still empty. No model-readiness cause is claimed. - #1417: two content-classified PDF Items remain listed without thumbnails after 15 seconds; worker/queue state was not recorded. Native PDF isolation and browser Quick Look checks passed separately. - #1418: Calendar owner range omits at least one marker. Cross-User feed rotate/revoke/delete return 403 instead of the probe's 404. Same-round missing-ID comparisons return identical 403 bodies, with no foreign mutation or disclosure observed. Hostile byte findings=0; video Share bytes matched for the recipient, and non-recipient/missing responses were equal 404. Journal concurrency retained all 46 expected entries. ZIP streaming and analytics storm timings are SLOW-only. Final round exit and remaining coverage will be reported after its completion or 90-minute limit.
Author
Owner

The single release-server round continues through Dedup crash recovery; the original B/C/D roster was deliberately deleted before Dedup setup created fresh members.

Filed #1420 for timing-only interference during 50,000-file User purge: all 20 unrelated uploads returned 201, p95 23.069 seconds against the existing 2-second assertion. No cause or quiet-host regression is claimed.
Filed #1421 for six late feature-denial status mismatches: security-origin-licence runs after deletion and reuses revoked B/C/D sessions, so it receives 401 rather than authenticated non-Admin 403. No request succeeded or state changed. Keep the expectations and fix fixture ordering in the follow-up.

The completed main round-two process reports 30 findings (including the SLOW ZIP timeout, 19 purge timing entries, four Calendar inconsistencies and six revoked-session status mismatches), plus 14 separate SLOW entries. These are not 30 independently demonstrated security defects. All non-SLOW categories have issue evidence. Server alive at end: True. Remaining Dedup and later runner phases will be reported in the final exit record.

The single release-server round continues through Dedup crash recovery; the original B/C/D roster was deliberately deleted before Dedup setup created fresh members. Filed #1420 for timing-only interference during 50,000-file User purge: all 20 unrelated uploads returned 201, p95 23.069 seconds against the existing 2-second assertion. No cause or quiet-host regression is claimed. Filed #1421 for six late feature-denial status mismatches: security-origin-licence runs after deletion and reuses revoked B/C/D sessions, so it receives 401 rather than authenticated non-Admin 403. No request succeeded or state changed. Keep the expectations and fix fixture ordering in the follow-up. The completed main round-two process reports 30 findings (including the SLOW ZIP timeout, 19 purge timing entries, four Calendar inconsistencies and six revoked-session status mismatches), plus 14 separate SLOW entries. These are not 30 independently demonstrated security defects. All non-SLOW categories have issue evidence. Server alive at end: True. Remaining Dedup and later runner phases will be reported in the final exit record.
Author
Owner

Readiness hold #1422: the unchanged Dedup corruption probe received 202, then remained phase never after 90 seconds. Read-only same-round evidence confirms an affected download returns the injected R bytes, with an intact private sync copy still present. Inode comparison confirms the damaged Home link is still shared with CAS. The scrub is pending, attempts=0, priority=-100, behind 916 thumbnails (902 in a later snapshot); no kind control is paused. Thus repair has not run, rather than a demonstrated failure inside an executed repair handler. Initial guessed digest lookups are not used as missing-blob evidence.

The later Dedup collector did not begin within 120 seconds, so its crash/recovery assertion is not green either. Planned upload/publication SIGKILL barriers are intentional. The full single round remains bounded; final verdict will be NOT READY unless the remaining evidence demonstrates repair and required verification coverage. No background concurrency, priority, threshold or expectation was changed to force a pass.

Readiness hold #1422: the unchanged Dedup corruption probe received 202, then remained phase never after 90 seconds. Read-only same-round evidence confirms an affected download returns the injected R bytes, with an intact private sync copy still present. Inode comparison confirms the damaged Home link is still shared with CAS. The scrub is pending, attempts=0, priority=-100, behind 916 thumbnails (902 in a later snapshot); no kind control is paused. Thus repair has not run, rather than a demonstrated failure inside an executed repair handler. Initial guessed digest lookups are not used as missing-blob evidence. The later Dedup collector did not begin within 120 seconds, so its crash/recovery assertion is not green either. Planned upload/publication SIGKILL barriers are intentional. The full single round remains bounded; final verdict will be NOT READY unless the remaining evidence demonstrates repair and required verification coverage. No background concurrency, priority, threshold or expectation was changed to force a pass.
Author
Owner

Single bounded release-server round completed: 22:17:48–23:24:07 UTC (66m 19s), exit 1. No second full round ran.

Final authorization matrix completed all 3036 requests across 4 base identities, invalid/stale sessions and 21 App Password scope classes. It covered 429 operations, 20 privileged body routes and 53 admin policy routes, with no denial failure reported. The earlier XUser matrix had zero denial failures across 938 owned/missing comparisons and 122 Job/Mail/quota checks.

Dedup remains a readiness hold (#1422): repair phase never, then collection never started; 32 test orphan blobs and named garbage remained. These are 37 related probe findings, not 37 independent repair defects. The upload/publication crash barriers executed, but collection's crash marker did not occur. The probe did not demonstrate repair or collection resume. No threshold, priority or concurrency budget was changed to force a pass.

Additional recorded findings:

  • #1423 Notes IMAP FETCH/structural-base lookup fails, while a read-only diagnostic finds the 182-byte source with both markers and a 200 API list entry. No source loss shown. Notes submission reports 0 findings.
  • #1424 restart probe expects a changed epoch without measuring it; the target has two durable history records and a cached room. The history-enabled production contract resumes lineage. No Markdown duplication, changed body or rebuilt-document mismatch is reported. Keep its original expectations pending review.

NOT READY pending the unresolved Dedup integrity verification and the full-workspace test command exits recorded earlier. The remaining camera-only Money frames are running now; screenshots do not override the original Money/Search acceptance failures.

Single bounded release-server round completed: 22:17:48–23:24:07 UTC (66m 19s), exit 1. No second full round ran. Final authorization matrix completed all 3036 requests across 4 base identities, invalid/stale sessions and 21 App Password scope classes. It covered 429 operations, 20 privileged body routes and 53 admin policy routes, with no denial failure reported. The earlier XUser matrix had zero denial failures across 938 owned/missing comparisons and 122 Job/Mail/quota checks. Dedup remains a readiness hold (#1422): repair phase never, then collection never started; 32 test orphan blobs and named garbage remained. These are 37 related probe findings, not 37 independent repair defects. The upload/publication crash barriers executed, but collection's crash marker did not occur. The probe did not demonstrate repair or collection resume. No threshold, priority or concurrency budget was changed to force a pass. Additional recorded findings: - #1423 Notes IMAP FETCH/structural-base lookup fails, while a read-only diagnostic finds the 182-byte source with both markers and a 200 API list entry. No source loss shown. Notes submission reports 0 findings. - #1424 restart probe expects a changed epoch without measuring it; the target has two durable history records and a cached room. The history-enabled production contract resumes lineage. No Markdown duplication, changed body or rebuilt-document mismatch is reported. Keep its original expectations pending review. NOT READY pending the unresolved Dedup integrity verification and the full-workspace test command exits recorded earlier. The remaining camera-only Money frames are running now; screenshots do not override the original Money/Search acceptance failures.
Author
Owner

NOT READY. The Dedup repair/collection contract was not demonstrated (#1422), and the requested full-workspace test command did not finish with exit 0. The original Money and Search acceptance failures remain unchanged and filed. No promotion action was taken.

Merge round #1403. Branch job/merge34. Exact production base ef0aa12b12. Head d395b6e25d.

Built / integrated

Merged these exact commits, in order, with --no-ff: 9b270ad6f (Notes), 98dc46d05 (Tasks), a6d40efeb (Money), f64aeef85 (Files), 3457d4c9c (Mail), 3f05f7052 (Security), 06a5d6786 (Search). No push, deploy, merge into dev or issue closure. The final origin/dev check equalled the required base; git merge origin/dev returned Already up to date. No later dev changes were merged.

Additional atomic fixes refresh exact existing performance pins, add an opt-in opaque prop to shared Card, retain explicit Mail material role hooks, restore production XUser test expectations, and correct Tasks/Files capture positions. No new dependency, migration or runtime Rust behavior.

Conflict resolutions

  • Notes: retain the production exact-title selector and incoming reasoning comment.
  • Tasks: retain base Notes performance pins; combine TagPill truncate documentation. Refresh only exact hashes, moved symbol lines and live counts. No waiver added or ceiling raised.
  • Money: retain production Check groups controls, canonical return route, cancellation helper, label checkbox clicks and form-scoped Add account; retain the incoming slow Blob header-race test.
  • Files: combine the Photos usage comment.
  • Mail: retain the production Card wrapper. Card owns optional opacity (default false), while explicit overlay/opaque role classes continue to satisfy the unchanged theme regression. Keep both fixture comments about image preparation and delivery.
  • Security: retain one production image-proxy phase, instance_feature_flag_id and unread isolation checks.
  • Search: retain data-toast-dock, the named keyboard results scroller tabindex=0 (#1320), the accessible plain count (#1331), and Files consume-once storm cleanup; combine the incoming action-row variables and heading flow.
  • Restore tests/adversarial/test_xuser_classification.py byte-for-byte from the production base after an automatic merge reverted three expectations. Its 20 tests pass. No existing test expectation was weakened.

Gate evidence

Verification checkpoint at head d395b6e25d.

All recorded Rust unit/integration assertions passed. The first full workspace command was interrupted with exit 143 before the last Notes test. Its one exact retry passed; the missing Notes integration and remaining crate suites passed. The resumed command session also returned 143 after its final Tag suite and six selected-crate doc suites had recorded passing results, before printing the shell status or starting the full workspace doc command. No signal cause is claimed. A separate full workspace doc command completed with exit 0. Both interrupted logs are preserved; no interrupted command is relabelled exit 0.

cargo fmt --check: exit 0, no output.
cargo clippy --workspace --all-targets -- -D warnings: exit 0, final output verbatim:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s

Web build: exit 0, final output verbatim:

Compressed 914 static variants; saved 21511252 bytes.

Web check: exit 0, verbatim:

svelte-check found 0 errors and 4 warnings in 2 files

Full bun run test --maxWorkers=2: exit 0, verbatim:

 Test Files  297 passed (297)
      Tests  2116 passed (2116)
   Duration  824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%)

Extra Money number review

Money-specific crate gates passed: cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4 returned 0.

Number property suite (verbatim):

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.12s

Money core unit suite (verbatim):

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

Money plugin unit suite (verbatim):

test tests::durable_import_tests::generated_import_confirm_replay_and_undo_preserve_minor_units ... ok
test result: ok. 124 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 117.48s

Import review (verbatim):

test ynab_csv_preserves_exact_minor_units ... ok
test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 11.56s

Notes exact retry and continuation, verbatim:

test tests::seven_hundred_notes_reconcile_without_feedback ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 320 filtered out; finished in 105.50s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.22s
workspace doc tests exit=0

The original command was cargo test --workspace -- --test-threads=4. It returned 143, with no failed assertion recorded. One exact Notes retry passed. Notes apple_replay integration and notifications/photos/video/search/server/sync/tags suites completed their recorded assertions. The continuation session returned 143 after those results; a separate full workspace doc command returned 0. This is assertion coverage across runs, not a zero exit from the requested full-workspace command. Complete verbatim logs are retained and attached.

Bounded adversarial round (one run, real local release server)

22:17:48–23:24:07 UTC: 66m 19s, exit 1, within the 90-minute limit. Runtime /healthz identified ef0aa12b12. Merged Rust runtime source matches it; the SPA is the merged production build via the explicit asset override. No repeated full round.

The early XUser matrix passed 938 owned-ID/missing-ID comparisons and 122 Job/Mail/quota checks with zero denial failures; 39 identifier routes lack local fixture factories. The final authorization matrix completed 3036 requests over 429 operations, 4 base identities, invalid/stale sessions, 21 App Password scope classes and 20 privileged body routes. Policy classes: public 21, public_link 12, user 343, admin 53. No denial failure was reported.

The main round-two process has 30 findings, plus 14 separate SLOW entries. The Dedup process has 37 related repair/collection findings, plus 4 SLOW entries. The latter includes 32 uncleared orphan blobs and named test garbage, with phase never: the collector did not start, so the third Dedup crash marker was absent. Upload/publication crash barriers executed intentionally. No repair execution or collection resume is claimed. Other intentional SIGKILLs are the committed Search and room-restart handshakes, not unexpected crash findings.

Hostile byte findings=0; native media/document isolation passed. Video Share recipient bytes matched, and non-recipient/missing denials were equal 404. Journal concurrency retained all 46 expected entries. Money hostile/import ownership, durable cancellation/publication receipts, Undo and integer-unit browser review passed independently. Notes submission reports 0 findings. Notes IMAP and room restart findings are described in #1423/#1424 below; no source loss or duplicated Markdown is demonstrated by those diagnostics. All non-SLOW categories are filed. No pending worker poll is promoted to a passing content assertion.

Screenshots and shared controls

Real production SPA, real API fixtures, macOS emulation, actual CSS size. Primary sets use 390, 820 and 1440 px, light and dark. Review belongs to the orchestrator; captures are attached without a visual-quality approval claim. All 72 primary frames are attached. The final Money camera-only run returned 0 and captured populated budget, import form and review for all six width/theme combinations; it does not replace the failed cancellation-return assertion. Actual-size frames and 4x metric crops were inspected for the required technical alignment check.

Tasks uses Card, Checkbox, Pill, StatusPill and TagPill; the shared TagPill truncate prop handles compact cards. List/Board/Matrix capture assertions pass with visible real Tasks, including the phone Matrix beyond its sticky headers. Files uses the existing Quick Look/PdfView and shared IconButton/Pill controls; first-page pointer and shortcut proof, text/link/lazy/image-only PDF tests, Escape and reduced-motion cases pass. Mail uses Card overlay with shared opaque ownership, Pill/PillGroup and ProgressiveBlur. Morph/Split/phone reader captures pass. Search uses Pill/PillGroup/Kbd/ProgressiveBlur and SearchGroupHeading. Its independent camera asserts loaded rows and captures shortcut/click states; it does not replace the failed original acceptance assertion. Money uses the existing budget/import controls; integer-unit browser review passes. Its original cancellation-return acceptance assertion fails and remains unchanged.

UX gaps closed

  • Shared Mail opacity now has a documented owner and retains the existing role-hook contract.
  • Tasks phone Matrix evidence contains real visible Task titles beyond sticky headers.
  • Files captures wait for first-page rendering and retain separate shortcut/click states.
  • Search captures contain real loaded rows in all modes and do not hide the existing named keyboard Tab stop.

Known gaps / UX gaps left

  • #1422 holds readiness: after intentional out-of-band CAS damage and a 202 scrub trigger, status remains never. A real download returns the injected R bytes; the intact private source remains distinct. The scrub is pending with zero attempts behind 916 (later 902) thumbnail jobs. The later collector also did not begin within its probe window. No repair execution is claimed, and no queue scheduling behavior was changed in this round. The inode-based diagnostic is valid; initial guessed digest lookups were not evidence of a missing CAS blob.
  • #1406: Quick Look shortcut opening shows a Close focus ring before Tab/arrow navigation.
  • #1407: unchanged Search acceptance expects no tabindex, against the production named keyboard scroll region.
  • #1408: floating phone PDF header obscures the first text line; lower first-page text is visible.
  • #1410: Money preview cancellation returns 204 and closes the wizard, but the budget view does not restore at /money in the acceptance run. No source loss shown.
  • #1411: equivalent NFD filename query misses two uploaded filenames; NFC and uploaded body searches pass.
  • #1412: Mail Save to Files attachment button is intercepted by the selected list row during real clicks.
  • #1413: editor browser-actions raw textContent assertion includes a deliberately hidden block anchor; subsequent browser history/deep-link assertions in that area are unverified. Integrity/concurrency/offline/restart cases pass separately.
  • #1415: semantic recall has no matching result within 120 seconds; model readiness/queue state was not recorded.
  • #1417: valid PDF Items remain listed without derived thumbnails after the probe's 15-second polling window; queue/renderer cause is unproved.
  • #1418: Calendar owner range lacks at least one fixture marker; cross-User feed mutations return 403 instead of expected 404. Missing IDs return the identical 403 body, so no existence disclosure is demonstrated.
  • #1420: unrelated uploads during a 50,000-file User purge all return 201, but local p95 is 23.069 seconds against the existing 2-second limit. Timing-only finding; no cause or quiet-host baseline regression is claimed.
  • #1421: the late feature-flag denial probe reuses deleted B/C/D sessions, receiving 401 instead of authenticated non-Admin 403. Requests are denied and state is unchanged; this phase does not prove the latter contract.
  • #1423: Notes IMAP FETCH cannot locate the appended body/structural MIME base. A same-round diagnostic finds the 182-byte Markdown with both markers and a 200 Notes listing containing it. No source loss is shown; structural/serial/active-HTML edit assertions in this probe are skipped. Notes submission has zero findings.
  • #1424: restart probe expects a new epoch after a crash but the Note has durable history (two records and one cached room). No changed/duplicated Markdown or rebuilt-doc mismatch is reported. Pre/post epoch IDs were not measured, so its text does not prove a cross-epoch sync. Preserve the assertion and verify both contracts in the follow-up.
  • Eight Notes preview worker polls remain pending at 45–46 seconds; this phase reports SLOW and does not prove the later content checks.
  • Web check has four unused-selector warnings in two files. Rust ignored-test counts remain unchanged. XUser matrix has 39 identifier routes without local fixture factories.

Decisions

  • Reuse the verified production release artifact for the adversarial round because merged Rust runtime sources are identical to the required production base; runtime changes are confined to the web build, served through the explicit asset override.
  • Add Card opaque as an opt-in boolean, default false, following the existing shared FloatingSurface material pattern. Preserve explicit Mail role classes because the existing theme assertion requires them.
  • Preserve both the production Search keyboard scroll behavior and the unchanged acceptance assertion; report their conflict instead of changing an expectation.
  • Resume missing test suites after two unexplained command-session SIGTERM exits, keep both nonzero exits in the report, and run the one exact Notes retry only once.
  • Fix capture positioning around existing sticky/floating chrome; do not change application layout to obtain evidence.
  • File non-blocking round findings with their evidence and existing regression locations. Do not assume a queue miss is only load or label it SLOW without proof.

Performance / expected cost

No new runtime operation was added by the merge-round fixes. Card opacity is a static class, and capture corrections run only in test scripts. Incoming Tasks profile and bounded-window work remain intact. Adversarial latency diagnostics are local shared-host measurements, not perf-VM baseline comparisons: Search burst p50 493.2 ms / p95 1172.0 ms, Journal n=20 p50 72.5 ms / p95 81.8 ms. The ZIP stream and analytics storm are reported as SLOW. No regression threshold was raised.

Files (all changes relative to production base)

apps/web/e2e/deeplinks.mjs
apps/web/e2e/files.mjs
apps/web/e2e/mailglass-1373.mjs
apps/web/e2e/money-number-review.mjs
apps/web/e2e/money-wizard-1140.mjs
apps/web/e2e/money.mjs
apps/web/e2e/notes-title-1216.mjs
apps/web/e2e/photos.mjs
apps/web/e2e/search.mjs
apps/web/e2e/tasks-perf.mjs
apps/web/e2e/tasksperf-1286.mjs
apps/web/package.json
apps/web/src/calternal-app.css
apps/web/src/lib/components/TagPill.svelte.test.ts
apps/web/src/lib/components/money/MoneyImport.svelte
apps/web/src/lib/components/money/TransactionForm.svelte
apps/web/src/lib/components/money/TransactionForm.svelte.test.ts
apps/web/src/lib/components/search-dialog.svelte
apps/web/src/lib/mail/MailMorphCard.svelte
apps/web/src/lib/money/import-session.svelte.test.ts
apps/web/src/lib/money/import-session.svelte.ts
apps/web/src/lib/search/SearchGroupHeading.svelte
apps/web/src/lib/search/SearchPreview.svelte
apps/web/src/lib/search/SearchPreview.svelte.test.ts
apps/web/src/lib/tasks/TaskBoard.svelte
apps/web/src/lib/tasks/TaskCard.svelte
apps/web/src/lib/tasks/TaskColumn.svelte
apps/web/src/lib/tasks/TaskList.svelte
apps/web/src/lib/tasks/TaskList.svelte.test.ts
apps/web/src/lib/tasks/TaskMatrix.svelte
apps/web/src/lib/tasks/TaskMatrix.svelte.test.ts
apps/web/src/lib/tasks/TasksSidebar.svelte
apps/web/src/lib/tasks/TasksWorkspace.svelte
apps/web/src/lib/tasks/api.test.ts
apps/web/src/lib/tasks/api.ts
apps/web/src/lib/tasks/index.svelte.ts
apps/web/src/lib/tasks/task-virtual.test.ts
apps/web/src/lib/tasks/task-virtual.ts
apps/web/src/lib/themes.test.ts
bench/tasks-ui/README.md
contracts/perf/adoption-1058.json
contracts/perf/exceptions.json
contracts/perf/ratchet.json
contracts/perf/registry.json
crates/plugins/money/src/durable_import_tests.rs
crates/plugins/money/tests/import_review.rs
docs/DESIGN.md
docs/perf/baseline.json
packages/ui/README.md
packages/ui/src/components/Card.svelte
packages/ui/src/components/TagPill.svelte
packages/ui/src/components/menu/FloatingSurface.svelte
packages/ui/src/components/viewer/PdfView.svelte
packages/ui/src/components/viewer/QuickLook.svelte
packages/ui/src/tokens.css
tests/adversarial/mail_screenshot_fixture.py
tests/adversarial/run.sh
tests/adversarial/summary_probe.py
tests/adversarial/test_summary_probe.py

Evidence

Complete verbatim gate logs and command exits. Bounded adversarial log, exit timestamps and read-only diagnostics.

Money camera exit/log, image dimensions, release build identity and 4x metric crops.

Money populated frames (all other 54 primary frames are attached and linked in the earlier evidence comment):

Cleanup

cargo clean returned 0. Verbatim:

     Removed 22528 files, 31.4GiB total

Removed apps/web/build, apps/web/.svelte-kit/output, temporary test data and the copied release executable. Retained review artifacts. No artifacts were committed. All changed module comments were re-read. The working tree is clean.

Remaining work before promotion: demonstrate #1422 repair/quarantine/per-path recovery and collection resume on a real release server; obtain an uninterrupted required workspace-test exit; resolve the filed acceptance/probe contract gaps without weakening expectations. No shared worker priority/concurrency design was changed to force a pass.

NOT READY d395b6e25d

NOT READY. The Dedup repair/collection contract was not demonstrated (#1422), and the requested full-workspace test command did not finish with exit 0. The original Money and Search acceptance failures remain unchanged and filed. No promotion action was taken. Merge round #1403. Branch job/merge34. Exact production base ef0aa12b12e0047cf9a779827cc0ed32261b934e. Head d395b6e25da20d8c67b8b9fc1a593b813939c8a7. Built / integrated Merged these exact commits, in order, with --no-ff: 9b270ad6f (Notes), 98dc46d05 (Tasks), a6d40efeb (Money), f64aeef85 (Files), 3457d4c9c (Mail), 3f05f7052 (Security), 06a5d6786 (Search). No push, deploy, merge into dev or issue closure. The final origin/dev check equalled the required base; git merge origin/dev returned Already up to date. No later dev changes were merged. Additional atomic fixes refresh exact existing performance pins, add an opt-in opaque prop to shared Card, retain explicit Mail material role hooks, restore production XUser test expectations, and correct Tasks/Files capture positions. No new dependency, migration or runtime Rust behavior. Conflict resolutions - Notes: retain the production exact-title selector and incoming reasoning comment. - Tasks: retain base Notes performance pins; combine TagPill truncate documentation. Refresh only exact hashes, moved symbol lines and live counts. No waiver added or ceiling raised. - Money: retain production Check groups controls, canonical return route, cancellation helper, label checkbox clicks and form-scoped Add account; retain the incoming slow Blob header-race test. - Files: combine the Photos usage comment. - Mail: retain the production Card wrapper. Card owns optional opacity (default false), while explicit overlay/opaque role classes continue to satisfy the unchanged theme regression. Keep both fixture comments about image preparation and delivery. - Security: retain one production image-proxy phase, instance_feature_flag_id and unread isolation checks. - Search: retain data-toast-dock, the named keyboard results scroller tabindex=0 (#1320), the accessible plain count (#1331), and Files consume-once storm cleanup; combine the incoming action-row variables and heading flow. - Restore tests/adversarial/test_xuser_classification.py byte-for-byte from the production base after an automatic merge reverted three expectations. Its 20 tests pass. No existing test expectation was weakened. Gate evidence Verification checkpoint at head d395b6e25da20d8c67b8b9fc1a593b813939c8a7. All recorded Rust unit/integration assertions passed. The first full workspace command was interrupted with exit 143 before the last Notes test. Its one exact retry passed; the missing Notes integration and remaining crate suites passed. The resumed command session also returned 143 after its final Tag suite and six selected-crate doc suites had recorded passing results, before printing the shell status or starting the full workspace doc command. No signal cause is claimed. A separate full workspace doc command completed with exit 0. Both interrupted logs are preserved; no interrupted command is relabelled exit 0. `cargo fmt --check`: exit 0, no output. `cargo clippy --workspace --all-targets -- -D warnings`: exit 0, final output verbatim: ``` Finished `dev` profile [unoptimized + debuginfo] target(s) in 21m 30s ``` Web build: exit 0, final output verbatim: ``` Compressed 914 static variants; saved 21511252 bytes. ``` Web check: exit 0, verbatim: ``` svelte-check found 0 errors and 4 warnings in 2 files ``` Full `bun run test --maxWorkers=2`: exit 0, verbatim: ``` Test Files 297 passed (297) Tests 2116 passed (2116) Duration 824.44s (transform 34%, environment 23%, import 22%, tests 15%, setup 6%) ``` Extra Money number review Money-specific crate gates passed: `cargo test -p calternal-money -p calternal-plugin-money -- --test-threads=4` returned 0. Number property suite (verbatim): ``` test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.12s ``` Money core unit suite (verbatim): ``` test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s ``` Money plugin unit suite (verbatim): ``` test tests::durable_import_tests::generated_import_confirm_replay_and_undo_preserve_minor_units ... ok test result: ok. 124 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 117.48s ``` Import review (verbatim): ``` test ynab_csv_preserves_exact_minor_units ... ok test result: ok. 29 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 11.56s ``` Notes exact retry and continuation, verbatim: ``` test tests::seven_hundred_notes_reconcile_without_feedback ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 320 filtered out; finished in 105.50s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.22s workspace doc tests exit=0 ``` The original command was cargo test --workspace -- --test-threads=4. It returned 143, with no failed assertion recorded. One exact Notes retry passed. Notes apple_replay integration and notifications/photos/video/search/server/sync/tags suites completed their recorded assertions. The continuation session returned 143 after those results; a separate full workspace doc command returned 0. This is assertion coverage across runs, not a zero exit from the requested full-workspace command. Complete verbatim logs are retained and attached. Bounded adversarial round (one run, real local release server) 22:17:48–23:24:07 UTC: 66m 19s, exit 1, within the 90-minute limit. Runtime /healthz identified ef0aa12b12e0047cf9a779827cc0ed32261b934e. Merged Rust runtime source matches it; the SPA is the merged production build via the explicit asset override. No repeated full round. The early XUser matrix passed 938 owned-ID/missing-ID comparisons and 122 Job/Mail/quota checks with zero denial failures; 39 identifier routes lack local fixture factories. The final authorization matrix completed 3036 requests over 429 operations, 4 base identities, invalid/stale sessions, 21 App Password scope classes and 20 privileged body routes. Policy classes: public 21, public_link 12, user 343, admin 53. No denial failure was reported. The main round-two process has 30 findings, plus 14 separate SLOW entries. The Dedup process has 37 related repair/collection findings, plus 4 SLOW entries. The latter includes 32 uncleared orphan blobs and named test garbage, with phase never: the collector did not start, so the third Dedup crash marker was absent. Upload/publication crash barriers executed intentionally. No repair execution or collection resume is claimed. Other intentional SIGKILLs are the committed Search and room-restart handshakes, not unexpected crash findings. Hostile byte findings=0; native media/document isolation passed. Video Share recipient bytes matched, and non-recipient/missing denials were equal 404. Journal concurrency retained all 46 expected entries. Money hostile/import ownership, durable cancellation/publication receipts, Undo and integer-unit browser review passed independently. Notes submission reports 0 findings. Notes IMAP and room restart findings are described in #1423/#1424 below; no source loss or duplicated Markdown is demonstrated by those diagnostics. All non-SLOW categories are filed. No pending worker poll is promoted to a passing content assertion. Screenshots and shared controls Real production SPA, real API fixtures, macOS emulation, actual CSS size. Primary sets use 390, 820 and 1440 px, light and dark. Review belongs to the orchestrator; captures are attached without a visual-quality approval claim. All 72 primary frames are attached. The final Money camera-only run returned 0 and captured populated budget, import form and review for all six width/theme combinations; it does not replace the failed cancellation-return assertion. Actual-size frames and 4x metric crops were inspected for the required technical alignment check. Tasks uses Card, Checkbox, Pill, StatusPill and TagPill; the shared TagPill truncate prop handles compact cards. List/Board/Matrix capture assertions pass with visible real Tasks, including the phone Matrix beyond its sticky headers. Files uses the existing Quick Look/PdfView and shared IconButton/Pill controls; first-page pointer and shortcut proof, text/link/lazy/image-only PDF tests, Escape and reduced-motion cases pass. Mail uses Card overlay with shared opaque ownership, Pill/PillGroup and ProgressiveBlur. Morph/Split/phone reader captures pass. Search uses Pill/PillGroup/Kbd/ProgressiveBlur and SearchGroupHeading. Its independent camera asserts loaded rows and captures shortcut/click states; it does not replace the failed original acceptance assertion. Money uses the existing budget/import controls; integer-unit browser review passes. Its original cancellation-return acceptance assertion fails and remains unchanged. UX gaps closed - Shared Mail opacity now has a documented owner and retains the existing role-hook contract. - Tasks phone Matrix evidence contains real visible Task titles beyond sticky headers. - Files captures wait for first-page rendering and retain separate shortcut/click states. - Search captures contain real loaded rows in all modes and do not hide the existing named keyboard Tab stop. Known gaps / UX gaps left - #1422 holds readiness: after intentional out-of-band CAS damage and a 202 scrub trigger, status remains never. A real download returns the injected R bytes; the intact private source remains distinct. The scrub is pending with zero attempts behind 916 (later 902) thumbnail jobs. The later collector also did not begin within its probe window. No repair execution is claimed, and no queue scheduling behavior was changed in this round. The inode-based diagnostic is valid; initial guessed digest lookups were not evidence of a missing CAS blob. - #1406: Quick Look shortcut opening shows a Close focus ring before Tab/arrow navigation. - #1407: unchanged Search acceptance expects no tabindex, against the production named keyboard scroll region. - #1408: floating phone PDF header obscures the first text line; lower first-page text is visible. - #1410: Money preview cancellation returns 204 and closes the wizard, but the budget view does not restore at /money in the acceptance run. No source loss shown. - #1411: equivalent NFD filename query misses two uploaded filenames; NFC and uploaded body searches pass. - #1412: Mail Save to Files attachment button is intercepted by the selected list row during real clicks. - #1413: editor browser-actions raw textContent assertion includes a deliberately hidden block anchor; subsequent browser history/deep-link assertions in that area are unverified. Integrity/concurrency/offline/restart cases pass separately. - #1415: semantic recall has no matching result within 120 seconds; model readiness/queue state was not recorded. - #1417: valid PDF Items remain listed without derived thumbnails after the probe's 15-second polling window; queue/renderer cause is unproved. - #1418: Calendar owner range lacks at least one fixture marker; cross-User feed mutations return 403 instead of expected 404. Missing IDs return the identical 403 body, so no existence disclosure is demonstrated. - #1420: unrelated uploads during a 50,000-file User purge all return 201, but local p95 is 23.069 seconds against the existing 2-second limit. Timing-only finding; no cause or quiet-host baseline regression is claimed. - #1421: the late feature-flag denial probe reuses deleted B/C/D sessions, receiving 401 instead of authenticated non-Admin 403. Requests are denied and state is unchanged; this phase does not prove the latter contract. - #1423: Notes IMAP FETCH cannot locate the appended body/structural MIME base. A same-round diagnostic finds the 182-byte Markdown with both markers and a 200 Notes listing containing it. No source loss is shown; structural/serial/active-HTML edit assertions in this probe are skipped. Notes submission has zero findings. - #1424: restart probe expects a new epoch after a crash but the Note has durable history (two records and one cached room). No changed/duplicated Markdown or rebuilt-doc mismatch is reported. Pre/post epoch IDs were not measured, so its text does not prove a cross-epoch sync. Preserve the assertion and verify both contracts in the follow-up. - Eight Notes preview worker polls remain pending at 45–46 seconds; this phase reports SLOW and does not prove the later content checks. - Web check has four unused-selector warnings in two files. Rust ignored-test counts remain unchanged. XUser matrix has 39 identifier routes without local fixture factories. Decisions - Reuse the verified production release artifact for the adversarial round because merged Rust runtime sources are identical to the required production base; runtime changes are confined to the web build, served through the explicit asset override. - Add Card opaque as an opt-in boolean, default false, following the existing shared FloatingSurface material pattern. Preserve explicit Mail role classes because the existing theme assertion requires them. - Preserve both the production Search keyboard scroll behavior and the unchanged acceptance assertion; report their conflict instead of changing an expectation. - Resume missing test suites after two unexplained command-session SIGTERM exits, keep both nonzero exits in the report, and run the one exact Notes retry only once. - Fix capture positioning around existing sticky/floating chrome; do not change application layout to obtain evidence. - File non-blocking round findings with their evidence and existing regression locations. Do not assume a queue miss is only load or label it SLOW without proof. Performance / expected cost No new runtime operation was added by the merge-round fixes. Card opacity is a static class, and capture corrections run only in test scripts. Incoming Tasks profile and bounded-window work remain intact. Adversarial latency diagnostics are local shared-host measurements, not perf-VM baseline comparisons: Search burst p50 493.2 ms / p95 1172.0 ms, Journal n=20 p50 72.5 ms / p95 81.8 ms. The ZIP stream and analytics storm are reported as SLOW. No regression threshold was raised. Files (all changes relative to production base) ``` apps/web/e2e/deeplinks.mjs apps/web/e2e/files.mjs apps/web/e2e/mailglass-1373.mjs apps/web/e2e/money-number-review.mjs apps/web/e2e/money-wizard-1140.mjs apps/web/e2e/money.mjs apps/web/e2e/notes-title-1216.mjs apps/web/e2e/photos.mjs apps/web/e2e/search.mjs apps/web/e2e/tasks-perf.mjs apps/web/e2e/tasksperf-1286.mjs apps/web/package.json apps/web/src/calternal-app.css apps/web/src/lib/components/TagPill.svelte.test.ts apps/web/src/lib/components/money/MoneyImport.svelte apps/web/src/lib/components/money/TransactionForm.svelte apps/web/src/lib/components/money/TransactionForm.svelte.test.ts apps/web/src/lib/components/search-dialog.svelte apps/web/src/lib/mail/MailMorphCard.svelte apps/web/src/lib/money/import-session.svelte.test.ts apps/web/src/lib/money/import-session.svelte.ts apps/web/src/lib/search/SearchGroupHeading.svelte apps/web/src/lib/search/SearchPreview.svelte apps/web/src/lib/search/SearchPreview.svelte.test.ts apps/web/src/lib/tasks/TaskBoard.svelte apps/web/src/lib/tasks/TaskCard.svelte apps/web/src/lib/tasks/TaskColumn.svelte apps/web/src/lib/tasks/TaskList.svelte apps/web/src/lib/tasks/TaskList.svelte.test.ts apps/web/src/lib/tasks/TaskMatrix.svelte apps/web/src/lib/tasks/TaskMatrix.svelte.test.ts apps/web/src/lib/tasks/TasksSidebar.svelte apps/web/src/lib/tasks/TasksWorkspace.svelte apps/web/src/lib/tasks/api.test.ts apps/web/src/lib/tasks/api.ts apps/web/src/lib/tasks/index.svelte.ts apps/web/src/lib/tasks/task-virtual.test.ts apps/web/src/lib/tasks/task-virtual.ts apps/web/src/lib/themes.test.ts bench/tasks-ui/README.md contracts/perf/adoption-1058.json contracts/perf/exceptions.json contracts/perf/ratchet.json contracts/perf/registry.json crates/plugins/money/src/durable_import_tests.rs crates/plugins/money/tests/import_review.rs docs/DESIGN.md docs/perf/baseline.json packages/ui/README.md packages/ui/src/components/Card.svelte packages/ui/src/components/TagPill.svelte packages/ui/src/components/menu/FloatingSurface.svelte packages/ui/src/components/viewer/PdfView.svelte packages/ui/src/components/viewer/QuickLook.svelte packages/ui/src/tokens.css tests/adversarial/mail_screenshot_fixture.py tests/adversarial/run.sh tests/adversarial/summary_probe.py tests/adversarial/test_summary_probe.py ``` Evidence [Complete verbatim gate logs and command exits](https://git.kayg.org/attachments/e9de0bbe-505e-44b8-8b39-6d094d54c1ce). [Bounded adversarial log, exit timestamps and read-only diagnostics](https://git.kayg.org/attachments/5634a88b-8435-4bc9-97c2-e583b26a4ab5). [Money camera exit/log, image dimensions, release build identity and 4x metric crops](https://git.kayg.org/attachments/ea161269-639d-42a3-9fed-fc31b4d7ae74). Money populated frames (all other 54 primary frames are attached and linked in the earlier evidence comment): - [money-budget-light-390.png](https://git.kayg.org/attachments/11a174da-e25c-4d9a-a267-b199eacb1bb6) - [money-budget-light-820.png](https://git.kayg.org/attachments/77be4b56-afb9-436f-a0a0-7171397732db) - [money-budget-light-1440.png](https://git.kayg.org/attachments/9ae42eaf-72fc-421d-9111-0c4155029e37) - [money-budget-dark-390.png](https://git.kayg.org/attachments/83895181-0e1c-4b69-90f8-981a5f8eeb48) - [money-budget-dark-820.png](https://git.kayg.org/attachments/3fa07014-4005-48e6-b6af-aac262a4d824) - [money-budget-dark-1440.png](https://git.kayg.org/attachments/ab0d1538-8301-4bda-9d2d-e0f2dd0aa3c1) - [money-budget-import-form-light-390.png](https://git.kayg.org/attachments/1ea35f5c-b4f1-4503-81d4-2e4c82f9d91a) - [money-budget-import-form-light-820.png](https://git.kayg.org/attachments/baa15190-d202-4cf9-8ab8-20b915288ee4) - [money-budget-import-form-light-1440.png](https://git.kayg.org/attachments/734164be-0797-4948-84c7-705744b0a10a) - [money-budget-import-form-dark-390.png](https://git.kayg.org/attachments/deb05b34-200a-4293-8ee6-0f74e61f315a) - [money-budget-import-form-dark-820.png](https://git.kayg.org/attachments/0078e493-4a77-4f55-833d-f4e0ccc001e8) - [money-budget-import-form-dark-1440.png](https://git.kayg.org/attachments/27529b0f-25c2-4cf6-86ca-2b81ae4d3b42) - [money-budget-import-review-light-390.png](https://git.kayg.org/attachments/92c9202e-8bb5-4ea2-b167-fe8d07c1cf37) - [money-budget-import-review-light-820.png](https://git.kayg.org/attachments/cd5dcd95-beac-4f1e-a891-6f3e3a12ec2f) - [money-budget-import-review-light-1440.png](https://git.kayg.org/attachments/bc838a90-ba8c-4b63-a4b8-331d43c0ec06) - [money-budget-import-review-dark-390.png](https://git.kayg.org/attachments/3ca656d0-9e51-4159-9fbf-ef9a64535ea4) - [money-budget-import-review-dark-820.png](https://git.kayg.org/attachments/c3021520-b55c-4e0f-9190-70d80e6c5b97) - [money-budget-import-review-dark-1440.png](https://git.kayg.org/attachments/75227743-790d-4399-9c1b-f7bc7c43c96d) Cleanup cargo clean returned 0. Verbatim: ``` Removed 22528 files, 31.4GiB total ``` Removed apps/web/build, apps/web/.svelte-kit/output, temporary test data and the copied release executable. Retained review artifacts. No artifacts were committed. All changed module comments were re-read. The working tree is clean. Remaining work before promotion: demonstrate #1422 repair/quarantine/per-path recovery and collection resume on a real release server; obtain an uninterrupted required workspace-test exit; resolve the filed acceptance/probe contract gaps without weakening expectations. No shared worker priority/concurrency design was changed to force a pass. NOT READY d395b6e25da20d8c67b8b9fc1a593b813939c8a7
Author
Owner

Deployed to calternal.cloud in merge round 34 (d395b6e25), 2026-10-08 05:03 IST. Backup: /srv/calternal/backup-pre-m34-20261008-0132. Production healthy after 36 s; served build matches.

Deployed to calternal.cloud in merge round 34 (d395b6e25), 2026-10-08 05:03 IST. Backup: /srv/calternal/backup-pre-m34-20261008-0132. Production healthy after 36 s; served build matches.
kayg closed this issue 2026-10-07 23:54:26 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1403
No description provided.