From d4f57eabfe5786811df9af579cd85c59d3c86b85 Mon Sep 17 00:00:00 2001 From: Dotta Date: Sat, 1 Aug 2026 16:05:04 +0000 Subject: [PATCH] docs(design): PAP-16032 decisions grouping/queues wireframes + plan Co-Authored-By: Claude Fable 5 --- .../.paperclip-page/state.json | 10 + .../pap-16032-decisions-grouping/index.html | 429 ++++++++++++++++++ design/pap-16032-decisions-grouping/plan.md | 83 ++++ .../wireframes/aging-shelf.svg | 91 ++++ .../wireframes/decisions-home.svg | 182 ++++++++ .../wireframes/flow.svg | 63 +++ .../wireframes/queue-detail.svg | 119 +++++ .../wireframes/triage-card.svg | 98 ++++ 8 files changed, 1075 insertions(+) create mode 100644 design/pap-16032-decisions-grouping/.paperclip-page/state.json create mode 100644 design/pap-16032-decisions-grouping/index.html create mode 100644 design/pap-16032-decisions-grouping/plan.md create mode 100644 design/pap-16032-decisions-grouping/wireframes/aging-shelf.svg create mode 100644 design/pap-16032-decisions-grouping/wireframes/decisions-home.svg create mode 100644 design/pap-16032-decisions-grouping/wireframes/flow.svg create mode 100644 design/pap-16032-decisions-grouping/wireframes/queue-detail.svg create mode 100644 design/pap-16032-decisions-grouping/wireframes/triage-card.svg diff --git a/design/pap-16032-decisions-grouping/.paperclip-page/state.json b/design/pap-16032-decisions-grouping/.paperclip-page/state.json new file mode 100644 index 00000000000..c6c9855878f --- /dev/null +++ b/design/pap-16032-decisions-grouping/.paperclip-page/state.json @@ -0,0 +1,10 @@ +{ + "bucket": "pages.paperclip.ing", + "prefix": "pap-16032-decisions-desk/", + "slug": "pap-16032-decisions-desk", + "url": "https://pages.paperclip.ing/pap-16032-decisions-desk/", + "baseUrl": "https://pages.paperclip.ing", + "publishedAt": "2026-08-01T16:02:56Z", + "sourceHash": "0378968446e76aaf378a8ddcb2d6621d7c625697bfb773b59738df77db6c785b", + "version": 1 +} diff --git a/design/pap-16032-decisions-grouping/index.html b/design/pap-16032-decisions-grouping/index.html new file mode 100644 index 00000000000..939ddaff659 --- /dev/null +++ b/design/pap-16032-decisions-grouping/index.html @@ -0,0 +1,429 @@ + + + + + +PAP-16032 — Decisions grouping, queues & today's desk + + + +
+
+ + + PAP-16032 · Decisions UX
+ Jump to a screen +
+ +
+ +
+ +
+
+
PAP-16032 · Wireframes
+

Decisions: grouping, queues, and a "today's desk"

+

The /PAP/decisions feed currently shows every pending decision for the whole company in one uncapped list. This proposal reshapes it around three ideas: queues (named, agent-fed groupings that become the quicklinks), date ranges (today / yesterday / last week / custom), and retirement (stale items leave the desk for an aging shelf instead of accumulating forever). Agents get first-class affordances to tag, prioritize, and propose archives.

+
+ 4 screens + flow + Desktop 1280×800 + Lo-fi · monochrome + Click any wireframe to zoom +
+
+ + +
+
Context
+

What the data says

+

Measured against the live dev company on 2026-08-01 (the same data behind the screenshot in the task):

+
+ + + + + + + +
SignalValueImplication
Open in-review items290Nobody can decide 290 things; the list is write-only.
Touched today / yesterday / this week8 / 12 / 24The real daily decision load is small — a "today's desk" is viable.
Idle > 30 days146 (oldest: April)Retirement policy matters more than any sorting tweak.
Priority = "medium"261 of 290Priority as entered is dead as a ranking signal; importance must be assigned at decision time (by agents or the user).
Title-based clustering57% land in "other"Type/queue must be first-class metadata, not title heuristics.
+

The common threads in recent decisions

+
    +
  • Merge this PR — gardener / land-my-features confirmations, usually CI-green, batchable.
  • +
  • Approve this plan revision — planning-mode confirmations bound to a plan document rev.
  • +
  • Verify / accept QA result — sign-off confirmations after a QA pass.
  • +
  • Answer questions — ask_user_questions forms blocking an agent's next step.
  • +
  • Pick a subset — checkbox confirmations (e.g. "choose green PRs to merge").
  • +
+
Why queues, not hardcoded types: "PRs" is only a thing because the gardener mints merge confirmations. Another company might have "invoices" or "content". So the general rule: quicklinks = this company's queues, ordered by most recently updated, seeded automatically from structural signals (decision rule_key, interaction kind, plan-document targets, PR work products) and extendable by telling any agent "add this to the foobar queue".
+
+
+ + +
+
Flow
+

Screen flow

+

Solid arrows = navigation. Every decide / snooze / queue action returns to the desk. Archive keeps history searchable.

+
+
flow.svg1280×360
+ Flow diagram +
+
+ + +
+
Step 1 · Home
+

1.Today's desk

+

The default landing view answers "what do I need to decide TODAY, in what order" — not "what exists". Two shelves (Decide now / Can wait) ordered by importance; everything older lives behind the date chips or the aging shelf.

+
+
+
decisions-home.svg1280×800 · desktop
+ Today's desk wireframe +
+
+
+

Annotations

+
    +
  • 1 — Queue quicklinks, ordered by recently updated; dot = new activity since you last looked. "All" is the only fixed chip.
  • +
  • 2 — Date-range chips filter on activity date; Custom opens a range picker. Today is the default.
  • +
  • 3 — Backlog health: total, age histogram, and the entry point to the aging shelf — the accumulation is visible instead of silently mixed into the list.
  • +
  • 4 — "Decide now" vs "Can wait" split comes from a per-item decide-by/importance field that agents (or you) set — not from the mostly-dead issue priority.
  • +
  • 5 — Agent triage panel: agents that tag/prioritize surface their suggestions here as proposals, never silent mutations.
  • +
  • 6 — Sections show counts; each row keeps kind icon, origin agent, source task, age, expiry, and queue pill.
  • +
+
Why this changes: the current page is one uncapped list sorted by newest activity with client-side-only filters, no date range, no queues, and a badge that counts all 290 — so the number is noise. The desk makes "today, by importance" the default query and turns the badge into "decide-now count".
+
+
+
+
+ + +
+
Step 2 · Queues
+

2.Queue detail — "PRs"

+

A queue is a named, company-scoped list any agent or user can add decisions to ("add this to the PRs queue"). Queue pages support bulk decisions on homogeneous items and carry the queue's membership rules and retention override.

+
+
+
queue-detail.svg1280×800 · desktop
+ Queue detail wireframe +
+
+
+

Annotations

+
    +
  • 1 — Bulk action bar: accept N selected homogeneous confirmations at once; reject requires a note that goes back to the origin agent.
  • +
  • 2 — Queue rules card: who feeds the queue (automatic rules + manual adds), retention override, notification setting.
  • +
  • 3 — Items that fail the batch invariant (needs rebase, targets a different branch) auto-deselect with a stated reason.
  • +
+
Why this changes: today the closest thing is the bundle strip (contiguous same-bundle rows) — it groups one agent run, not a durable stream. Queues persist across runs, so "the gardener's PRs" is one place with one bulk gesture instead of 12 scattered cards.
+
+
+
+
+ + +
+
Step 3 · Triage
+

3.Expanded card with triage strip

+

Every decision card gains a triage strip: queue assignment, decide-by urgency, snooze, and route-to-agent. These are the affordances the "agents alongside" write to via API — and the user can always override.

+
+
+
triage-card.svg1280×800 · desktop
+ Triage card wireframe +
+
+
+

Annotations

+
    +
  • 1 — Expiry becomes visible and actionable: countdown chip with one-click extend, instead of confirmations silently dying and getting re-minted.
  • +
  • 2 — Queue picker (open state): move/add the decision to any queue or create one inline.
  • +
  • 3 — "When to decide" segmented control = the importance signal that drives desk ordering; shows which agent set it.
  • +
  • 4 — Route to agent: hand the decision to an agent to prepare a recommendation and re-surface it — the delegation affordance for "help me decide".
  • +
+
Why this changes: the current card renders the decision body and verbs but no expiry, no priority, no grouping control — there is literally nowhere in the UI to say "this one is for today" or "this belongs with the others".
+
+
+
+
+ + +
+
Step 4 · Retirement
+

4.Aging shelf

+

