Skip to content

chore(quest): finish m2/c/name-clash now that rust2#66 merged - #7231

Merged
kixelated merged 2 commits into
mainfrom
quest/m2/c/name-clash
Oct 29, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest/m2/c/name-clash

Conversation

@kixelated

@kixelated kixelated commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Finishes quest/m2/c/name-clash.md, a waiting quest whose condition has cleared: kixelated/rust2#66 merged on 2026-10-26 (merge commit 186229f). It moved rust2's UniFFI fork C generator (uniffi/cpp/bindgen/src/bindings/c/gen_c.rs) to GLib naming: CamelCase types, snake_case functions.

Changes

  • Deletes quest/m2/c/name-clash.md and its link from the Generated C bindings epic.
  • quest/m2/c/README.md: says the generator fix has landed in rust2, and that the switch reverts the MoqAudioEncoderFinished rename. The old wording waited on name-clash.
  • quest/m2/uniffi-fork.md gets the moq-side work that the deleted quest left over, since that quest owns the generator pin:
    • The goal and the bindings-diff step now allow two expected differences: C type names, and the record rename.
    • A new C names bullet: the GLib rule, c/moq (probe, shutdown.c, docs) adopting the CamelCase type names, and reverting MoqAudioEncoderFinished to MoqAudioEncoderFinish. That rename came from moq-dev/moq#6052. Each wrapper's EncoderFinish alias (Dart, Go, Kotlin, Python, Swift) follows the revert, so wrapper APIs do not change.
    • A note that rust2's C backend still refuses Duration. moq-ffi's audio configs use it (for example frame_duration: Option<Duration>), and moq's current pin (kixelated/uniffi-bindgen-cpp v0.11.0-kixelated.7+v0.32.2) accepts it. So the fork has to support Duration before the switch can generate C. The deleted quest had flagged this gap, and no other quest tracked it.
    • The Public API line now lists the C type-name change and the record rename.

Verification

  • gh pr view 66 -R kixelated/rust2: merged, and it touches gen_c.rs.
  • moq's C generator is still the kixelated/uniffi-bindgen-cpp flake pin (c/moq/CMakeLists.txt runs uniffi-bindgen-cpp). So the fix has not reached moq's build yet, and the revert can't happen in this PR. That is why it moves to the switch.
  • rust2 main's gen_c.rs still has Type::Timestamp | Type::Duration | ... => bail!("the C backend does not support ..."). The pinned generator's gen_c.rs handles Type::Duration.
  • quest check --base origin/main: 654 documents ok.

Choices made without asking

  • The revert and the C name adoption go into the switch quest, not into a new quest or the C epic's own work. The deleted quest's plan already said the rule "reaches moq's build through Switch to rust2's UniFFI, which owns the pin". Also, c/moq's probe uses snake_case type names (moq_error, moq_work), so it has to change in the same PR that pins the new generator.
  • The Duration gap is recorded as a precondition in the switch quest, without a new quest. Suggested follow-up below.

Suggested follow-ups

  • A rust2 quest (or a moq waiting quest) for rust2's C backend to accept Duration, matching moq's current kixelated/uniffi-bindgen-cpp C generator ({ns}_duration scalar). Without it the switch cannot generate moq-ffi's C header.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

kixelated and others added 2 commits October 28, 2026 23:15
Quest-Claim: 728d0670585a1a41
moq-dev/rust2#66 merged the GLib C naming rule into rust2's fork, so
the waiting quest is done. Its remaining moq-side work (adopting the new
C type names, reverting the MoqAudioEncoderFinished rename, and the
Duration gap in rust2's C backend) moves to quest/m2/uniffi-fork.md,
which owns the generator pin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title One C name per moq-ffi item chore(quest): finish m2/c/name-clash now that rust2#66 merged Oct 29, 2026
@kixelated
kixelated marked this pull request as ready for review October 29, 2026 06:18
@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5ab7fdad-356a-47ef-a09a-bae587b22385
Commits

Reviewing files that changed from the base of the PR and between 4f7f7c4 and 03dc282.

Files selected for processing: 3
  • quest/m2/c/README.md
  • quest/m2/c/name-clash.md
  • quest/m2/uniffi-fork.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T06:19:37.370717Z 03dc282 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Automated review by review (OpenAI)

Reviewed 03dc282. No actionable findings.

The direction is sound: consolidate the remaining C-name adoption, record revert, wrapper aliases, and Duration prerequisite into the generator-switch quest rather than leave a completed waiting quest. The local C generation path, audio types, and wrapper aliases support that plan.

Static review of the changed plans and relevant moq sources only. No builds or tests run; upstream generator implementation and merge status were not independently verified.

(Written by OpenAI)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary for 03dc282:

  • Reviews: Codex (👍, no findings) and the automated OpenAI review both covered this head, with no actionable findings. CodeRabbit was rate-limited.
  • CI: all 12 checks pass. quest check --base origin/main --branch quest/m2/c/name-clash reports 654 documents ok.
  • Decisions: none outstanding. The PR body's choices stand. The C-name adoption and the MoqAudioEncoderFinished revert move into quest/m2/uniffi-fork.md, and the Duration gap is recorded there as a precondition.
  • Suggested follow-up (not blocking): a quest for rust2's C backend to accept Duration, to be planned with /quest-plan.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit 23d12c0 Oct 29, 2026
12 checks passed
@kixelated
kixelated deleted the quest/m2/c/name-clash branch October 29, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant