59 lines
3.7 KiB
Markdown
59 lines
3.7 KiB
Markdown
# HANDOFF — Session State
|
||
|
||
## Branch / Commit State
|
||
|
||
**`main`**, clean tree, **pushed to `origin/main` through `b4f3b52`** (user "push", 2026-09-01).
|
||
Session's five commits:
|
||
- `b4f3b52` — docs: HANDOFF rewrite (this file, pre-push state)
|
||
- `6799c40` — fix: first-native-launch crash (3 stacked faults) + RoundClip test root-caused → green
|
||
- `711ba54` — docs: HANDOFF rewrite + TASK 21 picker spec imported into TASKS.md
|
||
- `e1d8b10` — docs: v1 = feature-complete ruling; TASKs 32–36; out-of-product list; map-lie fixes
|
||
- `7c6ec3e` — docs: pre-GA posture (visibility lock, flash preview-only + escalation, audit → gold)
|
||
|
||
## What this session accomplished
|
||
|
||
1. **Product/PM gap audit** (the creator's "potholes and gone streets" fear): everything un-tasked
|
||
surfaced and ruled. Read ai.md → Monetization + TASKS.md → file end ("v1 = the finished product",
|
||
"Out of product — permanently", TASKs 32–36) — the rulings are IN the map now, not here.
|
||
2. **Fixed the first-startup crash** (user launched post-refactor for the first time — NRE):
|
||
SceneGraph ctor-order + window-scope styles the extracted LeftPanel couldn't see (full audit:
|
||
exactly 2 offenders). App verified booting + closing clean on the real desktop; real DB intact.
|
||
3. **Killed one of the two "known failures":** RoundClip was stale TEST code, not product —
|
||
`window.FindName` across namescopes + `VisualTreeHelper.HitTest` (which ignores input semantics
|
||
and returned the invisible WebViewHostPanel overlay for every point). `UIElement.InputHitTest`
|
||
proved the corner IS grabbable. Test green. Recipes recorded in MyMistakes.md.
|
||
|
||
## Test suite truth (2026-09-01, verified natively)
|
||
|
||
- 247 tests, **246 pass**; the SOLE known failure is `AudioPipelineTests.Mix_HonorsProviderGains…`.
|
||
The creator's hint: they attribute it to "sound channel declaration/init". Clue spotted tonight:
|
||
real launches log "Audio: using system default mic + default output" TWICE (19:16 and 19:30
|
||
sessions) — possibly double mixer start or double log call; worth a look when the audio slice is
|
||
picked up. Not chased (out of scope, Good Dog).
|
||
- Per-class `dotnet.exe vstest` runs RealApp/MainWindow suites fine from WSL (6 classes + RoundClip
|
||
green tonight). Full-suite still hangs (WASAPI) — don't run it.
|
||
- The RealApp testhost shares `%APPDATA%\ytLlive\startup.log` with the real app — 'test-camera'
|
||
failure lines in there are test noise; check DB state by querying, not reading.
|
||
|
||
## What's next (creator's queue — do not expand)
|
||
|
||
**TASK 21 UI picker slice** (spec now lives in TASKS.md → TASK 21, imported from the old handoff so
|
||
it can't be lost by a rewrite). Then TASK 32 → 33 → 34 → 35 → text source → monetization chain →
|
||
MARCOM → TASK 36 gold pass, per "v1 execution order" in TASKS.md.
|
||
|
||
## Landmines
|
||
|
||
- Remote state: `main` == `origin/main` at `b4f3b52` (+ this push). Re-check `git log origin/main..main` after any further commits.
|
||
- Stale `testhost` can lock ytLive.dll (MSB3027) → `taskkill /PID N /F` via cmd.exe.
|
||
- WSL cannot spawn Linux ffmpeg from the Windows CLR shim; contract verification recipe + static
|
||
ffmpeg live at `/tmp/opencode/` (MyMistakes has the how-to).
|
||
- Pre-commit gate: `./scripts/verify.sh "<files>"` — but its full-suite step hangs; tonight's flow
|
||
(clean build + per-class vstest + scope-check) is the working substitute from WSL.
|
||
- Real-`MainWindow` tests MUST set `MainViewModel.LayoutPathOverride` (temp DB) or shutdown saves
|
||
pollute the user's real layout.
|
||
|
||
## @ User note — no unsolicited roadmap
|
||
|
||
Work what's queued; report what changed; no forward-looking "what's next" lists unless asked.
|
||
Prefers short, spaced-out output over dense text (tired eyes — one idea per line beats a table).
|