Stale items leave the desk automatically and land here. An agent pre-reviews the shelf and proposes a bulk archive with per-item reasoning; archiving notifies the origin agent so the underlying task is re-triaged rather than orphaned. Nothing is deleted.

+
+
+
aging-shelf.svg1280×800 · desktop
+ Aging shelf wireframe +
+
+
+

Annotations

+
    +
  • 1 — Agent proposal banner: one accept gesture retires 87 items, with per-item reasoning inspectable before accepting.
  • +
  • 2 — Keep/Archive per row; Keep can set a decide-by date so the item re-enters the desk deliberately.
  • +
  • 3 — The retention policy is written on the page — defaults (30d to shelf, 90d auto-archive) with per-queue overrides.
  • +
+
Why this changes: 146 of 290 items are idle for over a month; today they sit in the same list as this morning's PR merge. Decisions v1 already sweeps decisions past their TTL, but interactions, approvals, and in-review issues never expire — this generalizes retirement across all feed sources.
+
+
+
+
+ + +
+
For reviewer
+

Open questions

+
+
    +
  • Badge semantics — should the sidebar badge become "decide-now count" (proposed) or stay total pending?
  • +
  • Auto-archive consent — is 90-day auto-archive acceptable as a default, or should archiving always require accepting an agent proposal?
  • +
  • Queue scope — company-wide queues (proposed, since decisions are company-scoped today) vs per-user queues?
  • +
  • Seeded queues — proposed starter set: PRs (from merge confirmations / pull_request work products), Plans (plan-doc-bound confirmations), Questions (ask_user_questions). OK to seed these automatically?
  • +
  • Mobile — desk and queue screens are desktop-first here; a phone pass (375×812) can follow once the desktop structure is agreed.
  • +
