Skip to content

Add Update 01 blog post - #116

Merged
kixelated merged 2 commits into
mainfrom
blog-update-01
Jul 31, 2026
Merged

Add Update 01 blog post#116
kixelated merged 2 commits into
mainfrom
blog-update-01

Conversation

@kixelated

@kixelated kixelated commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Patch notes for the dev branch merge.

Contents

  • moq-lite-05 - FETCH, DATAGRAMS, PATH, plus the TIMESTAMPS/HOPS/PROBE extensions
  • Export/Import - moq-rtmp, moq-rtc, moq-srt, moq-hls
  • Stats - the .stats/node/<node> broadcast and the moq-stats crate
  • moq-net API - the one big breaking change
  • Language Bindings - Python, Go, Kotlin, Swift, and C, each linked to its registry/doc host
  • Native Media - moq-video, moq-audio, moq-transcode

Merging does not publish this

Since #117, nothing ships on merge. The post goes live, and the announcement email goes out, on the next just deploy live. Merging here only puts it on main.

Frontmatter

The draft had none, which hard-fails just build: src/pages/rss.xml.js keeps any post with a truthy frontmatter object, so a block-less MDX file reaches @astrojs/rss as {title: undefined, description: undefined, pubDate: Invalid Date} and trips its validation. Note bun run check (what pr.yml runs) passes either way, so CI would have been green on a build that cannot deploy.

cover reuses /blog/update-00/globe.png since there is no public/blog/update-01/ yet. Worth swapping for a post-specific image.

Review fixes

CodeRabbit caught two factual errors in the Stats section, both confirmed against rs/moq-stats/src/lib.rs rather than taken on faith:

  • the broadcast path is <prefix>/node/<node> (default prefix .stats), not .stats/<node>
  • compression is group-scoped DEFLATE with RFC 7396 merge-patch deltas on a .json.z sibling track, not gzip

Plus a compound-modifier hyphen.

Test plan

  • bun run check - clean (the one biome "info" is a pre-existing config-migration notice on biome.jsonc)
  • just build - 33 pages, was 32
  • Verified every link resolves: the moq-lite-05 draft, /blog/never-use-datagrams, RFC 9725, the WHEP draft, iroh-live, all referenced crates on crates.io, and each binding's registry and doc host

Open item

CodeRabbit reported the Swift Package Index link as a 404. I could not confirm or refute it: SPI returns 403 to every non-browser client, including its own package root, so neither of us actually reached the page. The repo does have a .spi.yml (doc generation is opted in) and doc/lib/swift/index.md upstream uses this same URL as its canonical API reference, so I left it. Worth opening in a browser once.

Not included

open-for-business.mdx and voice-ai.mdx are still untracked drafts. They have the same missing-frontmatter problem and will break the build the same way when they land.

(written by Opus 5)

🤖 Generated with Claude Code

https://claude.ai/code/session_01QnCscaFDaj6TaBahqxXGqb

