119 lines
6.6 KiB
Markdown
119 lines
6.6 KiB
Markdown
# Current Status
|
|
|
|
Last updated: 2026-08-29
|
|
|
|
This is the current execution index. Git history owns completed timelines;
|
|
[verification status](./verification-status.md) owns evidence boundaries.
|
|
|
|
## Production
|
|
|
|
- `https://share.bonfire.icu` runs exact application/runtime revision
|
|
`91816accf61c5c225e387e907fa86c6069052bda`, release `91816ac`, wire
|
|
`screener-v17`, from `/opt/screener/releases/91816ac`. The immutable runtime
|
|
tar SHA-256 is
|
|
`fd6170beba1e1d4c2762e6d5ed9726de5f684cd46544cd0fdc564797cc2dfde7`;
|
|
its 41-file manifest SHA-256 is
|
|
`3a4c787e995a6e5270064ed22b31d2bb4cc685ab92851ad14e45d83ba25c049c`.
|
|
- The served Browser entry references `assets/index-84bQnZrP.js`; the public
|
|
asset SHA-256 is
|
|
`d6c8890bebb1e612d822c7e2fd9a8525be004176ab489f6b66da1ac0cc8e1d62`.
|
|
Public `/healthz` returns 200. The release postflight found Screener, LiveKit,
|
|
coturn, and nginx active with zero restarts.
|
|
- Production enables SQLite room authority at
|
|
`/var/lib/screener/rooms.sqlite`; live participants, routes and media remain
|
|
process-only. A controlled restart retained the room authority and Host-owned
|
|
capture while the Viewer rebuilt media without a page refresh. Lightweight
|
|
mode remains available when `ROOM_DATABASE_PATH` is unset and reacquires a
|
|
room rather than persisting the old authority.
|
|
- Site access uses a stateless 24-hour rolling idle cookie. An active
|
|
site-authorized page renews it hourly through the existing status request;
|
|
Viewer-grant admission remains independent and cannot create or renew it.
|
|
- Public media listeners remain STUN-only UDP 3478 and LiveKit UDP 7882. Web
|
|
ingress is TCP 80/443; Node 8787 and LiveKit control/signaling 7880 are
|
|
private. TURN, ICE/TCP, media TCP, TLS relay, port 5349, and relay ranges are
|
|
disabled.
|
|
- Browser video uses the content-independent H.264 sender gate with VP8
|
|
fallback, plus the locked pre-share `VP8 | Auto | H264` Host selector and
|
|
resolved codec display. Video retains `contentHint = "motion"`; audio uses
|
|
`music`. The SFU publisher uses the Host's one codec decision, leaves
|
|
representation construction to pinned LiveKit,
|
|
enables Dynacast, uses server send-side BWE, keeps AdaptiveStream disabled,
|
|
and configures no external ICE servers on Browser SFU PCs.
|
|
- Screen audio provides live 64/128/192 kbps ceilings with 128 default. SFU
|
|
publication uses stereo, DTX off, and RED off. Early autoplay presentation is
|
|
gated by current media connection state.
|
|
- The living-room presentation is deployed with Chinese, English, and
|
|
pure-visual modes, light/dark themes, one Host/Viewer stage language,
|
|
progressive per-Viewer diagnostics, and reduced-motion behavior. Fresh
|
|
Browsers start in visual mode; explicit choices persist locally.
|
|
- Native-edge local convergence defaults on for each new share and remains a
|
|
pre-share Host opt-out. The adjacent default-off peer-only policy excludes all
|
|
SFU paths for that share generation. Both policies lock while sharing.
|
|
|
|
## Current Source
|
|
|
|
- Canonical source uses the strict `screener-v17` Browser/server contract.
|
|
Optional SQLite stable authority, non-expiring local preferred code, atomic
|
|
room replacement and the Host codec selector remain implemented; production
|
|
selects stable storage. Graceful restart, crash, timeout and network loss use
|
|
one reconnect state. LiveKit room teardown cannot stop Host-owned capture.
|
|
- One event-driven controller owns the committed graph and one room-serial child
|
|
operation. Initial direct acquisition uses a five-second foreground window;
|
|
exact transport-connected progress may retain that candidate through the
|
|
total deadline, while first decoded frame remains the only commit proof. SFU
|
|
provides working media before finite background direct convergence. Healthy
|
|
decoded edges remain sticky. A connected Viewer's advertised effective
|
|
capacity survives sharing-generation graph replacement and is cleared only
|
|
when that Viewer departs or the room is deleted.
|
|
- WebRTC/LiveKit own media adaptation. With the per-share convergence gate
|
|
enabled, one fresh degraded native edge may enter the existing serial route
|
|
operation after availability work. A P2P candidate commits only after the same
|
|
Viewer sees first-frame readiness plus three fresh windows that strictly
|
|
improve delivered resolution or rounded FPS without regressing either. Peer
|
|
candidates stay first; bounded SFU is only the suffix for whole-Host-root
|
|
degradation and retains native publication proof. The gate defaults on in
|
|
source and remains a locked pre-share opt-out.
|
|
- Screener has no custom SFU layer list, quality score, layer selector,
|
|
all-pairs probe, parent-wide prediction or periodic rebalancing. P2P and SFU
|
|
still recover their current route before actual failure enters reassignment.
|
|
- Viewer hidden/freeze/pagehide suppress decoded-stall routing authority;
|
|
visible/resume/pageshow rebaseline and rearm current-frame proof. SFU
|
|
pagehide no longer triggers LiveKit's automatic disconnect. Native Viewer
|
|
controls still own playback, and manual reconnect stays on the current route.
|
|
- Host, Viewer, join, and access surfaces share the living-room presentation
|
|
model. Room codes, invitation URLs, the current display name, selected
|
|
participant details, route labels, and metrics remain visible in visual mode;
|
|
full couch/tree identity presentation remains current TODO work.
|
|
|
|
## Source/Production Delta
|
|
|
|
- Production application code and current source behavior are aligned at
|
|
`91816accf61c5c225e387e907fa86c6069052bda`; the following truth checkpoint
|
|
changes documentation only.
|
|
|
|
## Current Milestone
|
|
|
|
The living-room Host/Viewer UI, bilingual and visual expression modes, and
|
|
progressive diagnostics are deployed on the existing measured route,
|
|
generation-owned presentation, and endpoint-capacity model.
|
|
|
|
## Active Boundaries
|
|
|
|
- Desktop Host background capture remains unconfirmed. The current-browser
|
|
screening did not reproduce a Host-page drop; accepted Viewer lifecycle work
|
|
prevents frozen JavaScript wall time from becoming an immediate route failure
|
|
but is not capture keepalive.
|
|
- Current-path quality can drive local convergence in source and production.
|
|
Both default it on with a pre-share Host opt-out. Weighted/global optimization
|
|
remains parked.
|
|
- Repository simplification does not change or deploy product behavior beyond
|
|
deleting proven dead private surfaces.
|
|
- Native/executable senders, shared encode, and distribution packages remain
|
|
outside the current release. Current UI refinement is presentation-only and
|
|
does not authorize route or media-model changes.
|
|
|
|
## Current Hold
|
|
|
|
No source or deployment P0/P1 is open. Sanitized route logging remains enabled
|
|
for the pre-release canary.
|