@clipboard-health/groundcrew 4.27.1 → 4.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
  <p align="center">
2
- <picture>
3
- <source media="(prefers-color-scheme: dark)" srcset="./static/groundcrew-wordmark-dark.svg">
4
- <img alt="groundcrew" src="./static/groundcrew-wordmark-light.svg" height="96">
5
- </picture>
2
+ <img alt="groundcrew" src="./static/groundcrew-wordmark.svg" height="96">
6
3
  </p>
7
4
 
8
5
  <p align="center">
@@ -10,10 +7,10 @@
10
7
  </p>
11
8
 
12
9
  <p align="center">
13
- <a href="https://www.npmjs.com/package/@clipboard-health/groundcrew"><img alt="npm" src="https://img.shields.io/npm/v/@clipboard-health/groundcrew?style=flat-square&label=npm&color=FF6D00&labelColor=18181b"></a>
14
- <a href="https://www.npmjs.com/package/@clipboard-health/groundcrew"><img alt="downloads" src="https://img.shields.io/npm/dw/@clipboard-health/groundcrew?style=flat-square&label=downloads&color=18181b&labelColor=18181b"></a>
15
- <a href="https://github.com/ClipboardHealth/groundcrew/actions/workflows/ci.yml"><img alt="ci" src="https://img.shields.io/github/actions/workflow/status/ClipboardHealth/groundcrew/ci.yml?style=flat-square&label=ci&color=77d94e&labelColor=18181b"></a>
16
- <a href="./LICENSE"><img alt="license" src="https://img.shields.io/npm/l/@clipboard-health/groundcrew?style=flat-square&label=license&color=18181b&labelColor=18181b"></a>
10
+ <a href="https://www.npmjs.com/package/@clipboard-health/groundcrew"><img alt="npm" src="https://img.shields.io/npm/v/@clipboard-health/groundcrew?style=flat-square&label=npm&color=F7C600&labelColor=111111"></a>
11
+ <a href="https://www.npmjs.com/package/@clipboard-health/groundcrew"><img alt="downloads" src="https://img.shields.io/npm/dw/@clipboard-health/groundcrew?style=flat-square&label=downloads&color=111111&labelColor=111111"></a>
12
+ <a href="https://github.com/ClipboardHealth/groundcrew/actions/workflows/ci.yml"><img alt="ci" src="https://img.shields.io/github/actions/workflow/status/ClipboardHealth/groundcrew/ci.yml?style=flat-square&label=ci&color=77d94e&labelColor=111111"></a>
13
+ <a href="./LICENSE"><img alt="license" src="https://img.shields.io/npm/l/@clipboard-health/groundcrew?style=flat-square&label=license&color=111111&labelColor=111111"></a>
17
14
  </p>
18
15
 
19
16
  <p align="center">
@@ -175,6 +172,13 @@ Regenerate the README demo with VHS:
175
172
  ./static/render-demo.sh
