Skip to content

Commit 031ba61

Browse files
authored
v0.9.52: Next.js 16.4.5 security release, route-handler framing alignment, egress gateway addresses kept out of the Trigger env sync, docs code rendering and keyboard navigation, dependency updates
2 parents 5c55dc8 + de6e53c commit 031ba61

36 files changed

Lines changed: 435 additions & 217 deletions

File tree

‎apps/desktop/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@
4040
"@sim/terminal-protocol": "workspace:*",
4141
"@sim/utils": "workspace:*",
4242
"@xterm/headless": "6.0.0",
43-
"electron-updater": "6.8.9",
43+
"electron-updater": "6.8.12",
4444
"lru-cache": "11.5.3",
4545
"micromatch": "4.0.8",
4646
"safe-regex2": "5.1.2",
47-
"tldts": "7.4.18",
47+
"tldts": "7.4.19",
4848
"pdf-lib": "1.17.1",
4949
"@sim/auth-ui": "workspace:*"
5050
},

‎apps/docs/components/docs/mdx.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export function getMDXComponents(overrides: MDXComponents = {}): MDXComponents {
7979
<code
8080
{...props}
8181
className={cn(
82-
'rounded bg-[var(--docs-surface)] px-1 py-px font-mono font-normal [font-size:0.875em]',
82+
'rounded bg-[var(--docs-surface)] px-1 py-px font-mono font-normal [font-size:0.875em] [font-variant-ligatures:none]',
8383
className
8484
)}
8585
/>

‎apps/docs/components/docs/sample-panels.tsx‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,13 @@ export function SamplePanels({
8686
value={item.value}
8787
label={item.label}
8888
id={item.id ?? `${selectorId}-${item.value}`}
89+
tabIndex={-1}
8990
{...(presentation === 'select' ? { role: 'region', 'aria-labelledby': selectorId } : {})}
9091
className='[&>div]:pt-0'
9192
>
92-
<CodeContent label={`${label}: ${item.label}`}>{item.panel}</CodeContent>
93+
<CodeContent label={`${label}: ${item.label}`} tabIndex={0}>
94+
{item.panel}
95+
</CodeContent>
9396
</Tab>
9497
))}
9598
</Tabs>