Patch notes for the dev branch merge: moq-lite-05, export/import for
legacy formats, the .stats broadcast, the moq-net API reshuffle, native
media crates, and the new Python/Go/Kotlin/Swift/C bindings.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QnCscaFDaj6TaBahqxXGqb

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @kixelated, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Added the “Update 01” blog post with frontmatter and an introduction. The post covers moq-lite-05 protocol additions, media import and export support, relay and client statistics, breaking moq-net API changes, Python, Go, Kotlin, Swift, and C bindings, Rust native media crates, planned iroh-live integration, and author attribution.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely identifies the main change: adding the Update 01 blog post.
Description check ✅ Passed The description directly explains the blog post content, build requirements, validation results, and review fixes.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch blog-update-01

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/blog/update-01.mdx`:
- Line 103: Update the moq-video description so the compound modifier reads
“OS/GPU-specific APIs,” preserving the rest of the sentence unchanged.
- Line 93: Update the Swift entry in the documentation list to replace the
broken Swift Package Index documentation URL with a verified working SPM/package
or documentation link for moq-dev/moq-swift, keeping the existing label and
formatting unchanged.
- Around line 46-50: Update the metrics wire-contract description in the blog
post to use the default `.stats/node/<node>` topic, or `.stats/node` when the
node ID is unset. Describe each update as a full JSON snapshot plus RFC 7396
merge-patch deltas on `.z` tracks using DEFLATE group compression, replacing the
inaccurate `.stats/<node>`, gzip, and JSON Merge wording.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c68dc12-684b-4657-be74-7511cb61f429

📥 Commits

Reviewing files that changed from the base of the PR and between 05c2204 and 78b2e4f.

📒 Files selected for processing (1)
  • src/pages/blog/update-01.mdx

Comment thread src/pages/blog/update-01.mdx Outdated
- **Python**: [`moq-rs`](https://pypi.org/project/moq-rs/) on PyPI ([docs](https://moq-rs.readthedocs.io)).
- **Go**: [`github.com/moq-dev/moq-go`](https://pkg.go.dev/github.com/moq-dev/moq-go).
- **Kotlin**: [`dev.moq:moq`](https://central.sonatype.com/artifact/dev.moq/moq) on Maven Central ([docs](https://javadoc.io/doc/dev.moq/moq)).
- **Swift**: [`moq-swift`](https://swiftpackageindex.com/moq-dev/moq-swift/documentation/moq) via SPM.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== locate file =="
git ls-files | grep -F 'src/pages/blog/update-01.mdx' || true

echo "== relevant lines =="
sed -n '80,100p' src/pages/blog/update-01.mdx 2>/dev/null || true

echo "== swift links in repo =="
rg -n "moq-swift|moq-dev/moq-swift|swiftpackageindex|doc\.moq\.dev|swiftpackage" src/pages/blog/update-01.mdx src/pages/blog || true

echo "== fetch link status and redirect headers =="
python3 - <<'PY'
import urllib.request

urls = [
    "https://swiftpackageindex.com/moq-dev/moq-swift/documentation/moq",
    "https://github.com/moq-dev/moq-swift",
    "https://doc.moq.dev/lib/swift/",
]
for url in urls:
    try:
        req = urllib.request.Request(url, method='HEAD', headers={"User-Agent": "CodeRabbit-link-check"})
        with urllib.request.urlopen(req, timeout=15) as r:
            print(f"{url}: {r.status} {r.geturl()}")
    except Exception as e:
        print(f"{url}: ERROR {type(e).__name__}: {e}")
PY

echo "== fetch package/index pages =="
python3 - <<'PY'
import urllib.request
urls = [
    "https://github.com/moq-dev/moq-swift",
    "https://doc.moq.dev/lib/swift/",
    "https://swiftpackageindex.com/moq-dev/moq-swift",
]
for url in urls:
    try:
        req = urllib.request.Request(url, headers={"User-Agent": "CodeRabbit-link-check-readme"})
        with urllib.request.urlopen(req, timeout=20) as r:
            body = r.read().decode("utf-8", errors="replace")
            lines = body.splitlines()[:80]
            print(f"\n--- {r.geturl()} status={r.status} ---")
            print("\n".join(lines))
    except Exception as e:
        print(f"{url}: ERROR {type(e).__name__}: {e}")
PY

Repository: moq-dev/moq.dev

Length of output: 5590


Replace the broken Swift documentation link.

The Swift Package Index /documentation/moq link for moq-dev/moq-swift resolves to 404 Not Found. Use a working SPM/package link instead, or a working documentation link.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/blog/update-01.mdx` at line 93, Update the Swift entry in the
documentation list to replace the broken Swift Package Index documentation URL
with a verified working SPM/package or documentation link for moq-dev/moq-swift,
keeping the existing label and formatting unchanged.

Comment thread src/pages/blog/update-01.mdx Outdated
The broadcast path is `.stats/node/<node>`, not `.stats/<node>`: the
node id is a suffix under a `node` segment, per rs/moq-stats/src/lib.rs.

Compression is DEFLATE, not gzip. moq-stats publishes a `.json.z`
sibling of each track using group-scoped DEFLATE plus RFC 7396
merge-patch deltas; there is no gzip framing anywhere in the path.

Also hyphenate a compound modifier.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QnCscaFDaj6TaBahqxXGqb
@kixelated
kixelated merged commit 5fa4170 into main Jul 31, 2026
2 checks passed
@kixelated
kixelated deleted the blog-update-01 branch July 31, 2026 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant