docs(handoff): session-end refresh — HEAD 75723ac, attainability refinement, tree clean
This commit is contained in:
+19
-9
@@ -1,12 +1,22 @@
|
||||
# HANDOFF — 2026-09-17 (webcam app-default gate slice; committed locally — no push)
|
||||
# HANDOFF — 2026-09-17 (webcam attainability refinement committed locally at `75723ac` — no push)
|
||||
|
||||
## Branch / Commit State
|
||||
|
||||
`main` HEAD = **`1e4017d` webcam startup resource lifecycle** (local). The gate slice lands
|
||||
on top as a NEW commit (stays commit-local until greenlight). Below: `94a934f` (reader-ladder),
|
||||
`64a5a6d` (slice-18 C4 cache), slice-17, slice-16, slice-15, `c01206f`, `b22d08e` (signed
|
||||
audio-sync, pushed). No push after this commit either — still awaiting the device take + user
|
||||
greenlight.
|
||||
`main` HEAD = **`75723ac` fix(webcam): offer the Web Cam row only when a camera is attainable
|
||||
(live lock), not merely selected** (local). Below it:
|
||||
|
||||
- `9d00955` feat(webcam): app-default gate slice — per-scene offer, Add places default directly,
|
||||
identity survives removal
|
||||
- `1e4017d` feat(webcam): resource lifecycle startup slice — poll-on-start, single-cam lock,
|
||||
persistent Layers alert
|
||||
- `94a934f` reader-output-subtype ladder + WinRT per-call wrap rule
|
||||
- `64a5a6d` slice-18 C4 blit-on-change composite cache
|
||||
- `b37b8a3` slice-17 overlap GPU readbacks with monotonic publish gate
|
||||
|
||||
**No push yet** — still awaiting the device take + user greenlight. Working tree clean.
|
||||
|
||||
> Correcting the previous handoff, which still listed HEAD as `1e4017d`: the gate slice
|
||||
> (`9d00955`) and its attainability refinement (`75723ac`) are both committed now.
|
||||
|
||||
## ⚠️ Branding (2026-09-14, creator-corrected): product = **llamacasty**, internals = ytLive
|
||||
|
||||
@@ -14,7 +24,7 @@ Product is **llamacasty**; repo path, csproj `AssemblyName`/`RootNamespace`, DB/
|
||||
(`%APPDATA%\ytLlive\...`), most code names are legacy **ytLive/ytLlive**. User-facing text:
|
||||
"llamacasty" / UI labels use the catalog names ("Web Cam", "YouTube Chat", "Countdown Timer"…).
|
||||
|
||||
## ✅ Committed — webcam app-default gate slice (creator-visible goal: Web Cam offered when switching to Live)
|
||||
## ✅ Committed — webcam app-default gate + attainability (`9d00955`, `75723ac`)
|
||||
|
||||
**Background:** the DB truth (`%APPDATA%\ytLlive\ytLlive.db`; NOT `layout.db`, a 0-byte legacy
|
||||
file) put the single `WebcamSceneConfig` in **Chat**, so the old TASK 26 app-wide rule grayed
|
||||
@@ -26,7 +36,7 @@ the availability layer. TASK 26's app-wide gate is **superseded** by creator dir
|
||||
- **Per-scene gate:** `CanAddWebcam` = `StagedScene is { WebcamConfig: null } && IsWebcamAttainable`.
|
||||
A scene already hosting the webcam stays gray (one webcam per stream); another scene holding it
|
||||
does NOT gray the row elsewhere.
|
||||
- **Attainable = a live lock, not a saved identity** (creator refinement): `IsWebcamAttainable` =
|
||||
- **Attainable = a live lock, not a saved identity** (`75723ac` refinement): `IsWebcamAttainable` =
|
||||
`_webcam != null && CameraManager.IsRunning(_webcam.DeviceId)`. An identity whose camera is
|
||||
unplugged / can't start leaves the row greyed (tooltip "No webcam is currently available…"), and
|
||||
it un-greys the moment a session is running (startup lock, first frame, picker + acquire).
|
||||
@@ -132,4 +142,4 @@ on this build. The webcam gate slice answers the creator's "go" ask — switchin
|
||||
must now offer Web Cam in the layer stack (Chat holding the camera no longer blocks it). The red
|
||||
Layers alert remains the new expected behavior to eyeball on the take: browser holds the camera →
|
||||
fresh launch → alert (unless Chat's config grabbed it) that clears after a Retry once the browser
|
||||
closes.
|
||||
closes.
|
||||
|
||||
Reference in New Issue
Block a user