Omniscio documentation
Browse all documentation
  1. Getting Started19
  2. Sessions & Agents135
  3. Inbox & Notifications68
  4. Projects & Tasks98
  5. Automation & Scheduling76
  6. Knowledge & Memory28
  7. AI Features71
  8. Integrations112
  9. Plugins & Marketplace41
  10. Cloud & Teams52
  11. Settings & Customization76
  12. Account & Billing28
  13. Troubleshooting80
  14. CLI & API Reference28
  15. Legal & Policies5
  16. Uncategorised17

PR Merge Queue (part 3)

Part 3 of the PR Merge Queue page: the optional one-line AI summary shown as each PR's headline, generated once per commit, off by default, and never able to break a refresh when the model fails.

What it is

This is part 3 of the PR Merge Queue page. It covers the one optional reading aid the queue adds on top of GitHub's own PR list: a short plain-English line saying what each PR actually changes, so a long queue can be triaged without opening every PR.

Where to find it

The summary appears on each PR pill in the PR Merge Queue view, as the pill's headline. The switch that turns it on is Settings → PR Merge Queue → "AI PR summaries" (prMergeQueueAiSummariesEnabled).

How it behaves

AI summaries

When the PR Merge Queue fetches a repo's open PRs, it can generate a one-line plain-English summary of each PR and show it as the pill headline instead of the raw GitHub PR title. The summary distills what the change actually does — making it easier to triage a list of PRs at a glance without clicking into each one.

Where you see it. Each PR pill in the view shows #num · <summary> as its headline when a summary is available; if no summary exists (feature off, generation failed, or not yet fetched), the pill falls back to the PR title unchanged.

Caching — one generation per head SHA. Summaries are persisted in a pr_merge_queue_summaries table (PK gh_slug, pr_number). Once a summary is generated for a given commit SHA, subsequent refreshes return it instantly with no model call. A new commit to the PR branch (new headRefOid) invalidates the cached entry and triggers a fresh generation on the next refresh.

Turning it on/off. The setting is prMergeQueueAiSummariesEnabled — OFF by default (false), so on a fresh install no summaries are generated until you turn it on at Settings → PR Merge Queue → "AI PR summaries". With the setting off, maybeCreatePrSummarizer returns undefined, no model calls are made, and the view shows PR titles everywhere.

Privacy note. When a summary is generated, Omniscio sends the PR title, description, and changed-file list to the lightweight AI provider configured in your Omniscio settings. If your repo's PR bodies contain sensitive information, turn the setting off.

Graceful degradation. A model failure during summarization never breaks the poll: createPrSummarizer returns the stale cached summary when one exists, or null otherwise — it never throws. A null result means the profile's aiSummary stays undefined and the UI silently falls back to the PR title. The refresh completes normally regardless.

Cost tracking. Summary generation uses llmProviderService.chat with source: 'pr-merge-queue-summary', so each call's cost lands in the api_cost_log table under that source label. There is no separate per-repo budget cap for summaries — they are generated once per head SHA and are cheap; the on/off toggle is the primary control.

The rules summaries-cache-per-head-commit, summaries-never-break-the-poll, summaries-ride-existing-read-paths and summary-spend-is-labelled in pr-merge-queue-contract.md lock the caching, gating, read-path, and cost-tracking behavior.

For agents

The summarizer lives in src/main/services/pr-merge-queue/, its cached rows in the pr_merge_queue_summaries table owned by src/main/db/, and the setting is read on the main side before the poll builds a summarizer. The four rules named above in pr-merge-queue-contract.md are the invariants to keep.

Related

  • PR Merge Queue — the user-facing half: the lanes, the merge buttons, the Inbox nudges and the archiving rules.
  • PR Merge Queue (part 2) — the machinery: what is persisted, the in-flight dedup, custom merge instructions, the IPC channels and the auto-merge daemon.

Last verified 2026-10-17