docs: record strict v13 production release (#292)
This commit is contained in:
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
@@ -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
|
||||
|
||||
@@ -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,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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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。
|
||||
|
||||
|
||||
Reference in new issue
Block a user