Captures the 12 items from docs/code-review-2026-04-22.md that must land before v0.1 ships. One markdown file per issue with: severity, path:line, problem description, acceptance criteria, fix scope, and dependency graph. Split by severity: - 3 CRITICAL: live-session race, migration atomicity, transcript- profile FK - 9 MAJOR: monolith refactor, channel-fatality, capture worker join, runtime capabilities, macOS App Nap, decoder error prop, LLM prompt preflight, keystore thread-safety, hotkey device filter README.md indexes them with a fix-order dependency graph and a fish-shell script for bulk-converting to GitHub issues once `gh` CLI is installed and authed. Deferred step by user decision — markdown tracker is authoritative until then.
28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
# RB-08 MAJOR: PowerAssertion is a non-functional stub on macOS
|
|
|
|
**Severity:** MAJOR (macOS only)
|
|
**Path:** `src-tauri/src/commands/power.rs:41-121`
|
|
**Source:** [2026-04-22 code review](../code-review-2026-04-22.md), originally deferred during A.1 #9
|
|
**Labels:** release-blocker, major, macos, platform
|
|
|
|
## Problem
|
|
|
|
`begin_activity` always returns `Err` on macOS, so `PowerAssertion::begin` converts to `None` and the guard never acquires an `NSProcessInfo beginActivityWithOptions:reason:` assertion. Live recording and LLM cleanup therefore run without App Nap protection on the one platform where it matters.
|
|
|
|
The stub was deliberate (A.1 #9 acceptance concession — untestable on Linux without a macOS build host). Re-flagged here so it is not forgotten before the first macOS ship.
|
|
|
|
## Acceptance
|
|
|
|
- `objc2` + `objc2-foundation` deps added to the kon crate, gated `cfg(target_os = "macos")`.
|
|
- `begin_activity` calls `[NSProcessInfo processInfo] beginActivityWithOptions:(NSActivityUserInitiated | NSActivityLatencyCritical) reason:reason]` and retains the returned activity handle.
|
|
- `end_activity` calls `endActivity:` on the retained handle.
|
|
- Manual-test on a real macOS box: 10-minute background live session completes without throttling; `pmset -g assertions` shows Kon's activity during capture.
|
|
|
|
## Fix scope
|
|
|
|
Medium. Dep addition + FFI glue + manual verification. Can be done from Linux with `cargo check --target=aarch64-apple-darwin` for compile validation, but runtime behaviour needs a macOS machine.
|
|
|
|
## Dependencies
|
|
|
|
- **Hard blocker:** before first macOS build/ship.
|