You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Maintainability: characterize and extract shared backend/system-service cores #185
Make the pre-1.0 architecture small, teachable, and internally consistent. Compatibility is evidence to consider, not a reason to preserve a weak boundary: an intentional breaking change is acceptable when the replacement is materially clearer and ships with migration notes.
Acceptance criteria
Add characterization tests around Windows/Linux backend lifecycle, framing, cancellation, shutdown, and error translation.
Extract transport-neutral C++ backend behavior shared by Windows and Linux, or replace the current split if a cleaner design is demonstrated.
Keep WinUI 3, SwiftUI/AppKit, GTK4/Wayland, process transport, and platform policy in explicit native adapters.
Split Linux system services into focused single-instance, notifications/tray, autostart, secure-storage, and crash/shutdown units.
Split or redesign the large Racket backend along stable responsibilities with a small documented public surface.
Remove accidental APIs and duplicate concepts before 1.0; document every intentional break and its migration path.
Demonstrate no unexplained protocol-golden, fuzz, package, or roundtrip regression.
Document the resulting module boundaries for readers learning the architecture.
Guardrails
RVT1 changes require a written protocol rationale, cross-runtime golden updates, and migration evidence; refactoring alone is not a reason to change the wire format.
Do not introduce a cross-platform UI DSL or hide native framework capabilities.
Prefer a sequence of reviewable changes over a wholesale rewrite, but do not preserve pre-1.0 debt merely to minimize a diff.
Acceptance criteria are now satisfied by the reviewable sequence that landed:
runtime: share native completion ownership #189 extracted the shared Windows/Linux completion registry and characterized future, callback, cancellation, shutdown, and callback-isolation semantics; Release assertions are forced on so the native suite cannot false-green.
backend: make schema reflection data-only #194 replaced accidental mutable/public backend internals with the opaque state? boundary and one immutable data-only backend-schema; migration and ownership boundaries are documented.
refactor: isolate backend pending state machine #198 isolated request admission, exactly-once terminal ownership, cancellation, and State-commit coordination into a focused private pending-state module with direct characterization tests.
refactor: split Linux system service adapter #201 split the 1,463-line Linux adapter into single-instance, notifications, tray, autostart, secure-storage, crash/shutdown, and shared-support units without changing its public API.
ci: add native UI accessibility end-to-end gates #193 added real WinUI 3, SwiftUI/AppKit, and GTK4/Wayland accessibility/interaction gates and retained failure artifacts, reinforcing that native adapters remain explicit rather than hidden behind a cross-platform UI DSL.
The final #201 base passed the protocol/golden/fuzz, embedded roundtrip, package/architecture, Linux installer lifecycle, Kotlin, Swift, and core Racket matrix. RVT1 did not change. The reader-facing module boundaries are documented, and the pre-1.0 public-surface break in #194 has migration notes.
Closing as complete. Further cross-project contract adoption remains tracked separately in #196.
Outcome
Make the pre-1.0 architecture small, teachable, and internally consistent. Compatibility is evidence to consider, not a reason to preserve a weak boundary: an intentional breaking change is acceptable when the replacement is materially clearer and ships with migration notes.
Acceptance criteria
Guardrails