Add Update 01 blog post - #116
Conversation
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
There was a problem hiding this comment.
Sorry @kixelated, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
WalkthroughAdded 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)
✨ Finishing Touches✨ Simplify code
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (1)
src/pages/blog/update-01.mdx
| - **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. |
There was a problem hiding this comment.
📐 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}")
PYRepository: 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.
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
Patch notes for the
devbranch merge.Contents
.stats/node/<node>broadcast and the moq-stats crateMerging 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 onmain.Frontmatter
The draft had none, which hard-fails
just build:src/pages/rss.xml.jskeeps any post with a truthyfrontmatterobject, so a block-less MDX file reaches@astrojs/rssas{title: undefined, description: undefined, pubDate: Invalid Date}and trips its validation. Notebun run check(whatpr.ymlruns) passes either way, so CI would have been green on a build that cannot deploy.coverreuses/blog/update-00/globe.pngsince there is nopublic/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.rsrather than taken on faith:<prefix>/node/<node>(default prefix.stats), not.stats/<node>.json.zsibling track, not gzipPlus a compound-modifier hyphen.
Test plan
bun run check- clean (the one biome "info" is a pre-existing config-migration notice onbiome.jsonc)just build- 33 pages, was 32/blog/never-use-datagrams, RFC 9725, the WHEP draft, iroh-live, all referenced crates on crates.io, and each binding's registry and doc hostOpen 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) anddoc/lib/swift/index.mdupstream uses this same URL as its canonical API reference, so I left it. Worth opening in a browser once.Not included
open-for-business.mdxandvoice-ai.mdxare 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