Skip to content

cmux-next sidebar: a crisp session hover card that never scrolls - #22739

Closed
teamleaderleo wants to merge 14 commits into
feat-cmux-nextfrom
cmux/hover-card-summary
Closed

teamleaderleo wants to merge 14 commits into
feat-cmux-nextfrom
cmux/hover-card-summary

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Leo 2026-10-20: the session hover card was a scrolling "History" of truncated prompts and "claude-sr2 finished" lines, with mushy styling and an awkward inner scroll. He asked for it to be "more useful, no scroll, crisp", with ChatGPT's session card as the floor.

The compact layout is now the default, reworked:

  • First line: the title (at most two lines), its kind or machine icon, the relative age, and an unread dot in the accent color.
  • Status: the status line with how long it has held ("Working 4m").
  • Facts: why it waits or its task, then folder, branch, pull request, ports and machine.
  • Last message: the agent's last message, up to three lines, rendered from markdown. Bold, italic and code use the card's fonts. Headings, quotes, list marks and code fences are dropped, so the raw marks never show.
  • Recent moments: the last three, one line each, with no header and no scroller. The list is as tall as its lines, so the card has a fixed shape.
  • Look: glass and theme colors are unchanged (the shared hover-card overlay).

The timeline, log, classic and minimal layouts are still in Settings (sidebar.hoverCards.layout). The settings sources are regenerated. settings-schema.json, docs/mdm/* and the defaults snapshot are left to the autofix.

Follow-ups:

Test: WorkspaceHoverCardSummaryTests (commit 5307c72, failing first) covers three things: compact is the default; the card has the unread dot, age, folder, branch and PR, the rendered last message in three lines and three moments; the card never scrolls, is under 360 pt tall and has no raw markdown marks. The timeline tests now ask for .timeline explicitly.

Observed / Not run

  • Observed: gen-settings-sources.py regenerated the two hover-card Swift files. prepush-gate.py reported no new violations.
  • Not run: no Swift build or tests on this Mac (the rules forbid it). The red-then-green of WorkspaceHoverCardSummaryTests comes from CI on the two commits. No screenshot yet.

Changelog

Changed: The sidebar's workspace hover card is now a compact summary (status, folder, branch, PR, the last message rendered, the last three moments) that never scrolls.

Landing (orphan-sweep, 2026-10-22)

Adopted from its dead owner. Merged base three times (one conflict each in WorkspaceHoverCardTimelineView.swift, base's by-frame layout, and in WorkspaceHoverCardContent.swift, base #24059's Fact.machine beside this PR's Fact.markdown). Lander commits:

  • The compact card keeps base cmux-next sidebar: a workspace's hover card says what its agents did since you looked #23510's "Since you looked" line, and its unread dot is Palette.notificationBlue (the sidebar's unread colour; the default theme's accent is grey).
  • The unread dot's baseline makes no super call (crash-class selector gate), and it sits on the title's capitals like base's hover card icons.
  • From the Codex review: settings and scroll tests now expect the compact default (the long-history scroll test asks for .timeline), a list that does not scroll resets its clip view, the layout fallback reads WorkspaceHoverCardOptions(), and bold code stays monospaced.
  • Settings exports (MDM docs, settings-schema.json, defaults snapshot, source stamp) are the PR autofix's Mac regeneration, applied as it came.

Not changed here: the timeline, log, classic and minimal layouts stay in Settings (sidebar.hoverCards.layout).

Capture steps-6c4aeac71e at 4a0c6246b96c (fleet build, capture mini, text checked for private data)

Light Dark
light dark

Capture: the sidebar session cards in the hover-card gallery (debug.hover_cards, the first steps of tour:hover-card). The tour's last step (workspace.showResources) cannot open on a capture mini, so it was left out.

Agent session: cosmic-gray

🤖 Generated with Claude Code
Lander session: Air-Blue

… never scrolls (failing)

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

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 1e789a4: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr22739 -f ref=cmux/hover-card-summary -f platform=macos -f backend_mode=local

Gallery before/after for 6eefb23: 16 states rendered, 0 images differ, 1578 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 39794989704 -R manaflow-ai/cmux -n gallery-advisory-22739-6eefb23a3c7f09f267754aa484f94fb5f2505c75 (then read gallery-review.json)

States
State Theme Status Diff Picked by
pages.settings/general Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-customized Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-customized Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-1 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-1 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-2 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-2 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-3 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-3 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-4 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-4 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-5 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-5 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings/general-group-6 Apple System Colors Light unchanged 0% own SectionView.tsx
pages.settings/general-group-6 Apple System Colors unchanged 0% own SectionView.tsx
pages.settings-motion/play-search Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-search Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-changed-only Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-changed-only Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-override-reset Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-override-reset Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-newtabposition Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-newtabposition Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-fontfamily Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-fontfamily Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-hibernation Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-hibernation Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-hibernationexclusions Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-hibernationexclusions Apple System Colors unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-pinned Apple System Colors Light unchanged 0% imports categories.ts (1 hops)
pages.settings-motion/play-reset-pinned Apple System Colors unchanged 0% imports categories.ts (1 hops)

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Passes: CI passes on 1e789a4f70.

CI passes on 1e789a4f70 (run 39902681794 attempt 1).

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Checks job structure (+2 more) is not red on the base 740e58f; do not merge until green; see lane-rules

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / defaults-snapshot is red on 21 of 21 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-e5im3 created for this PR by the cmux coordinator.

…rolls

Leo 2026-10-20: the workspace hover card was a scrolling "History" of
truncated prompts and "finished" lines, mushy, with an awkward inner
scroll. "Make it more useful, no scroll, crisp." The compact layout is
now the default and reworked:

- The title (two lines at most) with its kind or machine icon, the age
  and an unread dot in the accent color.
- The status with how long it has held.
- Why it waits or its task, folder, branch, pull request, ports and
  machine; the noisier facts stay on the other layouts.
- The agent's last message, up to three lines, rendered from markdown:
  bold, italic and code in the card's fonts, block marks dropped, never
  the raw marks.
- The last three moments, one line each, with no header and no
  scroller; the list is as tall as its lines.

The timeline, log, classic and minimal layouts stay in Settings
(sidebar.hoverCards.layout). Regenerated the settings sources.

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

blacksmith-sh Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Found 8 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpgkxwar31/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpxcktw8q_/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)/
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

This comment has been minimized.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

owner: 01a15ba2-3a52-79c2-936b-9d51b5b12a8c

@teamleaderleo
teamleaderleo marked this pull request as ready for review October 21, 2026 03:45
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 15 h, and no lane holds a lease on it. The orphan sweep could not merge feat-cmux-next in: conflicts in Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/WorkspaceHoverCardTimelineView.swift. Listed for a lane to resolve.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by orphan-sweep on air-blue · session

teamleaderleo and others added 2 commits October 22, 2026 02:39
Conflict in WorkspaceHoverCardTimelineView.swift: base (44284b5) lays the history
lines out by frame instead of a stack view; the compact card's scrolls: false
(no header, no scroller, one line each, as tall as its lines) is carried onto
that layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
…ts unread dot is the notification blue

Base's #23510 puts what a workspace's agents did since you looked at the top of
the card, and the log and minimal layouts keep it. The compact card's fact filter
dropped it, so making compact the default would have switched that line off
(SidebarSinceLookedTests reads it from the default card).

The unread dot took the theme accent, which is a grey in the default theme; the
sidebar's own unread dots are Palette.notificationBlue because a grey dot read
as missing (2026-10-21).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 22, 2026
…e call

crash-class rules (check-objc-selectors.py) failed on
super.firstBaselineOffsetFromTop in UnreadDotView: NSView's getter is not in
the probed selector table. With no line to follow, the dot now takes its own
height as its baseline (an image's), so there is no super call to probe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
teamleaderleo and others added 2 commits October 22, 2026 07:21
Brings in #24377 (CmuxNextAppTests build again), which the PR autofix's
settings-export regeneration needs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
…pitals, like its icons

Base's 1231b9d puts every hover card icon on its line's capitals
(NSFont.iconBaselineOffsetFromTop); the dot used the old midpoint of
ascender and descender.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 22, 2026 14:21 — with GitHub Actions Inactive
@github-actions github-actions Bot added risk:high Risk tier (docs/ci/risk-tiers.md) and removed risk:normal Risk tier (docs/ci/risk-tiers.md) labels Oct 22, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next crash-class rules / cmux-next crash-class rules is red on 11 of 14 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

teamleaderleo and others added 2 commits October 22, 2026 20:25
Merged with merge base d511296, the base this branch's tree actually holds:
merge 266d7b5 recorded cba27b0 (#22889) as its base parent but carried the
tree of a merge with d511296 (the shared mirror's ref moved between reading it
and committing), so 266d7b5..6eefb23 undid #22889's Web UI updates card. This
merge brings #22889 back and keeps every other base change.

Conflict in WorkspaceHoverCardContent.swift: base #24059 adds Fact.machine (a
machine row's color pick) where this branch adds Fact.markdown; both stay,
machine first, and each memberwise call names only its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
…s and the history view

Review of 6eefb23 (Codex, BLOCK):
- HoverCardContentSettingsTests still expected the timeline default; it now
  expects compact, and a bad layout keeps compact.
- WorkspaceHoverCardScrollTests' long-history case asks for the timeline layout:
  the compact default never scrolls, by design.
- A list that does not scroll resets its clip view to the top, also when the
  same entries scrolled before under the timeline layout (the laid-out cache
  skipped the reset).
- HoverCardSettings' layout fallback is WorkspaceHoverCardOptions' default, not
  a second hard-coded timeline.
- Bold code in the last message stays monospaced.

The settings exports (schema, MDM docs, source stamp, defaults snapshot) come
from the PR autofix's Mac regeneration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@github-actions github-actions Bot added risk:normal Risk tier (docs/ci/risk-tiers.md) and removed risk:high Risk tier (docs/ci/risk-tiers.md) labels Oct 23, 2026
The PR autofix's repair (run 39895024003, artifact pr-autofix-patch) regenerated
them on a Mac at 4ffa79af; its push job is main-only, so the lander applies the
patch as it came: the MDM docs, settings-schema.json, the defaults snapshot and
the source stamp now say compact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Default changes

This pull request changes 1 default at 1e789a4f7067 (what everyone gets without configuring anything):

  • setting.sidebar.hoverCards.layout: "timeline" -> "compact"

Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Review (<reviewer>): SHIP at 1e789a4f7067d2f1562dfb1d79cd7fb72bf18940, from a member, not a self-review (the newest verdict naming the head decides; a later BLOCK beats an earlier SHIP), or with an approving review on this commit from @lawrencecchen or @austinywang (the call owners in .github/defaults-call-owners.json, never the author). A receipt posted as a review re-runs this check; after a plain comment, re-run it. The needs a call label alone does not pass, and a new push needs a new receipt.

Regenerate the snapshot with python3 scripts/ci/defaults_guard.py snapshot.

…body (glass gate)

The prepush gate's check-overlay-glass flagged the dot's layer fill as a
hover-body-fill. It is a 6 pt unread dot on the title row, not a surface laid
over the card's glass, so it carries the gate's reviewed escape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6.1-sol xhigh, correctness first): SHIP at de7eaa0

The diff from 4a0c6246 is exactly one added comment at WorkspaceHoverCard.swift:626. The comment matches check-overlay-glass.py's required glass-opaque-allow syntax and is immediately above the flagged assignment. The filled, corner-rounded 6 pt view is an unread indicator in the title row, not a card surface or background over the shared glass, so the exemption is honest. No other changes are present.

Earlier rounds by the same independent Codex reviewer (acpmux osr-review-22739 on big-red, read-only against git objects):

  • BLOCK at 6eefb23: tests still expected the timeline default, the long-history scroll test ran on the compact card, the settings exports were stale, and the history's clip view kept its offset when switching to compact. All fixed in 4ffa79af and 4a0c624.
  • SHIP at 4a0c624: diff against base d8de42c is exactly 19 hover-card files (13 implementation/test/source/design plus 6 exports); cmux NEXT Settings: Web UI card shows the served version and rolls back #22889 and other base work preserved; Fact.machine and Fact.markdown both kept; source, generated Swift, schema, defaults snapshot and MDM exports all say compact, and all 284 source-stamp entries match.

Non-blocking follow-ups the reviewer noted and the lander fixed: the .timeline fallback in HoverCardSettings+Options.swift, and bold code losing its monospaced font.

Evidence at the PR's heads: fleet package tests at 4a0c624, step 4b34ae461f143be6ab9619c6 (aws-m4pro-3), passed: WorkspaceHoverCardSummaryTests, WorkspaceHoverCardTimelineTests, WorkspaceHoverCardScrollTests, SidebarSinceLookedTests, HoverCardThinScrollerTests, WorkspaceHoverCardIconLineTests, HoverCardContentSettingsTests, SettingsSchemaExportTests. CI's cmux-next app compile (build fleet) passed at 4a0c624. Capture at 4a0c624 is in the PR body.

Agent session: Air-Blue

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 19 of 20 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

Brings in the base autofix 740e58f, which refreshes the settings exports
#23844 left stale (cmux Classic Mode's help and title, three source-stamp
hashes); the compact hover-card default and its stamp lines are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=Air-Blue
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6.1-sol xhigh, correctness first): SHIP at 1e789a4

  • git diff 740e58fa 1e789a4f matches the previously reviewed d8de42c0..de7eaa02 patch exactly: 19 files, identical additions and deletions.
  • The compact hover-card defaults and exports remain present.
  • All 284 source-stamp entries match the exact merged tree; no missing or extra inputs remain.
  • The inherited cmux NEXT: cmux Classic Mode opens a terminal for Cmd-N and new windows too #23844 settings drift is repaired, including the tabs.terminalFirst exports and hashes.
  • No intervening base change touches the PR's hover-card paths or introduces an interaction affecting its behavior.

(Same independent Codex reviewer as the receipt at de7eaa0. eb5d295 was a GitHub update-branch merge; the reviewer's BLOCK there was the base's own stale settings exports from #23844, identical on base 2da204f and repaired by base autofix 740e58f, which 1e789a4 merges in. Fleet ActionRunCreatedTests at de7eaa0 (step 6a77ccdc0cce8117cac080cb) and at base 5526377 (step f7bc9f05fd8653262deb5dc9) both pass, in 1.07 s; CI's red on that test at de7eaa0 was its 2 s wall-clock bound on a loaded runner.)

Agent session: Air-Blue

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #24785, which now owns the workspace hover surface with the inner-tab popover as the default. Closing this orphaned lane PR; its compact workspace-hover behavior is no longer the active direction.

This branch was previously deployed

4 inactive (2 outdated) deployments
ci-routing-agent — 1e789a4f Deployed Oct 23, 2026 by github-actions[bot] via cmux-next macOS placement #31375
cmux-tui-merge-tree — 1e789a4f Deployed Oct 23, 2026 by teamleaderleo via publish the merge tree #5059
artifacts — 4a0c6246 Deployed Oct 23, 2026 by teamleaderleo via publish the Windows daemon to R2 #44721
sentry-dsyms — 4a0c6246 Deployed Oct 23, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #44721
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant