refactor: consolidate Core 2.0 and restore cross-platform behavior - #1019
Merged
H-Chris233 merged 68 commits intoSep 6, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Current 2.0 scope
Windows and macOS must retain their respective Tauri 1.x user features, including the Windows Less Computer capability promised by this PR. Linux receives a usable, framework-independent Core contract and a directory of detailed handoff documents; the egui team owns the remaining Linux Host/UI and Linux product acceptance. Linux application gaps no longer independently block this desktop delivery; shared Core defects still do.
The application remains
2.0.0-Beta.1; the runtime contract is2.0.0. This PR does not publish a stable release or remove 1.x data compatibility.Review and repair loop
Current head:
641e44133c9306ba48a6f685f9631dc974a898bd; base/merge-base:beta@fc9824eeccf7218e3b44c1de6c6e284a4c494c81.dc350780published the revised requirements and split handoff. A new independent Windows/macOS/shared-product review team then examined the entire PR. Its findings and subsequent validation exposed eight further defects (R29–R36), fixed in98a0ca38:Current review ledger continues the R01–R28 migration review.
The second independent review found R37–R45, repaired in
c0807d97: shared native-resource ownership, cancellation/startup cleanup, Less voice feedback and retention, insertion preparation, privacy gating and terminal-state routing. The third independent review found R46–R51, repaired in90cbd014: Selection capture cancellation, QA routing, safe pre-Agent failure feedback, Core-owned translation intent, first-PCM readiness and delayed-completion ownership.The fourth fresh team found R52–R54, fixed in
87e09e1c: live Marketplace proxy policy, session-owned terminal Host actions, and rejecting old-PIN authentication queued across PIN rotation.The fifth fresh team found R55–R56, fixed in
588fb35b: native threads now dispatch cleanup on their Host-owned runtime, and a single existing event lock orders sequence allocation, projection, replay and live delivery. The sixth fresh team found R57, fixed in5f668b1d: optional output muting and archive-path failures no longer block microphone startup; actual recorder failures still propagate. Two stale platform/provider comments were corrected as well.The seventh team and main-agent reproduction found R58–R61, fixed in
2d8fd1b7: Windows npm CLI shims, independent macOS Generic model-cache leases and loaded status, live Foundry CPU fallback feedback, and cross-thread QA close/reopen/state-event ordering. Cache cleanup preserves newer activation owners and still-valid older inference; QA Host actions remain outside the state lock and native awaits outside the presentation lock.The eighth team and main-agent reproduction found R62–R69, fixed in
d16324c3: multiline OpenCode prompts over stdin, accurate PasteSent receipts, real Raw pipeline completion and engine cleanup, audio-free QA edit previews, turn-owned QA revert/confirmation/close transactions, atomic physical-key/session reservation, memory-only QA/Selection audio, and immutable completed-Selection history attribution. Direct and QA preview callers, the Linux example/contracts and handoff documents use the updated Core contract.The ninth fresh Windows/macOS team completed its whole-PR reviews. R70–R72 are included in final repair
641e4413: freeze the native dictation target before context/credential awaits; restore ordinary QA voice capsule feedback and protect already-presented owners with atomic native epochs; resolve only providers required by the active route, while preserving Raw's unavailable optional LLM snapshot for late translation.Maintainer-directed release cutoff: prioritize 2.0 delivery, stop the repeated review loop after this ninth round, and document low-impact presentation edges instead of expanding the repair. Both reviewers returned their final findings; no tenth round or additional manual desktop-package run is required by this handoff. This is a scoped publication decision, not a claim that every possible edge case or device acceptance has passed.
Deferred QA capsule edges: very fast startup failure before the first Recording event is consumed may omit the capsule error; an old Selection Voice hide timer or a very short cross-session transition can suppress/shorten an as-yet-unpresented QA capsule. The QA panel still receives Core error/terminal events. These are source-level timing risks, not claimed stable device reproductions or demonstrated data/answer corruption. Full display-origin binding and remaining Selection Voice timer unification are not included. See the release-cutoff sections in the requirements-linked acceptance checklist and review ledger.
Local validation of the current repair
headless_hostexample runs again; the previously failing cancelled-capture assertion was fixed in Core, not removed.These fixes include deterministic red-before-green regressions. Native target source contracts verify wiring, not actual clipboard/window behavior. The Windows dual-monitor injection smoke passed once; its last rerun returned
SendInput=0and did not pass. This is recorded as an unstable native-injection verification boundary, not repeated device success.Evidence and merge boundaries
The documentation-head CI 33983624572, first-repair CI 34002890692, and
c0807d97CI 34006442463 passed Windows, macOS, Linux and Android. They predate the current repair; new-head CI must pass separately. Linux artifact jobs skipped by PR conditions are not counted as artifact validation.588fb35bCI 34009963206,5f668b1dCI 34011326177,2d8fd1b7CI 34013888722, andd16324c3CI 34016669726 passed all four platforms. They predate the final ninth-round repair. Its new-head CI is tracked separately below; superseded/cancelled CI jobs are never counted as passes. The manual desktop build for87e09e1cwas intentionally cancelled after new defects were found; final-head package validation is not claimed by this maintainer-directed cutoff.Final-head CI 34019011155, for
641e44133c9306ba48a6f685f9631dc974a898bd, is queued/running at handoff and is not yet a pass. GitHub reportsMERGEABLE, withREVIEW_REQUIRED/BLOCKED; the required approval and final checks remain separate from local validation.Earlier build/install evidence belongs to
2b315572: desktop build artifacts included Windows NSIS installation/TSF registration and macOS Intel/Apple Silicon builds; Linux validation packages and Android APKs passed their recorded checks. These are not current-head release artifacts.Real Windows/macOS microphone, target-application input, permissions, native model inference, end-user upgrade/rollback, formal signing/notarization and updater delivery still require applicable device/release evidence. Current 2.0 macOS ordinary dictation reuses the selection path's app/PID restoration; ordinary dictation did not call that restoration path in 1.x. Exact same-app caret restoration is not claimed. Earlier macOS packages were ad-hoc signed, Android debug-signed, Linux metadata unsigned/manual, and Windows MSI was skipped for the non-numeric Beta prerelease.
Internal review does not replace the repository's required GitHub approval. No merge, tag, stable promotion or release is performed by this loop.