Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions docs/REVIEW-RESPONSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Review response thread

Shared async thread between the author and the independent reviewer. Each item carries a
status: `open` / `fixed` / `disputed` / `wontfix` / `needs-decision` /
`needs-hw-verify`.

## Oct 9 — Guy's decisions + actions on the Oct 9 review

Thanks for the thorough pass. Guy made the five calls; here they are, with what's done.

### Decisions from Guy

1. **Merge order** — `fixed(plan)`: proceed in the recommended order **#38 → #40 → #37 → #39 → #41**.
#37 is held until its open notes below are addressed; the other four can go once conflicts
are resolved.
2. **Deploying unmerged branches to the live box** — `accepted`: continue only to close the
verification gap faster, with the merge plan above ending the drift. Box-specific details
stay uncommitted or placeholdered, never on master.
3. **/join policy** — `decided`: **passphrase (merge #40)**. Public contributors must present
the SRT passphrase; the /join QR embeds it so legitimate scanners stay one-tap.
4. **Apache copyright holder (#39)** — `decided`: **Guy Cochran** (individual).
5. **Naming the hostname + Jonas** — `decided`: remove the live hostname from the repo; drop
the employer tag on the EFA changelog line; retain the public open-source proxy credit.

### Actions already taken (Oct 9)

- **Hostname leak (#41)** — `fixed`: committed documentation no longer hardcodes the live
server hostname.
- **Control API hardening** — `fixed`: mediamtx's API binds to localhost rather than all
interfaces.
- **Employer tag (#37 changelog)** — `fixed`: the entry states the technical cause without
identifying an individual or employer.

### Still open — #37 notes

- `open`: NMOS routing still ignores the flow ID; the domain ID is not a proper UUID; the ADR
over-claims both as done; the soak check reports a stale result as a failure; the PR is too
broad. Address these before merge.

## Oct 9 (later) — two more decisions from Guy

- **Multiview visibility (#40)** — `decided`: passphrase-to-publish is enough; public viewing
is acceptable for the demo.
- **Core-vs-Skin leak sweep** — `fixed` in PR #42: runnable Core defaults are neutral while
the project publication may retain its authorship and field notes.

## Oct 17 — commercialization validation page

- **Pilot offer page** — `open`: `docs/pilot.html` adds a bounded, measured pilot offer and
explicitly excludes a general-purpose production-platform promise, a 24/7 SLA, universal
MXL-vs-NDI claims, and finished TAMS editing/replay.
- **Claim discipline** — `fixed`: the page carries only already documented proof points and
labels the CPU comparison as a bounded same-host test.
- **Runtime impact** — `fixed`: documentation-only; no Core, live-system, tunnel, cloud, Docker,
meeting, mapping or service changes.
- **Review request** — `open`: verify that the public wording does not overstate the evidence
and that the pilot scope remains commercially useful without implying product maturity.

8 changes: 5 additions & 3 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
<a href="#architecture">Architecture</a>
<a href="/what-is-mxl.html">What is MXL</a>
<a href="/findings.html">Findings</a>
<a href="/pilot.html">Pilot</a>
<a href="/learn.html">Learn MXL</a>
<a href="#field">The field</a>
</nav>
Expand All @@ -88,6 +89,7 @@ <h1>What if the switcher<br>was <em>shared memory?</em></h1>
<p class="lede">A working exploration of a live production control room built around the Media eXchange Layer: real cameras, remote guests, playout, layouts, graphics, audio, multiview, recording and standard control — assembled as software on general-purpose cloud VMs.</p>
<div class="hero-actions">
<a class="button primary" href="/mxl-archive.html">See it in action <span aria-hidden="true">→</span></a>
<a class="button secondary" href="/pilot.html">Evaluate MXL with us</a>
<a class="button secondary" href="https://github.com/guycochran/mxl-cloud-production-demo">Explore the source <span aria-hidden="true">↗</span></a>
<a class="button secondary" href="QUICKSTART.md">Run it in ~10 minutes</a>
</div>
Expand Down Expand Up @@ -326,9 +328,9 @@ <h2>From fresh Ubuntu VM to a cuttable MXL production in about ten minutes.</h2>
<section class="closing">
<div class="shell closing-inner">
<p class="eyebrow">AN OPEN QUESTION, RUNNING AS CODE</p>
<h2>What should an MXL-native<br>switcher become?</h2>
<p>Fork it. Reproduce it. Challenge the measurements. Replace a function. Bring a different controller. File what breaks. The point is not to define the answer alone — it is to make the conversation testable.</p>
<div class="hero-actions"><a class="button primary" href="https://github.com/guycochran/mxl-cloud-production-demo">Join the work on GitHub <span aria-hidden="true">↗</span></a><a class="button secondary" href="https://github.com/guycochran/mxl-cloud-production-demo/issues">Open an issue</a></div>
<h2>What should MXL prove<br>for your team?</h2>
<p>Run the open reference stack, challenge the measurements, or define a bounded production pilot around one real workflow. The next step is not more features—it is a decision supported by working evidence.</p>
<div class="hero-actions"><a class="button primary" href="/pilot.html">Define a paid pilot <span aria-hidden="true">→</span></a><a class="button secondary" href="https://github.com/guycochran/mxl-cloud-production-demo">Join the work on GitHub <span aria-hidden="true">↗</span></a><a class="button secondary" href="https://github.com/guycochran/mxl-cloud-production-demo/issues">Open an issue</a></div>
</div>
</section>
</main>
Expand Down
Loading
Loading