Skip to content

merge queue: checking main (346ae9c) and #1758 together - #1764

Closed
mergify[bot] wants to merge 2 commits into
mainfrom
mergify/merge-queue/6d94ceee86
Closed

merge queue: checking main (346ae9c) and #1758 together#1764
mergify[bot] wants to merge 2 commits into
mainfrom
mergify/merge-queue/6d94ceee86

Conversation

@mergify

@mergify mergify Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

🎉 This pull request has been checked successfully and will be merged soon. 🎉

Branch main (346ae9c) and #1758 are queued together for merge.

This pull request has been created by Mergify to check the mergeability of #1758.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule default for merge:

Required conditions to stay in the queue:

---
checking_base_sha: 346ae9cbbb94a3e18558f132c26837dcce6927ad
previous_check_retries: []
previous_failed_batches: []
pull_requests:
  - number: 1758
    scopes: []
scopes: []
...

jd and others added 2 commits August 5, 2026 14:15
The activity log (GET /v1/repos/.../logs) carries every event type the
engine records — the action.queue.* family, the workflow actions,
ci_insights.*, command.* — behind a contract with sharp edges that cost
#1747 ~700 lines to pin for a single lookup: a silent
`received_from = received_to - 1 day` default that makes a pull
request dequeued last week read exactly like one never queued, a raw
422 on ranges over 93 days while retention is 90, opaque-cursor
pagination, and unstated ordering.

Own that contract once, in a new `mergify-events` crate, so nothing
above it thinks about the traps:

- **The window is always explicit.** `Window` carries both bounds and
  every request sends them; the silent 1-day default is unreachable.
- **The 93-day cap is a typed error.** `Window` refuses to construct a
  range the API would 422 on, and "everything retained" is spelled
  `Window::retained` — the widest useful window has a name.
- **Pagination is followed to completion** via the RFC 5988 `Link`
  cursors (new `Client::get_page` in mergify-core, which extracts only
  the cursor from the rel="next" target so a server cannot rewrite the
  caller's query), with a same-cursor loop guard.
- **Ordering is guaranteed newest-first** by the client after
  collecting — a promise of the crate, not an observation about
  today's server.
- **Unknown fields pass through verbatim.** An `Event` keeps the raw
  API object untouched next to a decoded envelope of the fields every
  event shares, so a newer engine cannot break an older CLI and
  `--json` republishes Mergify's contract, not this crate's.

Nothing consumes the crate yet: the next two changes port `queue
show`'s last-leave fallback onto it (so the contract has one home) and
add `mergify events`.

Part of MRGFY-8363.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Change-Id: I1f15266ac6680c63d95dddeec34978ad4edf0a50
@mergify
mergify Bot deployed to Mergify Merge Protections August 6, 2026 08:37 Active
@mergify
mergify Bot temporarily deployed to func-tests-live August 6, 2026 08:37 Inactive
@mergify mergify Bot closed this Aug 6, 2026
@mergify
mergify Bot deleted the mergify/merge-queue/6d94ceee86 branch August 6, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant