docs: record strict v13 production release (#292)

This commit is contained in:
AAA authored and GitHub committed 2026-08-27 03:03:25 +08:00
1 parent 501df27bce
commit 85050912b9
8 files changed
+48 -52

No files matched your search

@@ -1,8 +1,7 @@
# ADR-0005: Automatic Hybrid Media Routing
- Status: Base routing is deployed on strict v12. The evidence-only quality
shadow is implemented in canonical source on strict v13 but not yet deployed.
Exact current identity is owned by
- Status: Base routing and the evidence-only quality shadow are deployed on
strict v13. Exact current identity is owned by
[status](../status.md).
- Date: 2026-08-20
- Last updated: 2026-08-27
@@ -424,10 +423,9 @@ deployment-wide.
## Current Source And Deployment Boundary
Canonical application/runtime source uses the evidence-only strict
`screener-v13` quality shadow; production remains strict `screener-v12` until
its atomic application release. Exact current source and deployment identity is
indexed by [status](../status.md).
Canonical application/runtime source and production use the evidence-only
strict `screener-v13` quality shadow. Exact current source and deployment
identity is indexed by [status](../status.md).
Browser SFU PCs use empty external ICE-server lists. The controlled exact-
candidate rollback/SFU commit and active-SFU cadence gates are closed. The
operation owner remains only `route`; broader heterogeneous-network and SFU
+11 -11
View File
@@ -3,8 +3,8 @@
Last verified: 2026-08-27.
This page records production running exact deployed application/runtime revision
`267e07340ba9ec85c1082d58da89b289b12c3726`, release `267e073`, and the single
Browser `screener-v12` contract. Product direction and pending work are owned by
`73ed920a229bfc64c89b97045c00d6cd75216f3a`, release `73ed920`, and the single
Browser `screener-v13` contract. Product direction and pending work are owned by
[project memory](./project-memory.md) and [the TODO ledger](./todo.md).
This section documents the accepted UDP-only deployment contract: one Node.js
@@ -25,18 +25,18 @@ ICE/UDP only. Ordinary peer ICE remains STUN-only and production coturn uses the
tracked STUN-only configuration with TCP/TLS disabled. The source and production
configure no TURN, ICE/TCP, media TCP, or TLS-relayed media.
Production runs exact `267e07340ba9ec85c1082d58da89b289b12c3726`, release
`267e073`, from `/opt/screener/releases/267e073`. The immutable runtime tar
Production runs exact `73ed920a229bfc64c89b97045c00d6cd75216f3a`, release
`73ed920`, from `/opt/screener/releases/73ed920`. The immutable runtime tar
SHA-256 is
`6a04af6390fa44e0667e3d1a730c665c6a2401f51872f3168044d70133515481`.
`351053e497e8eee17956f4cec86305b05d805c80deb40b2cf4cd2668eaf08583`.
Its 41-file path/size/hash manifest SHA-256 is
`14e0b509397f822394a53110f17993dc625e80df4eca654dfa2bc817854928c8`.
`bb993950a30a0b99b9b6185aa13777edcccbdcdaebdfb1b05b3c3499a1e78479`.
Local and public `/healthz` return 200; Screener, LiveKit, coturn, and nginx are
active with `NRestarts=0`. The public main Browser asset is
`assets/index-lKEEgpx8.js` with SHA-256
`5f9ec937138d66220e727c01913cff85a9e82b9a8a1816c5a4dbd3d508e37369`.
`assets/index-CaM3Pn5_.js` with SHA-256
`3c64cd75a7d67716f7600465a1742b1c02f3b00e71a1039649604aaf6d08f816`.
The release deploys the single Browser `screener-v12` wire and one internal,
The release deploys the single Browser `screener-v13` wire and one internal,
content-independent H.264 sender gate with VP8 fallback across Browser direct,
browser-relay, and SFU video. It retains pinned LiveKit default screen-share
representations, Dynacast and server send-side BWE without an application layer
@@ -296,8 +296,8 @@ must fail or wait before a fourth endpoint copy is issued.
Supplying the removed `MAX_PEER_RELAY_DOWNSTREAM_EDGES`, even blank, fails
startup.
Production release `267e073` runs the deployed server and Browser assets
atomically on `screener-v12`; every stale Browser or executable-sender wire fails
Production release `73ed920` runs the deployed server and Browser assets
atomically on `screener-v13`; every stale Browser or executable-sender wire fails
before room authority. Native senders and helpers are outside this release.
The four `LIVEKIT_*` values must either all be absent or all be present, and a
+6 -7
View File
@@ -120,11 +120,10 @@ Last updated: 2026-08-27
## Current Source And Production
- Canonical source uses the evidence-only strict `screener-v13` quality shadow;
production remains strict `screener-v12` until the atomic application release.
Both retain adaptive H.264/VP8 selection, the local Host codec override and
optional SQLite room authority. Exact identities are indexed by
[status](./status.md).
- Canonical source and production use the same evidence-only strict
`screener-v13` quality shadow with adaptive H.264/VP8 selection, the local
Host codec override, and optional SQLite room authority. Exact identities are
indexed by [status](./status.md).
- Strict v13 rejects old Browser pages before room authority. Its bounded
current-edge aggregate adds no active route decision until annotated
production shadow evidence establishes an accepted policy.
@@ -138,8 +137,8 @@ Last updated: 2026-08-27
## Current Priority
1. Deploy the evidence-only strict `screener-v13` quality shadow and collect
annotated production samples.
1. Collect annotated production samples from the evidence-only strict
`screener-v13` quality shadow.
2. Complete the mobile Viewer lifecycle matrix and representative real-network
route/media acceptance.
+2 -2
View File
@@ -2,8 +2,8 @@
- Research date: 2026-08-26
- Scope: Browser game-screen capture, encoding, P2P forwarding, and LiveKit SFU
- Status: strict-v13 evidence-only quality shadow implemented in canonical
source; production sampling and active policy remain open
- Status: strict-v13 evidence-only quality shadow deployed; production sampling
and active policy remain open
## Current Conclusion
+10 -10
View File
@@ -8,15 +8,15 @@ This is the current execution index. Git history owns completed timelines;
## Production
- `https://share.bonfire.icu` runs exact application/runtime revision
`267e07340ba9ec85c1082d58da89b289b12c3726`, release `267e073`, wire
`screener-v12`, from `/opt/screener/releases/267e073`. The immutable runtime
`73ed920a229bfc64c89b97045c00d6cd75216f3a`, release `73ed920`, wire
`screener-v13`, from `/opt/screener/releases/73ed920`. The immutable runtime
tar SHA-256 is
`6a04af6390fa44e0667e3d1a730c665c6a2401f51872f3168044d70133515481`;
`351053e497e8eee17956f4cec86305b05d805c80deb40b2cf4cd2668eaf08583`;
its 41-file manifest SHA-256 is
`14e0b509397f822394a53110f17993dc625e80df4eca654dfa2bc817854928c8`.
- The served Browser entry references `assets/index-lKEEgpx8.js`; the public
`bb993950a30a0b99b9b6185aa13777edcccbdcdaebdfb1b05b3c3499a1e78479`.
- The served Browser entry references `assets/index-CaM3Pn5_.js`; the public
asset SHA-256 is
`5f9ec937138d66220e727c01913cff85a9e82b9a8a1816c5a4dbd3d508e37369`.
`3c64cd75a7d67716f7600465a1742b1c02f3b00e71a1039649604aaf6d08f816`.
Public `/healthz` returns 200. The release postflight found Screener, LiveKit,
coturn, and nginx active with zero restarts.
- Production enables SQLite room authority at
@@ -42,8 +42,8 @@ This is the current execution index. Git history owns completed timelines;
## Current Source
- Canonical `main` uses the evidence-only strict `screener-v13` quality shadow;
production remains the strict-v12 application tree deployed from `267e073`.
- Canonical `main` and production use the same evidence-only strict
`screener-v13` quality-shadow application tree deployed from `73ed920`.
Optional SQLite stable authority, non-expiring local preferred code, atomic
room replacement and the Host codec selector are implemented; production
selects stable storage. Graceful restart, crash, timeout and network loss use
@@ -69,8 +69,8 @@ This is the current execution index. Git history owns completed timelines;
## Current Milestone
1. Atomically deploy strict `screener-v13`, then collect annotated production
freeze/pause samples without active route changes.
1. Collect annotated production freeze/pause samples from strict
`screener-v13` without active route changes.
2. Finish the Android Chrome and iOS Safari Viewer lifecycle matrix.
3. Finish representative public-network direct, peer-relay, SFU, recovery,
Pause/Resume, screen-audio, real-game A/V, and all-UDP-blocked acceptance
+3 -4
View File
@@ -7,10 +7,9 @@ later topic is not implementation authority by itself.
## Now
1. **Quality-route evidence and shadow calibration.** Atomically deploy the
implemented strict `screener-v13` Browser/server quality shadow; v12 gets no
compatibility path. Collect annotated production samples from its bounded
current-edge freeze/pause aggregates before accepting an active trigger,
1. **Quality-route evidence and shadow calibration.** Collect annotated
production samples from the deployed strict `screener-v13` Browser/server
quality shadow before accepting an active trigger,
probation, restore or cooldown policy. Shadow evidence must not alter facts,
capacity, routes or SFU usage.
2. **Mobile Viewer lifecycle.** Run Android Chrome and iOS Safari matrices for
+9 -9
View File
@@ -8,20 +8,20 @@ may be interpreted. Git and pull requests own routine completed checks.
## Current Production Identity
- Production runs exact application/runtime revision
`267e07340ba9ec85c1082d58da89b289b12c3726`, release `267e073`, wire
`screener-v12`, from `/opt/screener/releases/267e073`.
`73ed920a229bfc64c89b97045c00d6cd75216f3a`, release `73ed920`, wire
`screener-v13`, from `/opt/screener/releases/73ed920`.
- Runtime tar SHA-256:
`6a04af6390fa44e0667e3d1a730c665c6a2401f51872f3168044d70133515481`.
`351053e497e8eee17956f4cec86305b05d805c80deb40b2cf4cd2668eaf08583`.
The 41-file manifest SHA-256 is
`14e0b509397f822394a53110f17993dc625e80df4eca654dfa2bc817854928c8`.
- Public Browser asset `assets/index-lKEEgpx8.js` has SHA-256
`5f9ec937138d66220e727c01913cff85a9e82b9a8a1816c5a4dbd3d508e37369`.
`bb993950a30a0b99b9b6185aa13777edcccbdcdaebdfb1b05b3c3499a1e78479`.
- Public Browser asset `assets/index-CaM3Pn5_.js` has SHA-256
`3c64cd75a7d67716f7600465a1742b1c02f3b00e71a1039649604aaf6d08f816`.
Public `/healthz` returns 200. Release postflight found Screener, LiveKit,
coturn, and nginx active with zero restarts.
## Completed Product Evidence
- Strict `screener-v12` rejects stale Browser/executable wires before room
- Strict `screener-v13` rejects stale Browser/executable wires before room
authority. Lightweight and SQLite-stable rooms, 24-hour dormant leases,
room-lived Viewer grants, `open | private` code entry, invitation-only private
rooms, password entry, grant rotate/revoke, atomic room replacement and
@@ -64,8 +64,8 @@ may be interpreted. Git and pull requests own routine completed checks.
## Current Source Evidence
- Canonical source uses strict `screener-v13`; production remains the strict-v12
application tree deployed from `267e073`. The adaptive H.264/VP8 sender
- Canonical source and production use the strict-v13 application tree deployed
from `73ed920`. The adaptive H.264/VP8 sender
decision with `contentHint = "motion"` reapplies the
selected video profile after answer negotiation, leaves SFU representation
construction to pinned LiveKit, keeps Dynacast/send-side BWE, disables
+2 -2
View File
@@ -2,7 +2,7 @@
## 2026-08-18 14:45
状态:canonical source 已实现唯一 strict `screener-v13` 的 evidence-only quality shadow,production 在原子应用发布前仍使用 strict `screener-v12`;旧页面在 authority 前拒绝,不保留 v12 parser。当前已实现每分享代次的 H.264 sender gate 与 VP8 fallback、本地 pre-share `VP8 | 自动 | H264` selector、可选 SQLite stable room authority、无期限 preferred code 和换房控制;这些不新增 codec wire、自定义 SFU layer list或应用媒体质量 controller。Video 使用 `contentHint = "motion"`,audio 使用 `music`。SFU 由 pinned LiveKit 默认 representations、Dynacast、server send-side BWE 和 disabled AdaptiveStream 拥有质量适配;screen audio 使用 64/128/192 kbps ceiling、stereo、DTX off 与 RED off。精确执行状态由 `docs/status.md` 持有。
状态:canonical source 与 production 已部署唯一 strict `screener-v13` 的 evidence-only quality shadow;旧页面在 authority 前拒绝,不保留 v12 parser。当前已实现每分享代次的 H.264 sender gate 与 VP8 fallback、本地 pre-share `VP8 | 自动 | H264` selector、可选 SQLite stable room authority、无期限 preferred code 和换房控制;这些不新增 codec wire、自定义 SFU layer list或应用媒体质量 controller。Video 使用 `contentHint = "motion"`,audio 使用 `music`。SFU 由 pinned LiveKit 默认 representations、Dynacast、server send-side BWE 和 disabled AdaptiveStream 拥有质量适配;screen audio 使用 64/128/192 kbps ceiling、stereo、DTX off 与 RED off。精确执行状态由 `docs/status.md` 持有。
## 目标与边界
@@ -365,7 +365,7 @@ Token-free SFU standby prewarm 保持可选且不创建 participant、publicatio
## 当前交付边界
- Production 与 canonical source 当前使用严格单一 `screener-v12` wire;quality-shadow 集成边界会原子升级到 accepted `screener-v13`。每分享代 actual-sender gate 在证据通过时让未来 direct/relay 和 Host 单一 SFU publication 使用 H.264,否则使用 VP8。本地 pre-share `VP8 | 自动 | H264` selector 已实现并在分享期间锁定;quality-state/wire、自定义 SFU layer list、backup publication与健康 edge codec 切换不存在。Browser SFU 使用 pinned LiveKit 默认 representations、Dynacast、server send-side BWE、disabled AdaptiveStream 与 RED off;精确执行状态由 `docs/status.md` 持有。
- Production 与 canonical source 当前使用严格单一 `screener-v13` wire。每分享代 actual-sender gate 在证据通过时让未来 direct/relay 和 Host 单一 SFU publication 使用 H.264,否则使用 VP8。本地 pre-share `VP8 | 自动 | H264` selector 已实现并在分享期间锁定;quality-state/wire、自定义 SFU layer list、backup publication与健康 edge codec 切换不存在。Browser SFU 使用 pinned LiveKit 默认 representations、Dynacast、server send-side BWE、disabled AdaptiveStream 与 RED off;精确执行状态由 `docs/status.md` 持有。
- Pause/Resume 由当前 Host session 和 `shareGeneration` 约束。Host 后台性能和 VP8 hardware acceleration 分别按受控根因证据诊断;标准 ICE/SFU 按真实异构网络验收。
- 当前发布面只包含 Web Host、Viewer 和 browser relay。Native sender、capture helper、shared-encode executable 与两个分发包仍由各自后续决策和物理证据驱动,不属于当前 Browser release。