Reconcile README: js-native-node, Go, gst, and brew token bottle are all green now#13
Conversation
@moq/web-transport 0.1.2 fixed the named-import breakage that kept the js-native-node cell red: its session.ts now default-imports the CJS binding (renamed napi.js -> napi.cjs) and destructures NapiClient, which node's ESM loader accepts. Verified locally under node 22 with the current latest deps (@moq/web-transport 0.1.2, @moq/net 0.1.5, @moq/hang 0.2.11): importing the polyfill and calling install() succeeds, with no "does not provide an export named 'NapiClient'" -- the exact module-load failure the cell documented is gone. Reconcile the docs that still called the cell red: - README.md: flip the node bullet to working; keep the break-then-fix history in past tense and cite the 0.1.2 fix. - .github/workflows/smoke.yml: drop the "currently fails" comment. - smoke.sh: also fix a stale comment naming the old @fails-components/webtransport polyfill (it's moq's own @moq/web-transport now, matching subscribe.ts and the README). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
WalkthroughThree comment-only edits document that the 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
All three were verified fixed against current published artifacts, the same way as js-native-node: - Go: moq-go is no longer stuck at v0.2.15. v0.2.22 ships moq.h and libmoq_ffi.a for linux (amd64/arm64), darwin, and windows. A real CGO_ENABLED=1 go build against it links cleanly in a linux/amd64 podman container -- the documented "go get + build fails" blocker is gone. Noted a separate, macOS-only link gap (darwin cgo LDFLAGS omit -framework CoreServices for the bundled notify crate's FSEvents symbols); CI only builds Go on Linux, so the matrix is unaffected. Filed upstream against moq go/moq/cgo.go. - gst: moq-gst releases now exist (latest moq-gst-v0.2.7) with the apt/brew/rpm/tarball + nix artifacts. Downloaded the published tarball and confirmed gst-inspect exposes moqsrc/moqsink against a system GStreamer. - brew token bottle: 0.5.31 no longer bakes in a /nix/store libiconv rpath -- its only LC_RPATH is /usr/lib, so it resolves the system libiconv and runs (generate --algorithm HS256 succeeds). Also update the smoke.yml matrix comment and soften the now-stale "the brew bottle leaks" aside on the working token-interop line. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
What
The README's Current state section listed four cells as red. All four are now fixed in current published artifacts, so this PR reconciles the docs with reality (comment/prose only — no harness logic changes). Each was verified, not just assumed.
1. Native JS on node (
js-native-node)The napi/ESM module-load break (
does not provide an export named 'NapiClient') is fixed in@moq/web-transport0.1.2 —session.tsnow default-imports the.cjsbinding and destructures, exactly as the README predicted. Verified:node --import tsximport +install()succeeds.2. Go (any role)
moq-dev/moq-gowas un-buildable (stuck at v0.2.15, missingmoq.h+ the prebuilt static libs). v0.2.22 now shipsmoq.handlibmoq_ffi.afor linux (amd64/arm64), darwin, and windows. Verified with a realCGO_ENABLED=1 go buildin alinux/amd64podman container → builds and links cleanly.LDFLAGSomit-framework CoreServices, so the bundled Rustnotifycrate's FSEvents symbols don't link on a Mac. CI only builds Go on Linux, so the matrix is unaffected. Filed upstream againstmoqgo/moq/cgo.go(libmoq'sbuild.rsalready links CoreServices — the Go side just didn't match).3. GStreamer subscribe (
gst)The "no
moq-gst-v*release yet" blocker is gone — releases now exist (latestmoq-gst-v0.2.7) with apt/brew/rpm/tarball + nix artifacts. Verified: downloaded the published tarball and ran the harness's owngst-inspect-1.0 moqcheck →moqsrc/moqsinkload against a system GStreamer.4. Token interop on the Homebrew bottle (macOS
brew)The 0.5.31 bottle no longer bakes in a
/nix/store/…-libiconvrpath (thedyld: Library not loadedabort). Verified on macOS: onlyLC_RPATHis/usr/lib, so@rpath/libiconv.2.dylibresolves to the system libiconv;generate --algorithm HS256runs and produces a token.Net effect
With these, the documented matrix is all-green. Two honesty caveats: the Go and gst entries verify the documented blocker (build / plugin-load), not a fresh end-to-end subscribe — CI exercises the full path. The new macOS Go link gap is tracked separately and doesn't affect the (Linux-only) Go cell.
🤖 Generated with Claude Code