Skip to content

quest(m1): plan five refactors from the 2026-10-22 audit - #6338

Merged
kixelated merged 3 commits into
mainfrom
claude/astra-audit-refactor-5636d7
Oct 22, 2026
Merged

kixelated merged 3 commits into
mainfrom
claude/astra-audit-refactor-5636d7

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Plans the findings from a 2026-10-22 simplification audit (main at d44813c) that the maintainer agreed with and that no quest already owns. All five join m1.

New quests

  • quest/m1/catalog-phantom.md [M]: moq-video, moq-audio and moq-mux producers drop an E: CatalogExt held only in PhantomData. Breaking Rust API.
  • quest/m1/json-encoder-options.md [S]: moq-mux json_snapshot gets deltas without an Any downcast. Requires refresh/json (moq-dev/moq#6054) and the phantom quest.
  • quest/m1/annexb-export.md [M]: one private Annex-B lifecycle for H.264/H.265 export, which also follows a rebound rendition. Requires moq-dev/moq#6276's quest.
  • quest/m1/cli-duration.md [S]: moq-cli, moq-bench and moq-relay reuse a public moq_tokio::cli::Duration.
  • quest/m1/js-ui.md [M]: new @moq/ui package for the graph, buttons and support banner duplicated across @moq/watch and @moq/publish.

Not planned

  • Lite/IETF GroupServe, IETF start() halves, and the adapter queue are already in the m1 simplification audit's "Check first" list (moq-dev/moq#6108).
  • The C/FFI duplication is covered by that audit's proposals and the generated C work (moq-dev/moq#6052).
  • usage-rs dual declarations: the fix is upstream in jdx/usage, and drift tests already guard it.

Decisions

Which audit items should get new quests?

The two small CLI/config items (#8 duration, #9 usage-rs dual declarations)?

  • ✅ Duration only (Recommended)
  • Both
  • Neither

Items #4-#6 are already in the m1 simplification audit. Split any out?

  • ✅ Leave in audit (Recommended)
  • Split GroupServe out
  • Split all three out

Which milestone for the non-breaking refactors?

  • m2 (Recommended)
  • ✅ m1

#3: how should deltas reach json_snapshot without the Any downcast?

  • Separate options arg (Recommended)
  • Builder on the handle
  • ✅ Let the quest propose

#7: where should the shared watch/publish UI live?

  • ✅ New @moq/ui package (Recommended)
  • @moq/signals subpath
  • Watch owns, publish imports

#8: how should the four duration wrappers consolidate?

  • ✅ Export moq-tokio's (Recommended)
  • Private copies, use humantime-serde

#2: how should the Annex-B refactor relate to the rebind PR?

Public API and wire impact: none in this PR (quest files only).

quest check passes.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

Catalog phantom generics, JSON encoder options without a downcast, one
Annex-B exporter, one CLI duration type, and a shared @moq/ui package.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 22, 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 25 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: 622de266-b690-4c6d-a10e-c954282a9203
📥 Commits

Reviewing files that changed from the base of the PR and between 281ad77 and 21b9cc0.

📒 Files selected for processing: 6
  • quest/m1/README.md
  • quest/m1/annexb-export.md
  • quest/m1/catalog-phantom.md
  • quest/m1/cli-duration.md
  • quest/m1/js-ui.md
  • quest/m1/json-encoder-options.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 22, 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-22T19:51:50.242006Z 21b9cc0 New commits
ℹ️ 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

Copy link
Copy Markdown
Collaborator Author

Ready to merge: five m1 quests (catalog phantom generics, JSON encoder options, one Annex-B exporter, one CLI duration type, shared @moq/ui), with every interview decision recorded in the description and in each quest's Plan. Codex reviewed the head with no findings; CodeRabbit was rate limited. quest check --base origin/main passes. Enabling auto-merge.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 22, 2026
@kixelated
kixelated removed this pull request from the merge queue due to a manual request Oct 22, 2026
@kixelated
kixelated added this pull request to the merge queue Oct 22, 2026
@kixelated
kixelated removed this pull request from the merge queue due to a manual request Oct 22, 2026
kixelated and others added 2 commits October 22, 2026 12:49
#6054 landed and deleted quest/m1/refresh/json.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Dropped out of the queue because #6054 finished and deleted quest/m1/refresh/json.md, which json-encoder-options.md listed under Required. Merged main and removed that finished blocker; quest check passes.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 22, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 21b9cc08e3

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +19 to +21
Decided 2026-10-22 (maintainer): drop `E` only where it is phantom. It stays
on `Reserved<E>`, `Timebase<E>`, the catalog `Producer<E>` and capture
drivers that own a typed catalog, because those store it. JSON's `T` stays.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include the audio reservation in the generic removal

moq_audio::encode::producer::Reserved<E> does not store a typed catalog: it contains only the erased track plus _ext: PhantomData, and its constructor consumes catalog before building the reservation. Exempting Reserved<E> therefore contradicts the stated “drop E only where it is phantom” rule and leaves another instance of the same unnecessary generic behind; include this private reservation and its capture-state callers in the quest scope instead of claiming it stores E.

AGENTS.md reference: AGENTS.md:L23-L25

Useful? React with 👍 / 👎.

Merged via the queue into main with commit ad624c9 Oct 22, 2026
9 checks passed
@kixelated
kixelated deleted the claude/astra-audit-refactor-5636d7 branch October 22, 2026 20:42
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