176
173
  ```
177
174
 
175
+ Regenerate the Slack bot avatar (also used as the emoji upload; Slack scales it down) after editing the mark:
176
+
177
+ ```bash
178
+ sed 's/width="120" height="120"/width="512" height="512"/' static/groundcrew-mark.svg > /tmp/mark512.svg
179
+ sips -s format png /tmp/mark512.svg --out static/groundcrew-avatar.png
180
+ ```
181
+
178
182
  ## License
179
183
 
180
184
  [MIT](./LICENSE)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clipboard-health/groundcrew",
3
- "version": "4.27.1",
3
+ "version": "4.28.0",
4
4
  "description": "Linear-driven orchestrator that launches AI coding agents in git worktrees, with workspace lifecycle and usage tracking.",
5
5
  "keywords": [
6
6
  "agent",
@@ -82,7 +82,7 @@
82
82
  "@tsconfig/node24": "24.0.4",
83
83
  "@tsconfig/strictest": "2.0.8",
84
84
  "@types/node": "25.9.2",
85
- "@typescript/native-preview": "7.0.0-dev.20260604.1",
85
+ "@typescript/native-preview": "7.0.0-dev.20260606.1",
86
86
  "@vitest/coverage-v8": "4.1.8",
87
87
  "cspell": "10.0.1",
88
88
  "dependency-cruiser": "17.4.3",
Binary file
@@ -2,28 +2,25 @@
2
2
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120" role="img" aria-label="groundcrew">
3
3
  <title>groundcrew</title>
4
4
  <!--
5
- Crossed marshaling wands. Handles at bottom (18,108) and (102,108),
6
- cross at (60,50), tips at (88,11) and (32,11).
7
- SMIL animation: wands alternate dimming, 2.4s cycle.
8
- Right wand offset by -1.2s so both open fully opaque.
5
+ Taxiway sign tile: yellow field, inset inscription border, fork arrow.
6
+ One task stream splitting onto parallel worktrees.
7
+ Field #F7C600, ink #111111. Fork stem (22,60) to (48,60), branches to
8
+ (92.2,29) and (92.2,91) with chevron heads. Stroke 11, round caps/joins.
9
+ At 16px (favicon), drop the inscription border and bump the fork stroke
10
+ to 16.
11
+
12
+ Regenerate groundcrew-avatar.png (Slack bot avatar; also fine as the
13
+ emoji upload; Slack scales it down) with the sips commands in the
14
+ README's Development section. The exact command can't live here: it
15
+ needs a double-hyphen flag, which is illegal inside an XML comment.
9
16
  -->
10
- <line x1="18" y1="108" x2="88" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
11
- <animate attributeName="opacity"
12
- values="1;0.38;1;1"
13
- keyTimes="0;0.25;0.5;1"
14
- calcMode="spline"
15
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
16
- dur="2.4s"
17
- repeatCount="indefinite"/>
18
- </line>
19
- <line x1="102" y1="108" x2="32" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
20
- <animate attributeName="opacity"
21
- values="1;0.38;1;1"
22
- keyTimes="0;0.25;0.5;1"
23
- calcMode="spline"
24
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
25
- dur="2.4s"
26
- begin="-1.2s"
27
- repeatCount="indefinite"/>
28
- </line>
17
+ <!-- rounded rectangles as explicit paths: the macOS renderers (sips and
18
+ qlmanage) that cut the PNG avatar mishandle rx on rect -->
19
+ <path d="M24 0 H96 A24 24 0 0 1 120 24 V96 A24 24 0 0 1 96 120 H24 A24 24 0 0 1 0 96 V24 A24 24 0 0 1 24 0 Z" fill="#F7C600"/>
20
+ <path d="M21 9 H99 A12 12 0 0 1 111 21 V99 A12 12 0 0 1 99 111 H21 A12 12 0 0 1 9 99 V21 A12 12 0 0 1 21 9 Z" fill="none" stroke="#111111" stroke-width="6"/>
21
+ <path
22
+ d="M22 60 H48
23
+ M48 60 L92.2 29 M75.3 27.5 L92.2 29 L87.8 45.4
24
+ M48 60 L92.2 91 M75.3 92.5 L92.2 91 L87.8 74.6"
25
+ fill="none" stroke="#111111" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"/>
29
26
  </svg>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 730 128" width="730" height="128" role="img" aria-label="groundcrew">
3
+ <title>groundcrew</title>
4
+ <style>
5
+ .wordmark {
6
+ font-family: Overpass, "Helvetica Neue", Helvetica, Arial, sans-serif;
7
+ font-size: 68px;
8
+ font-weight: 800;
9
+ }
10
+ </style>
11
+ <!--
12
+ Airport taxiway sign lockup, self-contained on light and dark pages.
13
+ Location panel (yellow-on-black, flush inscription border) names the
14
+ tool; direction panel (black-on-yellow) carries the fork arrow - one
15
+ task stream splitting onto parallel worktrees.
16
+ Field #F7C600, ink #111111. textLength normalizes the wordmark width
17
+ across font fallbacks.
18
+ -->
19
+ <rect width="730" height="128" rx="14" fill="#F7C600"/>
20
+ <path d="M570 0 H14 A14 14 0 0 0 0 14 V114 A14 14 0 0 0 14 128 H570 Z" fill="#111111"/>
21
+ <path d="M568 2 H14 A12 12 0 0 0 2 14 V114 A12 12 0 0 0 14 126 H568 Z" fill="none" stroke="#F7C600" stroke-width="4"/>
22
+ <text class="wordmark" x="285" y="89" text-anchor="middle" textLength="490" lengthAdjust="spacingAndGlyphs" fill="#F7C600">GROUNDCREW</text>
23
+ <g transform="translate(593,4)">
24
+ <path
25
+ d="M22 60 H48
26
+ M48 60 L92.2 29 M75.3 27.5 L92.2 29 L87.8 45.4
27
+ M48 60 L92.2 91 M75.3 92.5 L92.2 91 L87.8 74.6"
28
+ fill="none" stroke="#111111" stroke-width="11" stroke-linecap="round" stroke-linejoin="round"/>
29
+ </g>
30
+ </svg>
Binary file
@@ -1,38 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 680 120" width="680" height="120" role="img" aria-label="groundcrew">
3
- <title>groundcrew</title>
4
- <style>
5
- .wordmark {
6
- font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;
7
- font-size: 92px;
8
- font-weight: 700;
9
- letter-spacing: -0.04em;
10
- }
11
- </style>
12
- <!--
13
- Logomark: crossed marshaling wands.
14
- Handles at (18,108) and (102,108), cross at (60,50), tips at (88,11) and (32,11).
15
- SMIL animation: wands alternate dimming, 2.4s cycle.
16
- Right wand offset by -1.2s so both open fully opaque.
17
- -->
18
- <line x1="18" y1="108" x2="88" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
19
- <animate attributeName="opacity"
20
- values="1;0.38;1;1"
21
- keyTimes="0;0.25;0.5;1"
22
- calcMode="spline"
23
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
24
- dur="2.4s"
25
- repeatCount="indefinite"/>
26
- </line>
27
- <line x1="102" y1="108" x2="32" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
28
- <animate attributeName="opacity"
29
- values="1;0.38;1;1"
30
- keyTimes="0;0.25;0.5;1"
31
- calcMode="spline"
32
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
33
- dur="2.4s"
34
- begin="-1.2s"
35
- repeatCount="indefinite"/>
36
- </line>
37
- <text class="wordmark" x="136" y="92" textLength="540" lengthAdjust="spacingAndGlyphs" fill="#e4e4e7">groundcrew</text>
38
- </svg>
@@ -1,38 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 680 120" width="680" height="120" role="img" aria-label="groundcrew">
3
- <title>groundcrew</title>
4
- <style>
5
- .wordmark {
6
- font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;
7
- font-size: 92px;
8
- font-weight: 700;
9
- letter-spacing: -0.04em;
10
- }
11
- </style>
12
- <!--
13
- Logomark: crossed marshaling wands.
14
- Handles at (18,108) and (102,108), cross at (60,50), tips at (88,11) and (32,11).
15
- SMIL animation: wands alternate dimming, 2.4s cycle.
16
- Right wand offset by -1.2s so both open fully opaque.
17
- -->
18
- <line x1="18" y1="108" x2="88" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
19
- <animate attributeName="opacity"
20
- values="1;0.38;1;1"
21
- keyTimes="0;0.25;0.5;1"
22
- calcMode="spline"
23
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
24
- dur="2.4s"
25
- repeatCount="indefinite"/>
26
- </line>
27
- <line x1="102" y1="108" x2="32" y2="11" stroke="#FF6D00" stroke-width="20" stroke-linecap="round">
28
- <animate attributeName="opacity"
29
- values="1;0.38;1;1"
30
- keyTimes="0;0.25;0.5;1"
31
- calcMode="spline"
32
- keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0 0 1 1"
33
- dur="2.4s"
34
- begin="-1.2s"
35
- repeatCount="indefinite"/>
36
- </line>
37
- <text class="wordmark" x="136" y="92" textLength="540" lengthAdjust="spacingAndGlyphs" fill="#18181b">groundcrew</text>
38
- </svg>