Skip to content

Commit b8e7f4a

Browse files
committed
Merge remote-tracking branch 'origin/staging' into feat/permission-groups-coverage
2 parents 77c5cd4 + 2598f44 commit b8e7f4a

157 files changed

Lines changed: 11678 additions & 773 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/add-block-preview/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ A revealed block that is not globally GA (`enabled !== true`, or env-revealed) r
4141
- GA via config (code cleanup pending): `{ "enabled": true }` — suffix disappears everywhere within ~30s (AppConfig TTL) + client refetch.
4242

4343
Same runbook as `feature-flags`: edit the hosted document, `aws appconfig start-deployment` with the `sim-<env>-fast` strategy (see the infra README).
44-
5. **GA cleanup:** delete `preview: true` from the block (now visible to self-hosters on their next upgrade), add its `BlockMeta` + regen docs, and drop the AppConfig entry. For a v2 upgrade, this is also when v1 gets `hideFromToolbar: true` (the superseded-version paradigm).
44+
5. **GA cleanup:** delete `preview: true` from the block (now visible to self-hosters on their next upgrade), add its `BlockMeta` + regen docs, and drop the AppConfig entry. For a v2 upgrade, this is also when v1 gets `hideFromToolbar: true` **and** `sunset: { status: 'legacy', replacedBy: '<v2-type>' }` (the superseded-version paradigm). Both edits must land in the **same commit** as the `preview: true` removal — `check-block-registry` fails a sunset block whose `replacedBy` is still `preview`, so splitting them breaks the build in between. Also move the block's `BLOCK_DISPLAY_WORKFLOWS` entry (`apps/docs/components/workflow-preview/block-display-workflows.ts`) to the new type, or `BlockPreview` silently renders nothing on the docs page.
4545

4646
## Kill switch (shipped blocks)
4747

.agents/skills/add-block/SKILL.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,10 @@ export const ServiceBlock: BlockConfig = {
695695
type: 'service',
696696
name: 'Service (Legacy)',
697697
hideFromToolbar: true, // Hide from toolbar
698+
// Required: drives the amber legacy badge and its click-to-upgrade action.
699+
// `check-block-registry` fails a legacy block with no `replacedBy`, one whose
700+
// target does not exist, or one whose target is itself sunset or still `preview`.
701+
sunset: { status: 'legacy', replacedBy: 'service_v2' },
698702
// ... rest of config
699703
}
700704

.agents/skills/add-integration/SKILL.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,15 @@ If creating V2 versions (API-aligned outputs):
598598

599599
1. **V2 Tools** - Add `_v2` suffix, version `2.0.0`, flat outputs
600600
2. **V2 Block** - Add `_v2` type, use `createVersionedToolSelector`
601-
3. **V1 Block** - Add `(Legacy)` to name, set `hideFromToolbar: true`
601+
3. **V1 Block** - Add `(Legacy)` to name, set `hideFromToolbar: true`, and add
602+
`sunset: { status: 'legacy', replacedBy: '{service}_v2' }``check-block-registry`
603+
fails a legacy block with no `replacedBy`, and the amber legacy badge plus its
604+
click-to-upgrade action read from that field.
605+
606+
**Only add `replacedBy` once the target is GA.** The same check also fails when
607+
the target is unregistered, itself sunset, or still `preview: true`. If v2 is
608+
preview-gated, leave v1 alone until GA and drop `preview` in the *same commit*
609+
that adds the sunset — splitting them breaks the build in between.
602610
4. **Registry** - Register both versions
603611

604612
```typescript

apps/docs/components/ui/icon-mapping.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
546546
stt_v2: STTIcon,
547547
supabase: SupabaseIcon,
548548
table: Table,
549+
table_v2: Table,
549550
tailscale: TailscaleIcon,
550551
tavily: TavilyIcon,
551552
telegram: TelegramIcon,

apps/docs/components/workflow-preview/block-display-workflows.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,14 +349,14 @@ export const BLOCK_DISPLAY_WORKFLOWS: Record<string, PreviewWorkflow> = {
349349
],
350350
edges: [],
351351
},
352-
table: {
353-
id: 'table',
352+
table_v2: {
353+
id: 'table_v2',
354354
name: 'Table',
355355
blocks: [
356356
{
357-
id: 'table',
357+
id: 'table_v2',
358358
name: 'Table',
359-
type: 'table',
359+
type: 'table_v2',
360360
bgColor: '#10B981',
361361
position: { x: 0, y: 0 },
362362
hideTargetHandle: true,

apps/docs/components/workflow-preview/examples.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export const TABLE_ENRICH_WORKFLOW: PreviewWorkflow = {
139139
{
140140
id: 'table1',
141141
name: 'Table 1',
142-
type: 'table',
142+
type: 'table_v2',
143143
bgColor: '#10B981',
144144
position: { x: 0, y: 0 },
145145
hideTargetHandle: true,
@@ -162,7 +162,7 @@ export const TABLE_ENRICH_WORKFLOW: PreviewWorkflow = {
162162
{
163163
id: 'table2',
164164
name: 'Table 2',
165-
type: 'table',
165+
type: 'table_v2',
166166
bgColor: '#10B981',
167167
position: { x: 660, y: 0 },
168168
rows: [
@@ -1644,7 +1644,7 @@ export const TABLE_ROUNDTRIP_WORKFLOW: PreviewWorkflow = {
16441644
{
16451645
id: 'query',
16461646
name: 'Table',
1647-
type: 'table',
1647+
type: 'table_v2',
16481648
bgColor: '#10B981',
16491649
position: { x: 0, y: 0 },
16501650
hideTargetHandle: true,
@@ -1664,7 +1664,7 @@ export const TABLE_ROUNDTRIP_WORKFLOW: PreviewWorkflow = {
16641664
{
16651665
id: 'update',
16661666
name: 'Table',
1667-
type: 'table',
1667+
type: 'table_v2',
16681668
bgColor: '#10B981',
16691669
position: { x: 680, y: 0 },
16701670
rows: [

0 commit comments

Comments
 (0)