Files
meeting-assistant/openspec/changes/complete-macos-feature-parity/review-receipts/dry.md
T
dh 728e66dd72
PR and Push Build/Test / windows-build-and-test (push) Failing after 38m25s
PR and Push Build/Test / portable-build-and-test (push) Successful in 8m9s
PR and Push Build/Test / macos-native-full (push) Skipped
ci: consolidate platform pipelines and test prerequisites on macOS support
2026-10-06 09:02:19 +02:00

53 lines
7.1 KiB
Markdown

# DRY review receipt — Ticket 01
Reviewer: independent `/root/review_dry`; read-only review, 2026-10-03.
## Scope identity
- Repository: `/private/tmp/meeting-ticket01-closeout` (Git root confirmed).
- Base: `1b19b08f2e62398661dc24692ce4b776e90e715f`.
- Fixed initial diff: `/private/tmp/meeting-ticket01-review.diff`, SHA-256 `af701f7d01f0a7191d27bbd5c6ab614650a9915f2e496da3b295371c86590ffa`.
- Scoped paths: `/private/tmp/meeting-ticket01-review-files.txt`, SHA-256 `f59d9c9c6d1905b25d9b2ccfd1845eef03501dccbc0f275d5351bd816bce2eea`.
- Final candidate: `/private/tmp/meeting-ticket01-review-final.diff`, SHA-256 `40c69e017e5047b0d59348d22ec879122a9f6d02f4f232843847e8fdefe98dac`.
- Current content manifest: `/private/tmp/meeting-ticket01-reviewed-content.sha256`, SHA-256 `b411b6ddffc6ca4e7c2a76c37ff48a49253073e0382abd0ccb213bc531be2a82`; all 51 scoped file hashes matched the working files at review refresh.
- Scope includes the existing macOS communication prerequisite, Ticket 01 code/test/spec work and the final CI/README/Wine-documentation integration. Future parity-owner changes remain excluded.
## Inputs and assigned coverage
Read code-review skill and review criteria, repository README/AGENTS/config, communication request and parity verification requirements, active change designs/tasks/proposals, and Ticket 01 evidence. Inspected the fixed diff plus adjacent implementations and tests.
DRY coverage: shared request lifecycle; adapter decisions and lifetimes; native notification/menu transport and window construction; platform-test target/skip knowledge; HTTP fixture isolation; verifier code and synthetic fixtures; requirement ownership and evidence references. Repository DRY surrounding-context rule was applied. The final old-to-new delta was inspected separately; unchanged initial coverage carried forward. Behavioral verification was reused, not rerun.
## Result
**Final DRY outcome: clean for the pinned 51-file candidate.** No actionable binding or heuristic DRY finding, and no material behavioral defect found.
- The request store owns common decision/deadline/cancellation handling; adapters retain distinct approval, inactivity and calendar semantics. Native notification and menu decisions share response construction; ordinary and approved native windows share construction.
- `IsolatedApplicationFactory` consolidates background isolation while fixtures opt into the activity they test. The verifier is linked into test compilation, so its implementation has one owner.
- Exact expected case names, target markers and totals in verifier fixtures are an independent test oracle. Sharing them directly with the checker would weaken regression detection. Explicit project target declarations are guarded by the public composition test.
- Small repeated request-completion statements, notification identifier spelling and test setup do not presently justify a new abstraction: no inconsistent behavior or separate maintenance policy was found.
- Supplementary parity evidence references the original communication acceptance tasks and preserves their historical result/limits; the two changes retain distinct ownership.
- CI's repeated commands serve distinct Wine and portable setup/runtime boundaries. Both jobs invoke the same C# artifact verifier. Native Windows, Wine and portable documentation has distinct invocation purposes and links the common verification requirements; no inconsistent maintenance decision was found.
## Verification and closeout limits
Coordinator supplied the initial critical-requirements receipt: 295 original content hashes verified; actual portable suite 641 results / 639 passed / 2 reasoned skips; Linux subset 22 / 15 passed / 7 reasoned skips; focused HTTP 21 passed; verifier synthetic fixtures 38 passed. Portable sources and the portable conditional package graph are unchanged by the Windows-only H.NotifyIcon core-package correction, so that portable evidence carries forward. The subsequent actual full portable rerun also passed with 641 results / 639 passed / 2 reasoned Windows skips / 0 failed and all seven native helper self-test groups; its evidence is recorded in `artifacts/tests/ticket01/closeout/receipt.md`.
The coordinator's refreshed current-graph check reports normal, unsuppressed Windows application and test-target cross-builds on macOS with zero errors; the direct H.NotifyIcon graph has no Windows App SDK/MSIX/PRI dependency. This supersedes the old package graph's limited-compile/MakePRI failure as current build evidence. Actual Windows/Wine runtime discovery and assertions remain unavailable, and current remote CI plus native UI acceptance remain unverified. Tasks 1.1 and original communication 4.2/4.4 remain open as recorded; their closure is not inferred from cross-compilation.
This is a final structural DRY receipt for the supplied limited-implementation scope, not full original acceptance or technical completion. It grants no delivery or prerequisite-commit authorization.
## Bounded communication-owner requirement refresh
The earlier outcome above applies to the original 51-file candidate. A later five-line replacement in `openspec/changes/add-macos-desktop-controls/specs/meeting-session/spec.md:30` is reviewed here only for DRY requirement knowledge and ownership; unchanged coverage carries forward. No runtime implementation, test or configuration changed, and no future-parity owner plan was added to the review.
- Current diff: `/private/tmp/meeting-ticket01-review-final-v2.diff`, SHA-256 `6a9e70bb5dcf0e20f19dd029bdd251f14e528d03037a0a35140254b03066a28b`.
- Current 52-file manifest: `/private/tmp/meeting-ticket01-reviewed-content-v2.sha256`, SHA-256 `147f83cfe076e27aa5ff29eedc8e9084e2b2e9ee39f9c7ab8a5d834100a0928d`; all 52 current hashes verified.
- Corrected owner spec SHA-256: `7dde9acdcbf2b0917e91e82d1078cb1405d715379eb98f68ea5eff09c48697de`.
**Delta outcome: clean.** The desktop-owner scenario now describes an unanswered pending approval expiring or canceling without opening/changing the agent conversation. The communication capability continues to own the shared managed lifecycle, explicit consent, notification/menu independence and approved independent sessions. The owner scenario expresses the desktop outcome of that contract without duplicating deadlines, callback rules or transport implementation. Hiding/dismissal does not grant consent in either requirement; no inconsistent or competing maintenance rule remains. No actionable binding or heuristic DRY finding.
Read the current closeout requirements addendum and its expected-versus-observed contract mapping. Existing actual Passed deadline/cancellation, workflow-denial and stale-project-association tests support this narrow requirement; the native delegate's ignored dismiss/default actions and passed self-tests support its presentation rule. No tests were rerun for this review. Actual notification dismissal clicks, Windows/Wine runtime discovery/assertions and current CI remain the existing acceptance limits.
**Current DRY outcome: clean for the 52-file identity through carried-forward 51-file coverage plus this bounded owner-spec refresh.** This does not assert full original acceptance or delivery authority.