‎apps/docs/components/ui/code-block.tsx‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ interface CodeBlockProps extends HTMLAttributes<HTMLElement> {
1818
interface CodeContentProps {
1919
children: ReactNode
2020
label?: string
21+
tabIndex?: number
2122
}
2223

23-
export function CodeContent({ children, label = 'Code sample' }: CodeContentProps) {
24+
export function CodeContent({ children, label = 'Code sample', tabIndex }: CodeContentProps) {
2425
return (
2526
<ScrollRegion
2627
label={label}
27-
className='focus-visible:-outline-offset-2 p-4 [&_code]:block [&_code]:bg-transparent [&_code]:p-0 [&_code]:font-normal [&_code]:text-docs-code [&_pre]:m-0 [&_pre]:w-max [&_pre]:min-w-full [&_pre]:bg-transparent! [&_pre]:p-0 [&_pre]:font-mono [&_pre]:text-docs-code'
28+
tabIndex={tabIndex}
29+
className='focus-visible:-outline-offset-2 p-4 [&_code]:block [&_code]:bg-transparent [&_code]:p-0 [&_code]:font-normal [&_code]:text-docs-code [&_pre]:m-0 [&_pre]:w-max [&_pre]:min-w-full [&_pre]:bg-transparent! [&_pre]:p-0 [&_pre]:font-mono [&_pre]:text-docs-code [&_pre]:[font-variant-ligatures:none]'
2830
>
2931
{children}
3032
</ScrollRegion>

‎apps/docs/components/ui/scroll-region.tsx‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,32 @@ interface ScrollRegionProps extends HTMLAttributes<HTMLDivElement> {
88
label: string
99
}
1010

11-
/** Keyboard scrolling is reachable only when this region has horizontal overflow. */
12-
export function ScrollRegion({ label, className, children, ...props }: ScrollRegionProps) {
11+
/** Keeps scrolling keyboard-accessible before hydration, then skips nonoverflowing regions unless opted in. */
12+
export function ScrollRegion({
13+
label,
14+
className,
15+
children,
16+
tabIndex,
17+
...props
18+
}: ScrollRegionProps) {
1319
const region = useRef<HTMLDivElement>(null)
1420
useEffect(() => {
1521
const element = region.current
1622
if (!element) return
1723
function updateFocusability() {
18-
if (element) element.tabIndex = element.scrollWidth > element.clientWidth + 1 ? 0 : -1
24+
if (element)
25+
element.tabIndex = tabIndex ?? (element.scrollWidth > element.clientWidth + 1 ? 0 : -1)
1926
}
2027
const observer = new ResizeObserver(updateFocusability)
2128
observer.observe(element)
2229
if (element.firstElementChild) observer.observe(element.firstElementChild)
2330
return () => observer.disconnect()
24-
}, [])
31+
}, [tabIndex])
2532
return (
2633
<div
2734
{...props}
2835
ref={region}
36+
tabIndex={tabIndex ?? 0}
2937
role='region'
3038
aria-label={label}
3139
className={cn(

‎apps/docs/components/ui/tabs.tsx‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ export function Tab({
310310
id,
311311
className,
312312
children,
313+
tabIndex = 0,
313314
'aria-labelledby': labelledBy,
314315
...props
315316
}: TabProps) {
@@ -319,6 +320,7 @@ export function Tab({
319320
<RadixTabs.Content
320321
{...props}
321322
forceMount
323+
tabIndex={active ? tabIndex : -1}
322324
value={value}
323325
id={id ?? context?.panelIds.get(value) ?? `${context?.baseId}-${encodeURIComponent(value)}`}
324326
aria-labelledby={labelledBy ?? `${context?.baseId}-${encodeURIComponent(value)}-trigger`}

‎apps/docs/content/docs/files/editor.mdx‎

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@ import { Image } from '@/components/ui/image'
77

88
Open a Markdown document beside [Chat](/chat/files) or from **Files** to read or edit it. Ask Sim to create a document, or select **New file** in Files. Rich editing requires edit access and supported document size and syntax; files remain stored as Markdown.
99

10+
<Image
11+
src="/static/docs-captures/files-markdown.webp"
12+
alt="A release brief open in the Markdown editor beside Chat, with a launch checklist, owner table, and highlighted JSON code block"
13+
width={2400}
14+
height={1200}
15+
variant="overview"
16+
/>
17+
1018
## Formatting text
1119

1220
Select text to open the formatting toolbar for bold, italic, strikethrough, inline code, and links. You can also type Markdown, such as `**bold**` and `*italic*`. A link's hover card lets you open, copy, edit, or remove it.
1321

14-
<Image
15-
src="/static/docs-captures/files-formatting.webp"
16-
alt="Selected text in the Markdown editor with the text style, bold, italic, link, and more formatting controls"
17-
width={900}
18-
height={340}
19-
variant="detail"
20-
background="architecture"
21-
/>
22-
2322
| Action | Shortcut or Markdown |
2423
| --- | --- |
2524
| Bold | **Cmd/Ctrl + B** |
@@ -39,28 +38,10 @@ Type `/` at the start of a block or after whitespace to open the insertion menu.
3938

4039
Insert a table from the slash menu. Select a cell to open the table toolbar, then add or remove rows and columns, or delete the table. The header row stays in place; you can edit its text. Column resizing and merged cells are not supported.
4140

42-
<Image
43-
src="/static/docs-captures/files-table.webp"
44-
alt="A Markdown owner table with controls for adding a row, managing columns, and deleting the table"
45-
width={1200}
46-
height={460}
47-
variant="detail"
48-
background="architecture"
49-
/>
50-
5141
## Code blocks
5242

5343
Fenced code blocks have syntax highlighting, a language picker, line wrapping, and a copy button. Hover over the block or focus a control to reveal its toolbar.
5444

55-
<Image
56-
src="/static/docs-captures/files-code.webp"
57-
alt="A highlighted JSON code block with language, line wrap, and copy controls"
58-
width={1200}
59-
height={400}
60-
variant="detail"
61-
background="architecture"
62-
/>
63-
6445
Choose `mermaid` to render a diagram. Select **Show source** when you need to edit its definition.
6546

6647
## Images

‎apps/docs/lib/shiki-theme.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,5 @@ const simShikiDark = buildTheme('sim-dark', 'dark', DARK)
195195
export const simShikiOptions = {
196196
themes: { light: simShikiLight, dark: simShikiDark },
197197
defaultColor: false,
198+
tabindex: false,
198199
} as const

‎apps/docs/openapi-v2-workflows.json‎

Lines changed: 128 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5275,6 +5275,20 @@
52755275
"application/json": {
52765276
"schema": {
52775277
"$ref": "#/components/schemas/PreviewWorkspaceForkResponse"
5278+
},
5279+
"examples": {
5280+
"example1": {
5281+
"summary": "Response example 1",
5282+
"value": {
5283+
"data": {
5284+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
5285+
"sourceWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
5286+
"workflows": [],
5287+
"selectedResourceCount": 0,
5288+
"draftOnly": true
5289+
}
5290+
}
5291+
}
52785292
}
52795293
}
52805294
}
@@ -5466,6 +5480,25 @@
54665480
"application/json": {
54675481
"schema": {
54685482
"$ref": "#/components/schemas/PreviewWorkspacePushResponse"
5483+
},
5484+
"examples": {
5485+
"example1": {
5486+
"summary": "Response example 1",
5487+
"value": {
5488+
"data": {
5489+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
5490+
"sourceWorkspaceId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
5491+
"targetWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
5492+
"ready": true,
5493+
"workflows": [],
5494+
"unresolvedBindings": [],
5495+
"configuration": [],
5496+
"excludedTargets": [],
5497+
"triggerSlots": [],
5498+
"triggerUrlChanges": []
5499+
}
5500+
}
5501+
}
54695502
}
54705503
}
54715504
}
@@ -5658,6 +5691,25 @@
56585691
"application/json": {
56595692
"schema": {
56605693
"$ref": "#/components/schemas/PreviewWorkspacePullResponse"
5694+
},
5695+
"examples": {
5696+
"example1": {
5697+
"summary": "Response example 1",
5698+
"value": {
5699+
"data": {
5700+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
5701+
"sourceWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
5702+
"targetWorkspaceId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
5703+
"ready": true,
5704+
"workflows": [],
5705+
"unresolvedBindings": [],
5706+
"configuration": [],
5707+
"excludedTargets": [],
5708+
"triggerSlots": [],
5709+
"triggerUrlChanges": []
5710+
}
5711+
}
5712+
}
56615713
}
56625714
}
56635715
}
@@ -6716,6 +6768,22 @@
67166768
"application/json": {
67176769
"schema": {
67186770
"$ref": "#/components/schemas/PreviewWorkflowImportResponse"
6771+
},
6772+
"examples": {
6773+
"example1": {
6774+
"summary": "Response example 1",
6775+
"value": {
6776+
"data": {
6777+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
6778+
"ready": true,
6779+
"bindings": [],
6780+
"unresolvedBindings": [],
6781+
"configuration": [],
6782+
"unresolvedConfiguration": [],
6783+
"discovery": []
6784+
}
6785+
}
6786+
}
67196787
}
67206788
}
67216789
}
@@ -15566,7 +15634,18 @@
1556615634
"required": ["data"],
1556715635
"additionalProperties": false,
1556815636
"title": "Preview workspace fork response",
15569-
"description": "Deployed source workflows, selected-copy count, and a preview fingerprint."
15637+
"description": "Deployed source workflows, selected-copy count, and a preview fingerprint.",
15638+
"examples": [
15639+
{
15640+
"data": {
15641+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
15642+
"sourceWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
15643+
"workflows": [],
15644+
"selectedResourceCount": 0,
15645+
"draftOnly": true
15646+
}
15647+
}
15648+
]
1557015649
},
1557115650
"PreviewWorkspaceForkBody": {
1557215651
"type": "object",
@@ -16446,7 +16525,23 @@
1644616525
"required": ["data"],
1644716526
"additionalProperties": false,
1644816527
"title": "Preview workspace push response",
16449-
"description": "Current-to-other workflow actions, required choices, and preview fingerprint."
16528+
"description": "Current-to-other workflow actions, required choices, and preview fingerprint.",
16529+
"examples": [
16530+
{
16531+
"data": {
16532+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
16533+
"sourceWorkspaceId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
16534+
"targetWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
16535+
"ready": true,
16536+
"workflows": [],
16537+
"unresolvedBindings": [],
16538+
"configuration": [],
16539+
"excludedTargets": [],
16540+
"triggerSlots": [],
16541+
"triggerUrlChanges": []
16542+
}
16543+
}
16544+
]
1645016545
},
1645116546
"PreviewWorkspacePushBody": {
1645216547
"type": "object",
@@ -16972,7 +17067,23 @@
1697217067
"required": ["data"],
1697317068
"additionalProperties": false,
1697417069
"title": "Preview workspace pull response",
16975-
"description": "Other-to-current workflow actions, required choices, and preview fingerprint."
17070+
"description": "Other-to-current workflow actions, required choices, and preview fingerprint.",
17071+
"examples": [
17072+
{
17073+
"data": {
17074+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
17075+
"sourceWorkspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
17076+
"targetWorkspaceId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
17077+
"ready": true,
17078+
"workflows": [],
17079+
"unresolvedBindings": [],
17080+
"configuration": [],
17081+
"excludedTargets": [],
17082+
"triggerSlots": [],
17083+
"triggerUrlChanges": []
17084+
}
17085+
}
17086+
]
1697617087
},
1697717088
"PreviewWorkspacePullBody": {
1697817089
"type": "object",
@@ -18487,7 +18598,20 @@
1848718598
"required": ["data"],
1848818599
"additionalProperties": false,
1848918600
"title": "Preview workflow import response",
18490-
"description": "Import readiness, unresolved bindings, and destination discovery instructions."
18601+
"description": "Import readiness, unresolved bindings, and destination discovery instructions.",
18602+
"examples": [
18603+
{
18604+
"data": {
18605+
"previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a",
18606+
"ready": true,
18607+
"bindings": [],
18608+
"unresolvedBindings": [],
18609+
"configuration": [],
18610+
"unresolvedConfiguration": [],
18611+
"discovery": []
18612+
}
18613+
}
18614+
]
1849118615
},
1849218616
"ImportWorkflowRequest": {
1849318617
"type": "object",

‎apps/docs/package.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
"@sim/logger": "workspace:*",
3434
"@sim/utils": "workspace:*",
3535
"@sim/workflow-renderer": "workspace:*",
36-
"@xyflow/react": "12.12.0",
37-
"next": "16.4.1",
36+
"@xyflow/react": "12.12.1",
37+
"next": "16.4.5",
3838
"next-themes": "^0.4.6",
3939
"react": "19.2.4",
4040
"react-dom": "19.2.4",
@@ -59,7 +59,7 @@
5959
"server-only": "0.0.1",
6060
"postgres": "3.4.9",
6161
"remark-rehype": "11.1.2",
62-
"hast-util-to-jsx-runtime": "2.3.6",
62+
"hast-util-to-jsx-runtime": "2.3.7",
6363
"clsx": "2.1.1",
6464
"tailwind-merge": "3.7.0",
6565
"mdast-util-gfm": "3.1.0",
@@ -80,7 +80,7 @@
8080
"vitest": "^5.0.4",
8181
"@modelcontextprotocol/client": "2.3.1",
8282
"@types/mdast": "4.0.4",
83-
"@types/mdx": "2.0.13",
83+
"@types/mdx": "2.0.14",
8484
"htmlparser2": "10.1.0",
8585
"@types/hast": "3.0.5"
8686
}

0 commit comments

Comments
 (0)