Cockpit · main
How long each merged pull request was written against how long it waited on the harness, how many rounds it took, and which check held each one. Read the box below before the totals: it says what they leave out.
One point per merged pull request read, not one window, positioned by when it merged — so a trend is something to see rather than a pair of snapshots to compare by eye. Each panel's own size lane carries the pull request's lines changed. Zoom in with the tabs below; every day's data is already on this page, so nothing is fetched to do it.
A pull request with no session record has no local lanes; hover its bar and it says not recorded, which is not zero.
A pull request with no session record has no local lanes; hover its bar and it says not recorded, which is not zero.
A pull request with no session record has no local lanes; hover its bar and it says not recorded, which is not zero.
Minutes spent writing and fixing against minutes spent in the harness, the rounds plus local review, test runs and the browser pass. Every pull request pays a fixed harness cost, so a small change sits above the dashed line whatever it did; read the minutes beside the ratio. No line is drawn as healthy, since there is no accepted benchmark for this ratio: the reference is the window’s own median.
Median ratio 1.5× over 118 pull requests.
Scale to 2h 00m on both axes; 3 dots beyond it, drawn hollow on the edge. The three furthest above the dashed line are named. Hover or focus a dot for its figures; it opens the pull request.
2 merged pull requests in this window carry no session record and are not on the chart.
| Pull request | Coding and fixing | In the harness | Ratio | Rounds | |
|---|---|---|---|---|---|
| #1026 Draw a cycle-time strip to scale, name its CI Rounds, and zoom into it (#1025) | 19m 40s | 26m 06s | 1.3× | 1 | |
| #1023 Link every branch that has a pull request, and stop calling caught-up branches linking (#1020) | 17m 26s | 1h 30m | 5.2× | 2 | |
| #1024 Price every waiting request with one pnpm harness:run prices (#1021) | 4m 34s | 21m 29s | 4.7× | 1 | |
| #1022 Draw parallel local reviews as parallel lanes, each at its own length (#1019) | 12m 41s | 24m 11s | 1.9× | 1 | |
| #1018 Link branches without GitHub timing out on a 100-pull-request page (#1016) | 5m 07s | 29m 18s | 5.7× | 1 | |
| #1017 Rename the lead-time report to cycle time (#1006) | 5m 04s | 18m 30s | 3.7× | 1 | |
| #1015 Start the Harness Monitor's jobs by hand, and show what each job's last run did (#1013) | 25h 35m | 28m 35s | 0.02× | 1 | off the chart |
| #1014 Draw local test runs and the browser pass on the lead-time page (#1008) | 12m 12s | 23m 47s | 1.9× | 1 | |
| #1012 Show each check's last run beside its 7- and 30-day rates on the CI stability report | 5m 42s | 22m 52s | 4.0× | 1 | |
| #1011 Record local test runs and the browser pass on the pull request (#1007) | 16m 26s | 59m 26s | 3.6× | 2 | |
| #1009 Show local code and security review time on the lead-time page, apart from CI (#1004) | 14m 21s | 40m 19s | 2.8× | 1 | |
| #1010 Fail CI when core code names a registered source in a string (#994) | 8m 44s | 29m 16s | 3.3× | 1 | |
| #1002 Decide what connecting a source changes in the domain (#997) | 19s | 25m 41s | 81× | 2 | |
| #1001 Decide whether an agent may start in the domain (#996) | 9s | 21m 17s | 142× | 1 | |
| #1000 Store every connector Item under its connector id, old Gmail Items included (#993) | 1h 00m | 38m 02s | 0.63× | 2 | |
| #999 Decide filing an Item and saving a layout in the domain (#995) | 23s | 22m 21s | 57× | 2 | |
| #998 Keep the HTTP layer to adapters (#991) | 34m 17s | 9m 17s | 0.27× | 1 | |
| #989 Open one pull request's Claude Code costs, and export the rows as CSV (#977) | 11m 44s | 22m 53s | 1.9× | 3 | |
| #987 Include or exclude a Dashboard in a Filter panel's conditions (#985) | 19m 46s | 1h 04m | 3.2× | 1 | |
| #988 Show Claude Code costs grouped by pull request, issue, engineer, category or day, with filters (#976) | 42m 53s | 26m 06s | 0.61× | 1 | |
| #986 Upload past Claude Code session logs to the Harness Monitor (#975) | 17m 14s | 20m 18s | 1.2× | 1 | |
| #984 Link each session's branch to its pull request, issue and engineer, hourly (#974) | 18m 04s | 40m 20s | 2.2× | 2 | |
| #983 Drop Gmail's old core tables and the follows column (#967) | 33m 00s | 22m 23s | 0.68× | 1 | |
| #982 Price Claude Code usage from a daily price list, and say which tokens have no price (#973) | 11m 42s | 23m 12s | 2.0× | 1 | |
| #981 Report each Claude Code session's usage to the Harness Monitor from a hook, with its category (#972) | 9m 37s | 25m 12s | 2.6× | 2 | |
| #979 Stand up the Harness Monitor: store each Claude Code request once, and show daily token totals (#971) | 13m 11s | 24m 45s | 1.9× | 1 | |
| #980 Let the guest demo's seed name the sources it imitates (#968) | 1m 19s | 44s | 0.56× | 1 | |
| #978 Empty the import-rule allowlist, so every API area imports only those below it (#966) | 19m 33s | 19m 28s | 1.00× | 1 | |
| #969 Stop a build relaxing the architecture document without the engineer agreeing (#965) | 1m 51s | 42m 54s | 23× | 1 | |
| #964 Open each architecture diagram full size on its own page (#963) | 6m 05s | 20m 50s | 3.4× | 1 | |
| #962 Learn from declined review findings in /periodic-review (#961) | 1m 28s | 51s | 0.58× | 1 | |
| #960 Run Gmail on the generic connector host, and reconnect each Gmail account once (#944) | 55m 29s | 41m 10s | 0.74× | 2 | |
| #959 Build Gmail as a connector package on the SDK, unregistered (#943) | 8h 02m | 27m 13s | 0.06× | 2 | off the chart |
| #958 Check a pulled connector again soon when its run says there is more to do (#957) | 26m 22s | 42m 21s | 1.6× | 2 | |
| #956 Ask a connection's one choice on connecting, and change it later (#942) | 23m 23s | 1h 24m | 3.6× | 3 | |
| #955 Let a connector's sign-in ask for more, refuse a grant, and be revoked on disconnect (#941) | 22m 18s | 44m 51s | 2.0× | 2 | |
| #954 Let a pulled connector give up on an open state its source refuses for good (#940) | 29m 36s | 26m 58s | 0.91× | 2 | |
| #953 Bring a pulled connector's Items in as titled Tasks where it says so (#939) | 26m 35s | 58m 06s | 2.2× | 3 | |
| #952 Name each source by its connector, and read Gmail Items as gmail (#927) | 44m 46s | 39m 47s | 0.89× | 2 | |
| #951 Close a pulled connector's Items its complete listing no longer sees (#938) | 40m 43s | 31m 10s | 0.77× | 1 | |
| #950 Record Workers AI and Claude Code calls, and fail any provider call around the gateway (#919) | 55m 16s | 42m 03s | 0.76× | 2 | |
| #949 Store Gmail Items under their connector id (#926) | 48m 41s | 1h 09m | 1.4× | 2 | |
| #948 Put Claude Code behind an engine list, and let CI hold it there (#879) | 1h 00m | 1h 17m | 1.3× | 2 | |
| #946 Export a period's usage records as CSV with pnpm usage:export (#918) | 23m 06s | 44m 16s | 1.9× | 2 | |
| #947 Give each connector its own box on Modules, and show what is released together (#915) | 5m 33s | 25m 07s | 4.5× | 2 | |
| #945 Move a selection off only the Panels of the Dashboard it was selected on (#924) | 10m 36s | 24m 29s | 2.3× | 2 | |
| #935 Choose a Filter condition's values from a searchable list, with Panels under their Dashboard | 13m 56s | 46m 06s | 3.3× | 2 | |
| #937 Draw Modules as boxes and arrows in dependency order (#914) | 7m 04s | 23m 49s | 3.4× | 2 | |
| #931 Hide a Section the filter empties, and head Go to panel's Panels with their Sections (#898) | 50m 29s | 1h 01m | 1.2× | 2 | |
| #934 Read a connector id as an Item's source (#925) | 48m 31s | 42m 17s | 0.87× | 2 | |
| #936 Wait for the check a second connection starts before asserting the next one is scheduled (#929) | 44m 54s | 17m 00s | 0.38× | 1 | |
| #932 Record every Claude call Cockpit makes, and keep the record for 12 months (#917) | 1h 14m | 41m 32s | 0.56× | 2 | |
| #930 Move an Item from one Panel's row without taking it off its other Panels (#923) | 33m 36s | 52m 02s | 1.5× | 3 | |
| #933 Order the dependencies by who imports whom, and mark only a cycle's upward half (#913) | 24s | 25m 35s | 64× | 2 | |
| #921 List the registry's connectors in the Connections window (#894) | 25m 56s | 1h 13m | 2.8× | 3 | |
| #928 Join a Filter's conditions with and/or beside each row, and set Group by apart as Display (#909) | 21m 30s | 32m 15s | 1.5× | 2 | |
| #912 Mirror an Item's open state back to a pulled source (#893) | 1h 04m | 28m 44s | 0.45× | 1 | |
| #920 Include or exclude a Filter panel condition's values, and filter on To do as well as In progress (#908) | 25m 43s | 25m 10s | 0.98× | 2 | |
| #916 Drag a Section between a Dashboard's rows, and keep Panels off its line (#897) | 28m 38s | 27m 55s | 0.97× | 2 | |
| #905 Add, rename and delete a titled Section on a Dashboard (#896) | 1h 43m | 33m 26s | 0.32× | 1 | |
| #904 Cut what cleaning up a captured note costs: Sonnet, a cached history, fewer re-reads, and no model calls for the guest (#887) | 3h 22m | 43m 58s | 0.22× | 2 | off the chart |
| #906 Connect and disconnect a source through one generic sign-in flow (#892) | 23m 16s | 25m 00s | 1.1× | 2 | |
| #903 Check a pulled connector on its cadence through the generic host (#891) | 1h 24m | 56m 32s | 0.67× | 3 | |
| #899 Stack a Dashboard's Panels on a phone in the order they are read on a wide screen (#895) | 9m 47s | 1h 03m | 6.5× | 2 | |
| #900 Show what changed in Cockpit's architecture since the last report (#874) | 10m 43s | 27m 34s | 2.6× | 3 | |
| #901 Put every Panel in its real place on the drop, with no empty space above or below the board (#886) | 44m 54s | 24m 38s | 0.55× | 1 | |
| #889 Show which areas of Cockpit depend on which (#873) | 9m 55s | 22m 21s | 2.3× | 2 | |
| #888 Show each area of Cockpit, and mark source code in the core (#872) | 16m 05s | 24m 33s | 1.5× | 2 | |
| #883 Change the type, priority, due date or status of every selected item from the selection bar (#864) | 37m 06s | 41m 01s | 1.1× | 3 | |
| #885 Take the ✓ off Inbox rows, so an Item is filed rather than ticked off (#880) | 20m 54s | 20m 21s | 0.97× | 1 | |
| #881 Draw Cockpit's deployment every night, beside the other reports (#871) | 12m 05s | 32m 32s | 2.7× | 3 | |
| #882 Fail CI when the core imports source code, or an area imports against the agreed direction (#876) | 21m 32s | 22m 05s | 1.0× | 1 | |
| #867 Select across every panel of a dashboard, with Select all on a panel and on the dashboard (#863) | 1h 44m | 1h 31m | 0.87× | 2 | |
| #865 Keep the top of the board reachable after dropping a Panel low (#860) | 25m 05s | 1h 02m | 2.5× | 2 | |
| #866 Show and hide the All items tab from the Workspace's menu (#862) | 15m 31s | 25m 09s | 1.6× | 1 | |
| #859 Show and Also show on… after moving a selection (#850) | 27m 41s | 26m 47s | 0.97× | 3 | |
| #858 Keep the Car view dark whenever the app is (#845) | 32m 40s | 19m 09s | 0.59× | 1 | |
| #857 Show and Also show on… in the undo bar after moving an Item (#849) | 1h 24m | 47m 41s | 0.57× | 3 | |
| #856 Choose Light, Dark or Match device in Settings, on a phone too (#844) | 47m 09s | 53m 25s | 1.1× | 3 | |
| #854 Change what a Gmail connection follows, without reconnecting (#824) | 53m 52s | 1h 20m | 1.5× | 4 | |
| #855 End the agent runs left open on Items already done or dismissed | 26m 00s | 28m 09s | 1.1× | 2 | |
| #853 Paint the whole app dark when the device is set to dark (#843) | 32m 37s | 37m 58s | 1.2× | 3 | |
| #852 Keep a Panel out of proposals with Never propose (#848) | 47m 14s | 36m 28s | 0.77× | 2 | |
| #841 End an Item's agent run from its Status, and bring it back on Undo | 32m 38s | 1h 15m | 2.3× | 4 | |
| #851 Keep a starred Gmail task in step with its star, both ways (#823) | 34m 47s | 36m 32s | 1.1× | 2 | |
| #847 Write every white surface in a named colour, not literal white (#842) | 9m 11s | 33m 03s | 3.6× | 1 | |
| #839 Open each Agent session by naming the Agent and the item (#835) | 15m 05s | 21m 30s | 1.4× | 1 | |
| #838 Stop showing Any workspace on Inbox rows (#837) | 9m 09s | 21m 00s | 2.3× | 1 | |
| #836 Type straight into Go to panel, and choose its scope with G and Shift+G (#827) | 12m 32s | 23m 04s | 1.8× | 2 | |
| #826 Connect Gmail by star, and bring in conversations starred from then on (#822) | 34m 46s | 31m 22s | 0.90× | 2 | |
| #820 Resize the Go to panel column by dragging its edge (#815) | 8m 48s | 15m 15s | 1.7× | 1 | |
| #819 Go to a Panel on any Dashboard or Workspace, the screen following the highlight (#814) | 23m 30s | 25m 46s | 1.1× | 2 | |
| #818 Go to a Panel of this Dashboard from the keyboard with G (#813) | 15m 01s | 25m 12s | 1.7× | 2 | |
| #817 Open a Dashboard's filter bar with F (#811) | 9m 36s | 43m 23s | 4.5× | 4 | |
| #816 Stop rearranging a Dashboard from its Panel column (#812) | 7m 21s | 21m 15s | 2.9× | 2 | |
| #809 Keep a two-item list as a list in the note-cleanup prompt (#705) | 11m 36s | 25m 42s | 2.2× | 1 | |
| #808 Rearrange a Dashboard by dragging Panels in its panel list (#804) | 32m 14s | 40m 40s | 1.3× | 3 | |
| #806 Show a Dashboard's Panels in a collapsible column at its right, and jump to one (#803) | 27m 20s | 53m 40s | 2.0× | 4 | |
| #807 Group a Filter panel's items by the Dashboard or Panel they are filed on (#805) | 36m 31s | 29m 41s | 0.81× | 1 | |
| #800 Share photos, files and links into Cockpit from Android's share sheet | 1h 30m | 1h 34m | 1.0× | 6 | |
| #801 Edit an Item's type, status, priority and due date from chips on a phone | 32m 40s | 43m 05s | 1.3× | 4 | |
| #798 Fold the Dashboard filter bar into a summary line and a sheet on a phone (#792) | 51m 21s | 34m 43s | 0.68× | 3 | |
| #796 Keep the selection bar on screen on a phone, without scrolling to it | 39m 43s | 1h 16m | 1.9× | 4 | |
| #794 Open an Item's form as a page of its own on a phone | 34m 17s | 58m 48s | 1.7× | 3 | |
| #795 On a phone, collapse every Panel to its header with a double-tap, and tap one to jump to it (#784) | 39m 25s | 22m 23s | 0.57× | 1 | |
| #793 Make a pressed filter option unmistakable, and offer Attachments as With or Without (#791) | 11m 13s | 25m 56s | 2.3× | 2 | |
| #783 Give an Item row's title the width on a phone | 19m 57s | 24m 48s | 1.2× | 1 | |
| #781 Drop a mail and a Teams message into the guest's Inbox after each sign-in (#775) | 18m 51s | 44m 19s | 2.4× | 2 | |
| #780 Retire the welcome question and the filing hints now that a new account carries its guide | 48m 05s | 1h 29m | 1.9× | 1 | |
| #779 Show agents at work in the guest demo, with simulated runs (#774) | 28m 10s | 1h 23m | 3.0× | 3 | |
| #777 Give a new account a Getting started panel and an Inbox item that explain Cockpit | 1h 28m | 32m 07s | 0.36× | 2 | |
| #778 Seed Gmail and Teams in the guest demo, with fewer items, opening their links inside Cockpit | 28m 12s | 17m 51s | 0.63× | 1 | |
| #776 Refuse every connection change from the guest account (#772) | 25m 18s | 16m 34s | 0.65× | 1 | |
| #768 Let a backup go into a folder that's already there (#764) | 12m 50s | 16m 34s | 1.3× | 1 | |
| #766 Switch the Capture note to formatted | 25m 39s | 36m 07s | 1.4× | 3 | |
| #765 Make Capture's chips compact and its note box resizable | 7m 09s | 36m 50s | 5.1× | 3 | |
| #763 Keep a note's formatting when Cockpit rewrites it (#756) | 11m 34s | 37m 20s | 3.2× | 2 | |
| #760 Switch the Car view dark from inside it, for capturing at night (#753) | 47m 31s | 19m 32s | 0.41× | 1 |
Every strip is on one scale, up to 4h 00m, and every part sits at its own time and length on it; one too short to see is drawn a little wider, over what follows it. Time away is not on it. A CI Round is split into the checks that held it, in the order they finished — hover a slice for which one and how long, and hover a round to find its line in the list; it is named on the strip as far as its width allows. Click a strip to open that pull request on its own scale, uncut, with a clock-time axis (UTC) above its CI Rounds in words; click it again to close it. A local review, test run or browser pass is cut out of the coding or fixing it sat in, at the time it ran; where several run in parallel, the longest stays on the line and the others stack above it, then below, and the minutes they share are counted once. Work on the developer’s machine is drawn in greens and teals, CI in blue.
CI Round: a push, until the last check on it finishes; a red one failed and was pushed again.
1 CI Round · 46m 48s to merge
2 CI Rounds · 1h 48m to merge
1 CI Round · 27m 11s to merge
1 CI Round · 38m 02s to merge
1 CI Round · 34m 57s to merge
1 CI Round · 24m 31s to merge
1 CI Round · 26h 04m to merge
The session record's start is after the pull request's first commit, so it is ignored.
Clipped: 26h 04m on the scale in all (time away is not counted), the first 4h 00m shown. The strip ends at the edge of the scale, not at the merge. Click it to see all of it.
The session record's start is after the pull request's first commit, so it is ignored.
1 CI Round · 36m 55s to merge
1 CI Round · 29m 31s to merge
2 CI Rounds, 1 red · 1h 16m to merge
1 CI Round · 55m 00s to merge
1 CI Round · 39m 08s to merge
2 CI Rounds · 26m 30s to merge
The session record's start is after the pull request's first commit, so it is ignored.
The session record's start is after the pull request's first commit, so it is ignored.
1 CI Round · 21m 57s to merge
2 CI Rounds · 1h 39m to merge
2 CI Rounds · 23m 54s to merge
1 CI Round · 44m 30s to merge
3 CI Rounds · 36m 03s to merge
1 CI Round · 1h 24m to merge
1 CI Round · 1h 10m to merge
1 CI Round · 38m 45s to merge
2 CI Rounds · 58m 53s to merge
1 CI Round · 56m 58s to merge
1 CI Round · 36m 25s to merge
2 CI Rounds · 35m 57s to merge
1 CI Round · 38m 50s to merge
1 CI Round · 2m 51s to merge
1 CI Round · 40m 03s to merge
1 CI Round · 45m 16s to merge
1 CI Round · 28m 00s to merge
1 CI Round · 3m 07s to merge
2 CI Rounds, 1 red · 1h 41m to merge
2 CI Rounds · 8h 31m to merge
Clipped: 8h 31m on the scale in all (time away is not counted), the first 4h 00m shown. The strip ends at the edge of the scale, not at the merge. Click it to see all of it.
2 CI Rounds, 1 red · 1h 09m to merge
3 CI Rounds, 2 red · 1h 48m to merge
2 CI Rounds · 1h 08m to merge
2 CI Rounds · 57m 34s to merge
3 CI Rounds · 1h 25m to merge
2 CI Rounds, 1 red · 1h 25m to merge
1 CI Round · 1h 13m to merge
2 CI Rounds, 1 red · 1h 38m to merge
2 CI Rounds · 1h 59m to merge
2 CI Rounds, 1 red · 2h 18m to merge
2 CI Rounds · 1h 08m to merge
2 CI Rounds · 30m 56s to merge
2 CI Rounds · 36m 10s to merge
2 CI Rounds · 1h 01m to merge
2 CI Rounds · 31m 04s to merge
2 CI Rounds · 1h 52m to merge
2 CI Rounds · 1h 32m to merge
1 CI Round · 1h 03m to merge
2 CI Rounds · 1h 57m to merge
3 CI Rounds, 1 red · 1h 26m to merge
2 CI Rounds · 27m 23s to merge
The session record's start is after the pull request's first commit, so it is ignored.
The session record's start is after the pull request's first commit, so it is ignored.
3 CI Rounds, 1 red · 1h 40m to merge
2 CI Rounds · 54m 32s to merge
1 CI Round · 1h 34m to merge
2 CI Rounds · 51m 43s to merge
2 CI Rounds · 57m 08s to merge
1 CI Round · 2h 17m to merge
2 CI Rounds, 1 red · 4h 07m to merge
Clipped: 4h 07m on the scale in all (time away is not counted), the first 4h 00m shown. The strip ends at the edge of the scale, not at the merge. Click it to see all of it.
2 CI Rounds · 49m 30s to merge
3 CI Rounds, 2 red · 2h 22m to merge
2 CI Rounds, 1 red · 1h 14m to merge
3 CI Rounds · 39m 33s to merge
1 CI Round · 1h 10m to merge
2 CI Rounds · 33m 10s to merge
2 CI Rounds · 42m 00s to merge
3 CI Rounds · 1h 19m to merge
1 CI Round · 42m 22s to merge
1 CI Round · 23m 29s to merge
No session record: the time starts at the first commit, so any coding before it and the local reviews are not recorded.
No session record: the time starts at the first commit, so any coding before it and the local reviews are not recorded.
3 CI Rounds · 45m 36s to merge
1 CI Round · 44m 38s to merge
2 CI Rounds, 1 red · 3h 16m to merge
2 CI Rounds, 1 red · 1h 28m to merge
1 CI Round · 41m 58s to merge
3 CI Rounds · 54m 54s to merge
1 CI Round · 52m 35s to merge
3 CI Rounds, 2 red · 2h 12m to merge
3 CI Rounds · 1h 41m to merge
4 CI Rounds, 1 red · 2h 14m to merge
2 CI Rounds · 55m 17s to merge
3 CI Rounds · 1h 11m to merge
2 CI Rounds · 1h 25m to merge
4 CI Rounds, 1 red · 1h 48m to merge
2 CI Rounds · 1h 12m to merge
1 CI Round · 42m 58s to merge
1 CI Round · 38m 17s to merge
1 CI Round · 32m 05s to merge
2 CI Rounds · 36m 47s to merge
2 CI Rounds, 1 red · 1h 07m to merge
1 CI Round · 10m 02s to merge
No session record: the time starts at the first commit, so any coding before it and the local reviews are not recorded.
No session record: the time starts at the first commit, so any coding before it and the local reviews are not recorded.
1 CI Round · 24m 21s to merge
2 CI Rounds · 49m 55s to merge
2 CI Rounds · 41m 11s to merge
4 CI Rounds, 2 red · 54m 03s to merge
2 CI Rounds · 29m 29s to merge
1 CI Round · 38m 13s to merge
3 CI Rounds, 2 red · 1h 14m to merge
4 CI Rounds, 1 red · 1h 22m to merge
1 CI Round · 1h 07m to merge
6 CI Rounds, 4 red · 3h 05m to merge
4 CI Rounds, 2 red · 1h 16m to merge
3 CI Rounds, 2 red · 1h 26m to merge
4 CI Rounds, 1 red · 1h 56m to merge
3 CI Rounds, 2 red · 1h 33m to merge
1 CI Round · 1h 02m to merge
2 CI Rounds · 37m 29s to merge
1 CI Round · 45m 10s to merge
2 CI Rounds · 1h 03m to merge
1 CI Round · 2h 18m to merge
3 CI Rounds, 1 red · 1h 51m to merge
2 CI Rounds · 2h 01m to merge
1 CI Round · 47m 04s to merge
1 CI Round · 42m 44s to merge
1 CI Round · 30m 14s to merge
3 CI Rounds · 1h 02m to merge
3 CI Rounds, 1 red · 44m 20s to merge
2 CI Rounds · 49m 36s to merge
1 CI Round · 1h 07m to merge