+
+
+ + +
+
+ + + + + + diff --git a/design/pap-16032-decisions-grouping/plan.md b/design/pap-16032-decisions-grouping/plan.md new file mode 100644 index 00000000000..f5e7959ef29 --- /dev/null +++ b/design/pap-16032-decisions-grouping/plan.md @@ -0,0 +1,83 @@ +# Decisions: grouping, queues, and a "today's desk" — plan (rev 1) + +**Wireframes:** https://pages.paperclip.ing/pap-16032-decisions-desk/ (4 screens + flow, with the data analysis inline) + +## 1. Problem + +[/PAP/decisions](/PAP/decisions) shows every pending decision for the whole company in one uncapped list, newest activity first. It answers "what exists", never "what do I need to decide today, in what order". Items accumulate forever because most feed sources have no retirement path. + +## 2. What the data says (live dev company, 2026-08-01) + +| Signal | Value | Implication | +| --- | --- | --- | +| Open in-review items | 290 | Nobody can decide 290 things; the list is write-only | +| Touched today / yesterday / this week | 8 / 12 / 24 | The real daily load is small — a "today's desk" is viable | +| Idle > 30 days | 146 (oldest: April) | Retirement matters more than any sorting tweak | +| Priority = "medium" | 261 of 290 | Issue priority is dead as a ranking signal; importance must be assigned at decision time | +| Title-based clustering | 57% land in "other" | Type/queue must be first-class metadata, not title heuristics | + +**Common threads in recent decisions** (interaction titles + origin pipelines): *Merge this PR* (gardener/land-my-features confirmations, CI-green, batchable) · *Approve this plan revision* (planning-mode confirmations bound to a plan doc rev) · *Verify/accept QA result* · *Answer questions* (ask_user_questions forms) · *Pick a subset* (checkbox confirmations). + +## 3. Current mechanics (verified in code) + +- The page is `WhatNeedsMe.tsx` over `GET /companies/:id/attention` (`server/src/services/attention.ts`), aggregating 11 source kinds (approvals, issue-thread interactions, decisions v1, reviews = in_review issues, blockers, failed runs, …). Only query knob: `includeDismissed`. No pagination, no server-side filters. +- Grouping/sort/filter are entirely client-side (`ui/src/lib/attention.ts`): group by none/date/type/project/severity with fixed buckets (Today/Yesterday/This week/Earlier). **No date-range picker.** Sort: newest/oldest only. +- **No queue/tag/category column** on `decisions`, `issue_thread_interactions`, or `approvals`. The only hooks: `decisions.rule_key` (free text, set by proposing agent, rendered nowhere) and `decision_bundles` (groups one agent run, not a durable stream). `labels` exist but are issue-scoped only. +- The feed item DTO drops `expiresAt`, `ruleKey`, priority, and origin-agent name — the UI couldn't rank or group by them today even client-side. +- Decisions v1 has TTL + sweeper; interactions expire; but `approvals` and `review` (in_review issues) never retire — they are the accumulation vector (the 290). +- Sidebar badge = total feed length (290 = noise). `?decisionId=` deep links are generated but never consumed by the page. `GET /decisions/stats?groupBy=ruleKey` exists server-side, unused by UI. + +## 4. Design + +### 4.1 Queues — the general rule for quicklinks + +A **queue** is a named, company-scoped, durable list of decisions. Answering Dotta's "not everyone has PRs" question: quicklinks are **not** hardcoded types — they are **this company's queues, ordered by most recently updated**. "PRs" exists because the gardener feeds it; another company's rail might say "invoices" or "content". + +- New `decision_queues` table (id, company_id, key, title, description, created_by_agent_id/user_id, retention_days override, updated_at). +- New `decision_queue_items` side-car (queue_id, source_kind, source_id, added_by, created_at) keyed on the attention item's stable identity — so **any** of the 11 source kinds can be queued without touching 11 tables (same pattern as `decision_training_examples`). +- **Seeding** so the rail is never empty: system rules map structural signals → starter queues: merge confirmations / `pull_request` work products → "PRs"; plan-document-bound confirmations → "Plans"; `ask_user_questions` → "Questions". Seed rules are visible in the queue's rules card and can be disabled. +- **Agent/user write path**: `POST /api/companies/:cid/decision-queues` and `POST .../decision-queues/:key/items` (agent-authorized), so "add this to the foobar queue" works from any agent conversation. Queue pages support bulk accept/reject over homogeneous items with per-item exclusion reasons. + +### 4.2 Date ranges + +Chip row on the desk: Today / Yesterday / Last 7 days / This month / Custom range, filtering on `activityAt`. Server side: add `activitySince`/`activityUntil` + cursor pagination to `/attention` so the desk stops shipping 290 items to the client on every badge poll. + +### 4.3 Today's desk — importance ordering + +Default landing view = today's items split into **Decide now / Can wait**, ordered by a per-item **decide-by** field (`today | this_week | whenever | date`), settable by agents via API and overridable by the user (provenance shown: "Set by Prioritizer"). Ranking: decide_by → expiry proximity → severity → activityAt. The feed DTO gains `expiresAt`, `ruleKey`, `originAgentName`, `queues[]`, `decideBy`. Sidebar badge becomes the **decide-now count** (open question 1). Fix the `?decisionId=` deep link to focus/expand the referenced card. + +### 4.4 Retirement — the aging shelf + +Uniform staleness across all feed sources: items idle > 30 days (per-queue override) leave the desk for an **aging shelf**; idle > 90 days auto-archive unless marked Keep. Archiving never deletes — items stay searchable and revivable — and notifies the origin agent so the underlying task is re-triaged, not orphaned. Agents can submit **bulk archive proposals** with per-item reasoning (dogfoods decisions v1 propose-mode); the shelf renders the proposal as one accept gesture. + +### 4.5 Agent triage affordances + +Every card gets a triage strip (queue picker, decide-by control, snooze, route-to-agent). The same operations exposed as agent APIs + documented in the paperclip skill, so "agents alongside helping us tag and prioritize" have first-class writes — always rendered as attributed suggestions/settings, never silent mutations. + +## 5. Phasing (children created after plan acceptance) + +| Phase | Scope | Owner | Depends on | +| --- | --- | --- | --- | +| P0 | SecurityEngineer review: queue/triage write authz (agents writing cross-issue), archive-notify path | SecurityEngineer | — | +| P1 | Schema + queue/triage APIs (`decision_queues`, `decision_queue_items`, decide_by storage, seed rules) | CodexCoder | P0 | +| P2 | Attention feed enrichment: DTO fields, `activitySince/Until`, pagination, decide-now ordering, badge count | CodexCoder | P1 | +| P3 | UI: today's desk, queue rail + queue page w/ bulk actions, triage strip, aging shelf, deep-link fix (screenshots required) | ClaudeCoder + UXDesigner review | P1, P2 | +| P4 | Agent enablement: skill docs, "add to queue"/"set decide-by" recipes, gardener wires rule_key → PRs queue | CodexCoder | P1 | +| P5 | Retention: staleness computation, auto-archive sweeper, origin-agent notify, bulk archive proposals | CodexCoder | P1, P2 | +| P6 | QA end-to-end vs acceptance criteria + live screenshots | QA | P3, P4, P5 | + +## 6. Open questions (also on the wireframe page) + +1. **Badge semantics** — decide-now count (proposed) vs total pending? +2. **Auto-archive consent** — 90-day auto-archive as default, or always via accepted agent proposal? +3. **Queue scope** — company-wide (proposed) vs per-user? +4. **Seeded queues** — OK to auto-seed PRs / Plans / Questions? +5. **Mobile** — desktop-first here; phone pass after structure is agreed? + +## 7. Acceptance criteria for the epic + +- Landing on /PAP/decisions shows today's decisions ordered by decide-by/importance, not 290 items. +- A queue created by telling an agent "add this to the foobar queue" appears as a quicklink chip within one feed refresh. +- Date chips + custom range filter server-side; the badge reflects decide-now count only. +- Items idle 30+ days are absent from the default desk and present on the aging shelf; bulk archive works and notifies origin agents. +- All new write paths pass SecurityEngineer review; QA e2e green with screenshots. diff --git a/design/pap-16032-decisions-grouping/wireframes/aging-shelf.svg b/design/pap-16032-decisions-grouping/wireframes/aging-shelf.svg new file mode 100644 index 00000000000..8ab94de4216 --- /dev/null +++ b/design/pap-16032-decisions-grouping/wireframes/aging-shelf.svg @@ -0,0 +1,91 @@ + + + + + + + PAP / Decisions / Aging shelf + + + Aging shelf + 146 items with no activity for 30+ days. Nothing here is deleted — archived items stay searchable and can be revived. + + + + + + Prioritizer reviewed this shelf: 87 look safe to archive, 12 still matter (kept out below) + Reasoning attached per item · superseded PRs, closed epics, expired confirmations that were re-asked + + Archive 87 proposed + + Review… + + + + + + 30–90 days · 98 + + + + 90+ days · 48 + + + + by queue ▾ + + + + + + + Blog: W1.2 — Why agents need org charts (in review since 04-27) + 96 days idle · Prioritizer: "superseded by launch content plan" → archive + + Keep + + Archive + + + + + QA stable papercliper.com login-to-tenant smoke (05-04) + 89 days idle · Prioritizer: "environment retired" → archive + + Keep + + Archive + + + + + Operator: configure production AWS access for Phase 4 (05-21) + 72 days idle · Prioritizer: "still blocks CloudOps — KEEP, decide-by set to next week" + + Keep + + Archive + + + 143 more… + + + + + Retention policy + · Items idle for 30 days leave the main list and land here (per-queue override: PRs 14 days). + · Items idle for 90 days auto-archive unless an agent or you marked them Keep. + · Archiving a decision notifies its origin agent so the underlying task gets re-triaged, not orphaned. + + + + + + 1 + + 2 + + 3 + + diff --git a/design/pap-16032-decisions-grouping/wireframes/decisions-home.svg b/design/pap-16032-decisions-grouping/wireframes/decisions-home.svg new file mode 100644 index 00000000000..bffacb15527 --- /dev/null +++ b/design/pap-16032-decisions-grouping/wireframes/decisions-home.svg @@ -0,0 +1,182 @@ + + + + + + + PAP / Decisions + + + Search decisions… + + + + Decisions + 8 need you today · 290 open · 146 older than 30d + + + + + All · 8 + + + + PRs · 5 + + + + + Plans · 3 + + + + foobar · 2 + + + + Questions · 1 + + + + + queue + + + + + + Today + + + + Yesterday + + + + Last 7 days + + + + This month + + + + Custom ▾ + + + + + DECIDE NOW · 3 + ordered by importance + + + + + + PR + Merge PR #10623 — inbox sort pinning fix + Gardener · PAP-16015 · CI green · asked 2h ago · expires in 22h + + PRs + + Decide + + Snooze ▾ + + + + + + + Pl + Approve plan rev 2 — heartbeat.ts split + Senior Engineer Fable · PAP-16028 · asked 4h ago + + Plans + + Decide + + Snooze ▾ + + + + + + + ? + 5 questions — delegated comment authority details + Senior Engineer Fable · PAP-15599 · asked today 09:12 + + Questions + + Answer + + Snooze ▾ + + + + CAN WAIT · 5 + + + + + Confirm queue rename: "foobar" → "release-prep" + Gardener · asked today · low stakes + + Open + + + + + Checkbox: pick green feature PRs to land (4 options) + Senior Engineer Fable · PAP-15941 · asked yesterday + + Open + + + 3 more… + + + + + Backlog health + 290 open + 146 older than 30 days · 261 still "medium" + + + + + + + today → older + + Review aging shelf (146) + + + + + Agent triage + Gardener: 12 PR merges look batchable + + Open PRs queue + Prioritizer: 3 flagged decide-today, + 87 proposed for auto-archive + + Review proposal + + + + + + 1 + + 2 + + 3 + + 4 + + 5 + + 6 + + diff --git a/design/pap-16032-decisions-grouping/wireframes/flow.svg b/design/pap-16032-decisions-grouping/wireframes/flow.svg new file mode 100644 index 00000000000..238a62f881c --- /dev/null +++ b/design/pap-16032-decisions-grouping/wireframes/flow.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + 1 · Today's desk + default landing view + + + + + + + + + + + + + + + + + + 2 · Queue detail (bulk) + + + + + + + + + + + 3 · Expanded card + triage strip + + + + + + + + + + + + + 4 · Aging shelf (sweep) + + + + Decide / snooze / queue actions round-trip + back to 1. Archive keeps history searchable. + diff --git a/design/pap-16032-decisions-grouping/wireframes/queue-detail.svg b/design/pap-16032-decisions-grouping/wireframes/queue-detail.svg new file mode 100644 index 00000000000..943840d44c3 --- /dev/null +++ b/design/pap-16032-decisions-grouping/wireframes/queue-detail.svg @@ -0,0 +1,119 @@ + + + + + + + PAP / Decisions / Queue: PRs + + + PRs + 5 pending · updated 2h ago by Gardener + Merge confirmations from the Gardener pipeline. Say "add this to the PRs queue" on any decision. + + + Rename + + + + Mute ▾ + + + + + + + + 4 of 5 selected + + Accept selected (4) + + Reject with note… + + + + + + + Merge PR #10623 — inbox sort pinning fix + CI green · +214 −80 · PAP-16015 · asked 2h ago · expires in 22h + + View PR + + Decide + + + + + Merge PR #10606 — chat-style task view (flagged) + CI green · +820 −112 · PAP-15874 · asked 5h ago + + View PR + + Decide + + + + + Merge PR #10601 — sandbox git copy-back fix + CI green · +96 −14 · PAP-15981 · asked yesterday + + View PR + + Decide + + + + + Merge PR #10594 — decision-signing secret hotfix + CI green · +42 −8 · PAP-15984 · asked yesterday + + View PR + + Decide + + + + + Merge PR #9744 — blockquote insert (targets epic branch) + needs rebase · excluded from bulk accept · asked 3d ago + + View PR + + Decide + + + + + + Queue rules + Members added by: + · Gardener — merge confirmations (auto) + · You / any agent — "add to PRs queue" + + Retention: + items idle 14 days → aging shelf + + Notify: + badge on sidebar · daily digest off + + + + + Recently decided here + #10574 accepted · yesterday + #10568 accepted · 07-31 + #10542 rejected (note) · 07-30 + + + + + + 1 + + 2 + + 3 + + diff --git a/design/pap-16032-decisions-grouping/wireframes/triage-card.svg b/design/pap-16032-decisions-grouping/wireframes/triage-card.svg new file mode 100644 index 00000000000..923c18170af --- /dev/null +++ b/design/pap-16032-decisions-grouping/wireframes/triage-card.svg @@ -0,0 +1,98 @@ + + + + + + + PAP / Decisions + + + + + (previous decision row, collapsed) + + + + + + + + + PR + Merge PR #10623 — inbox sort pinning fix + Proposed by Gardener · from PAP-16015 · view run · asked 2h ago + + + expires in 22h · extend ▾ + + + + What you are deciding + Accept merges PR #10623 into master and archives the source task. + CI: 23 checks green · diff +214 −80 · reviewed by CTO + + diff / preview thumbnail + + + + Accept + + Reject… + + Dismiss + + + + Triage + + + Queue + + PRs ▾ + + ✓ PRs + Plans + foobar + Questions + + New queue… + + + When to decide + + + Today + + This week + + Whenever + + Set by Prioritizer agent · you can override + + + Defer + + Snooze ▾ + + Route to agent… + Snooze hides until a date; Route asks an agent to + prepare a recommendation and re-surface it. + + + + + (next decision row, collapsed) + + + + + + 1 + + 2 + + 3 + + 4 + +