Skip to content

agents: don't spend cycles detecting a publisher that breaks identity - #8242

Merged
kixelated merged 3 commits into
mainfrom
agents/publisher-misuse
Nov 8, 2026
Merged

kixelated merged 3 commits into
mainfrom
agents/publisher-misuse

Conversation

@kixelated

@kixelated kixelated commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds one Required rule to AGENTS.md: a publisher that breaks the identity rule (reused or restarted group sequences) hurts only its own broadcast, so code spends no cycles detecting it. It must still never panic, cost unbounded work, or affect other broadcasts.

REVIEW.md's "Not findings" entry on reused IDs now also covers a publisher's reused sequences, so reviewers stop raising it. That list says AGENTS.md decides its entries, and until now no rule there backed this one.

Prompted by the maintainer (2026-11-07, /quest-spawn), after deciding moq-dev/moq#8202 drops both its restart detection and its recreated-track check.

It also deletes quest/m1/copy-identity.md, which planned per-frame timestamp and field digests so that disagreeing copies of one group identity fail. Under this rule that is detection of a publisher's own misuse. Maintainer decision, 2026-11-07: drop it entirely; its draft moq-dev/moq#8201 is closed. Not chosen: keeping only the check that refuses commits past a group's settled end.

Impact

Public API: none. Wire: none. Agent instructions only.

Models

Size: XS
Implementer: Claude Code, claude-opus-5-5, unknown effort
Implementer: Claude Code, claude-opus-5-5, low effort (iterate, XS)

Review

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, low effort
  • Session: 01a1b99a-be1b-7622-9de2-6ebb808fd7b2, round 1
  • Head: fda232e
  • Base: origin/main at e18730d
  • Score: 10/10, The change updates guidance and removes the abandoned quest without changing executable code or leaving references to the deleted quest.
  • Findings: none

A publisher that reuses or restarts group sequences, or rewinds
timestamps, hurts only its own broadcast. Code must stay safe (no panic,
no unbounded cost, no effect on other broadcasts) but not detect it.
REVIEW.md's matching "Not findings" entry now covers reused sequences.

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

@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 80f185c using the base branch's review rules.

No actionable findings. The two changes distinguish the publisher's identity contract from runtime detection of misuse confined to its own broadcast, while explicitly retaining panic prevention, bounded work and isolation of other broadcasts. REVIEW.md keeps the same confinement condition rather than making all sequence-reuse consequences non-findings.

Direction: preserve those safety boundaries when applying this guidance; this instruction-only change does not establish that any particular implementation's detection can be removed safely.

Verification limits: GitHub-only static review of both complete instruction files, base guidance and the referenced #8202 context. No implementation audit, tests or quest commands run. Rechecked open/non-draft state, full head and published reviews immediately before this COMMENT.

Copies of one group identity disagree only when the publisher broke the
identity rule, which hurts only its own broadcast. Maintainer decision,
2026-11-07: drop it entirely.

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

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The review guidance now states that publisher identity or timestamp violations must not cause panics, unbounded work, or effects on other broadcasts. It also excludes reports about publisher sequence reuse when only the publisher’s own broadcasts are affected.

Merge Risk: Minimal · up to 80f18

The guidance excludes publisher-local sequence violations without relaxing safety requirements for other broadcasts. No merge-blocking risk is identified.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: a new AGENTS.md rule that tells code not to spend effort detecting publishers that break the identity rule. The raw summary, objectives, and description all describe t…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description states that one Required rule is added to AGENTS.md. It says publishers that reuse or restart group sequences only harm their own broadcast, so the code does not detect them. It also s…
Full details: Title check

Explanation

The title names the main change: a new AGENTS.md rule that tells code not to spend effort detecting publishers that break the identity rule. The raw summary, objectives, and description all describe this same rule, so the title matches the changeset.

Full details: Description check

Explanation

The description states that one Required rule is added to AGENTS.md. It says publishers that reuse or restart group sequences only harm their own broadcast, so the code does not detect them. It also says REVIEW.md's Not findings entry on reused IDs now covers publisher reused sequences. It deletes quest/m1/copy-identity.md and gives the related PR and maintainer decision. This matches the changeset, which edits AGENTS.md and REVIEW.md and removes the quest file.

Finishing Touches

Simplify code

  • Commit to this branch
  • Create a new PR
  • 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

Recent review info

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: b86e8fe3-e067-4d4b-bfeb-244769f52dea
Commits

Reviewing files that changed from the base of the PR and between f8d30a1 and 80f185c.

Files selected for processing: 2

  • AGENTS.md
  • REVIEW.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Important

Two contradictions to resolve before this lands: the timestamp example in the new rule reads as forbidding main's deliberate TimestampMismatch refusal, and the rule lands ahead of the #8202 / quest changes that remove the recreated-track detection it forbids.

