Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions quest/m0/doc-drift.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# [S] Docs and test notes match the code

## Goal

Ignored tests name a recipe that exists, and `just check` keeps it so,
`record.rs` describes how recording actually encodes, and `CONTRIBUTING.md`'s
PR rules fit the quest PRs agents open, so neither people nor agents follow
instructions that fail.

## Plan

Decided 2026-11-12 (maintainer, /quest-plan), from studio's trimmed Pullfrog
learnings:

- `CONTRIBUTING.md:9` and `:15-21` require conventional-commit titles and
Problem/Approach/Impact sections on every PR, but quest PRs (#108, #110,
#112, #114, #115, #126, #141, #143) use the quest guide's sections and
`quest` type titles, such as `quest:` or `quest(m0/ux):`. Which changes?
- ✅ Exempt quest PRs: a PR that only adds or edits quests follows the quest
guide's format and a `quest` type title, with or without a scope
(rejected: make quest PRs carry the template too).
- 59 `#[ignore]` reasons say `just rs render-sw` (54 in
`rs/moq-scene/src/compositor.rs`, 5 in `rs/moq-studio/src/engine.rs`), but
the recipe is `just render-sw` in the root `justfile`. Fix every one main
holds, and add a `just check` step that fails when an `#[ignore]` reason
names a `just` recipe the root `justfile` does not define (`just
--summary` lists them). Open PR
[moq-dev/studio#146](https://github.com/moq-dev/studio/pull/146) adds
another with the wrong name and edits the recipe. Check skips drafts but
runs when one is marked ready, testing its merge with `main` as of that
run, so #146, a draft held until moq's timed catalog is pinned, runs the
lint once marked ready after this lands; if #146 lands first, this fixes
its reason too. `main`'s ruleset does not require an up-to-date branch,
so if #146 is ready with a passing Check when this lands, update its
branch (`gh pr update-branch 146`), or ask the session holding it to, and
hold it from merging until that Check passes.
- `rs/moq-studio/src/record.rs:4-6` says a recording of the program shares
the live encoders, but `rs/moq-studio/src/engine.rs:1811-1852` gives the
recording its own full-size encoder (`recorded_video`, `record: true`) in
a hidden broadcast. Rewrite only the program's half: the sources' half
(`record.rs:6-9`) is accurate, since local sources are read from the
studio's local broadcast (`engine.rs:932-935`).
34 changes: 34 additions & 0 deletions quest/m0/pin-on-main.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# [XS] The moq pin is checked to be on moq's main

## Goal

A PR that points the `moq` submodule at a commit not on moq-dev/moq's `main`
fails a check, as `AGENTS.md:14` already requires in prose.

## Plan

From studio's trimmed Pullfrog learnings (2026-11-12, maintainer,
/quest-plan).

`sh/check-moq-pin.sh` checks only that the checkout matches the gitlink, that
the submodule is clean, and that no moq git dependency appears beside it.
`sh/upgrade-moq.sh` fetches moq's `main` but checks out any revision given.

- Add a script that fetches moq's `main` into the submodule with its whole
commit history, since CI's submodule checkout is shallow (`--unshallow`
where it is, with `--filter=tree:0` to keep it small), and fails unless
`git merge-base --is-ancestor <gitlink> FETCH_HEAD` holds.
- Run it as its own step in `.github/workflows/check.yml`, not from
`just check`, so a local `just check` stays offline, and only on a pull
request whose `moq` gitlink differs from its base's
(`github.event.pull_request.base.sha`), so an unchanged pin fetches
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
nothing and never fails on a network error. The checkout is shallow
(depth 1, the merge commit only), so the step first runs
`git fetch --no-tags --depth=1 origin <base sha>` and compares
`git rev-parse <base sha>:moq` with `git rev-parse HEAD:moq`; that fetch
is one small commit and reads no submodule.
- `just upgrade-moq <rev>` runs the same ancestry test after its fetch and
refuses a revision off `main`.

[pin-main](/quest/m0/pin-main.md) catches the studio up to moq's `main` and
is unaffected: the current pin, `644d48996`, is on `main`.