Reviewed changes

  • New Required rule — AGENTS.md:13 says a publisher that reuses or restarts group sequences or rewinds timestamps hurts only its own broadcast, so code spends no cycles detecting it and must only avoid panics, unbounded work, and cross-broadcast effects.
  • Not-findings entry widened — REVIEW.md:55 now covers a publisher's reused sequences alongside a peer's duplicate IDs when only the sender's own requests or broadcast suffer.

⚠️ The rule lands before the code and quest it invalidates

The PR body says #8202 drops its recreated-track check, but #8202's head (38a49ab) still adds Error::Reused / Reused and the per-name high-water record; only the restart detection and its quest were dropped. quest/m2/sequence-reuse.md is still on main (listed at quest/m2/README.md:201) and its Goal mandates exactly the detection this rule forbids, so whichever PR lands first, main will hold instructions that contradict each other and quest context will tell agents to build the check.

Technical details
# Rule lands before the code and quest it invalidates

## Affected sites
- `AGENTS.md:13` — new Required rule.
- `quest/m2/sequence-reuse.md:1` — "A recreated or restarted track cannot reuse group sequences"; its Goal says moq-net "refuses" reuse. Still on main and listed at `quest/m2/README.md:201`.
- `#8202` at `38a49ab` — still adds `Error::Reused` (`rs/moq-net/src/error.rs`), the per-name high-water record (`rs/moq-net/src/model/broadcast.rs`), and the JS `Reused` path (`js/net/src/error.ts`, `broadcast.ts`, `track.ts`). Its own commit message says "the recreated-track half ... landed in #8202".
- `js/net/src/broadcast.ts:439` — the `createTrack` doc on main already promises the append throws on a reused sequence.

## Required outcome
- After both PRs land, no instruction file, quest, or API doc asks for reused-sequence detection, and `#8202` does not implement it.
- The PR body's claim about `#8202` matches `#8202`'s head.

## Open questions for the human
- Is the recreated-track refusal being dropped, as this body says? If yes, `#8202` needs that commit before this rule lands, and `js/net/src/broadcast.ts:439` needs its promise removed.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Comment thread AGENTS.md Resolved

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ℹ️ Reviewed the new commit only; the copy-identity quest deletion is clean. One scope question about the existing copy-conflict checks the deleted quest described.

Reviewed changes

  • quest/m1/copy-identity.md removed — the per-frame timestamp and object-field digest plan is dropped under the new rule, along with its quest/m1/README.md entry; #8201 is closed unmerged as the body says.
  • The AGENTS.md and REVIEW.md edits are unchanged since the prior review and are not re-reviewed here.

ℹ️ The rule's boundary against existing copy-conflict checks is unstated

The deleted quest described the existing size/inflated and overlapping-byte comparisons (rs/moq-net/src/model/group/content.rs:90, rs/moq-net/src/model/frame.rs:1155) as the narrow version of the digest check it wanted to add. Those checks still fail a disagreeing copy with ProtocolViolation on main, which the new rule's "spend no cycles detecting it" can be read to retire, yet the body says "Impact: none". State whether the existing conflict checks stay (and carve them out) or are a follow-up.

Technical details
# Rule boundary for existing copy-conflict checks

## Affected sites
- `rs/moq-net/src/model/group/content.rs:90` — `size`/`inflated` mismatch returns `ProtocolViolation`.
- `rs/moq-net/src/model/frame.rs:1155` — overlapping-byte mismatch returns `ProtocolViolation`.
- `rs/moq-net/src/model/frame.rs:1889`, `2011` — tests asserting the refusal.
- `js/net/src/group.ts:512` — JS counterpart's inflated-size refusal.
- `quest/m1/copy-identity.md` (deleted) — named these as the narrow version of the planned digest check.

## Required outcome
- The rule says whether the existing copy-conflict refusal stays, so the body's "Impact: none" is accurate and an agent does not read the rule as retiring these checks.

## Open questions for the human
- If the existing checks stay, what distinguishes them from the deleted timestamp/field digests?

Pullfrog  | Fix it ➔ | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

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

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes

  • Rule scoped to identity breaks — fda232e dropped rewinding timestamps from the AGENTS.md:13 example list, leaving the ordering refusal to rs/moq-net/AGENTS.md, and named the violation as the subject of the no-panic/no-unbounded-work clause. That addresses the prior inline finding on AGENTS.md:13, and the rule now matches what #8202 (merged as e18730d) documents: nothing detects a reused group identity.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 8, 2026
Merged via the queue into main with commit 118cbb1 Nov 8, 2026
10 of 12 checks passed
@kixelated
kixelated deleted the agents/publisher-misuse branch November 8, 2026 06:20
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