@octanejs/cli 0.0.9 → 0.0.10
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/package.json +1 -1
- package/src/commands/analyze.js +18 -6
- package/src/commands/init/templates.js +137 -116
- package/src/data/octane-data.json +451 -221
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"bindings": [
|
|
3
3
|
{
|
|
4
4
|
"name": "@octanejs/alien-signals",
|
|
5
|
-
"version": "0.0.
|
|
6
|
-
"category": "
|
|
5
|
+
"version": "0.0.18",
|
|
6
|
+
"category": "State Management",
|
|
7
7
|
"upstream": {
|
|
8
8
|
"package": "react-alien-signals",
|
|
9
9
|
"version": "0.3.0",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"name": "@octanejs/animejs",
|
|
23
|
-
"version": "0.0.
|
|
24
|
-
"category": "
|
|
23
|
+
"version": "0.0.23",
|
|
24
|
+
"category": "Animation",
|
|
25
25
|
"upstream": {
|
|
26
26
|
"package": "animejs",
|
|
27
27
|
"version": "4.5.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"surface": "Anime.js is re-exported unchanged; `useAnimeScope` binds scoped DOM animation setup, refresh, dependency recreation, and cleanup to Octane, and `@octanejs/animejs/adapters/three` exposes Anime.js's official Three adapter.",
|
|
32
32
|
"divergences": [
|
|
33
33
|
"`useAnimeScope` is an Octane-native lifecycle helper; it is not an upstream Anime.js API.",
|
|
34
|
-
"
|
|
34
|
+
"Use additional Anime.js subpaths directly from animejs; the root and adapters/three convenience exports remain supported.",
|
|
35
35
|
"The Three adapter mutates raw objects while `@octanejs/three` retains frame-loop ownership; demand and never loops require explicit invalidation or advancement."
|
|
36
36
|
],
|
|
37
37
|
"ssr": "Supported. The hook returns inert refs during server rendering and creates no Anime.js scope until its client effect runs.",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"name": "@octanejs/apollo-client",
|
|
42
|
-
"version": "0.1.
|
|
43
|
-
"category": "
|
|
42
|
+
"version": "0.1.47",
|
|
43
|
+
"category": "Data",
|
|
44
44
|
"upstream": { "package": "@apollo/client", "version": "4.2.6" },
|
|
45
45
|
"surface": "Complete published client adapter surface: all 18 @apollo/client/react runtime exports and their Apollo 4.2.6 TypeScript declarations, framework-neutral root/testing exports, an Octane MockedProvider, and the Octane-native /react/ssr prerenderStatic entry.",
|
|
46
46
|
"divergences": [
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"name": "@octanejs/aria",
|
|
56
|
-
"version": "0.0.
|
|
57
|
-
"category": "UI
|
|
58
|
-
"upstream": { "package": "react-aria", "version": "3.
|
|
59
|
-
"surface": "The `@octanejs/aria/components` entry point matches the complete named public surface of `react-aria-components@1.
|
|
56
|
+
"version": "0.0.48",
|
|
57
|
+
"category": "UI Libraries",
|
|
58
|
+
"upstream": { "package": "react-aria", "version": "3.51.0" },
|
|
59
|
+
"surface": "The `@octanejs/aria/components` entry point matches the complete named public surface of `react-aria-components@1.20.0`: 286 runtime exports and 327 type exports, checked in both directions with no missing or extra names. This includes TokenField, PreviewTrigger, calendar/date/time, color, drag-and-drop, DropZone/FileTrigger, toast, data hooks, and virtualized layout APIs in addition to the previously ported primitives, overlays, collections, Tree, and Table. The root behavior-hook and `/stately` entries remain curated React Aria 3.51.0 / React Stately 3.49.0 surfaces rather than separate full-export claims.",
|
|
60
60
|
"divergences": [
|
|
61
61
|
"`native-input-event-wiring`: Text-input DOM wiring uses Octane's native `onInput` per keystroke instead of React's synthetic `onChange`; public value-level callbacks are unchanged.",
|
|
62
62
|
"`ref-as-prop`: React `forwardRef` wrappers become Octane ref-as-prop components.",
|
|
@@ -64,13 +64,13 @@
|
|
|
64
64
|
"`valid-hoisted-identifiers`: The i18n server serializer keeps hoisted-string identifiers valid past 26 entries instead of emitting invalid JavaScript identifiers.",
|
|
65
65
|
"`server-rtl-direction`: The SSR locale direction derives from the injected locale via `isRTL` rather than being hard-coded to `ltr`."
|
|
66
66
|
],
|
|
67
|
-
"ssr": "Dedicated Node
|
|
68
|
-
"verified": "2026-
|
|
67
|
+
"ssr": "Dedicated Node coverage verifies SSRProvider, labelled relationships, snapshots, LTR/RTL locales, TokenField markup, and a closed PreviewTrigger. Vite-compiled server markup hydrates in place with interactive state updates. Other advanced families retain client and type/export coverage.",
|
|
68
|
+
"verified": "2026-09-07"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"name": "@octanejs/auto-animate",
|
|
72
|
-
"version": "0.0.
|
|
73
|
-
"category": "
|
|
72
|
+
"version": "0.0.8",
|
|
73
|
+
"category": "Animation",
|
|
74
74
|
"upstream": {
|
|
75
75
|
"package": "@formkit/auto-animate",
|
|
76
76
|
"version": "0.10.0",
|
|
@@ -88,23 +88,54 @@
|
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
"name": "@octanejs/base-ui",
|
|
91
|
-
"version": "0.1.
|
|
92
|
-
"category": "UI
|
|
93
|
-
"upstream": {
|
|
94
|
-
|
|
91
|
+
"version": "0.1.53",
|
|
92
|
+
"category": "UI Libraries",
|
|
93
|
+
"upstream": {
|
|
94
|
+
"package": "@base-ui/react",
|
|
95
|
+
"version": "1.8.0",
|
|
96
|
+
"commit": "47b40521eab921c2756bf9bdb0b0f07fbfdb8c8c",
|
|
97
|
+
"license": "MIT"
|
|
98
|
+
},
|
|
99
|
+
"surface": "All 79 upstream export entries are implemented, including Select, Combobox, Autocomplete, Drawer, Navigation Menu, OTP Field, Scroll Area, Toolbar, and the remaining parts of existing components.",
|
|
95
100
|
"divergences": [
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"`number-field-interaction-gaps`: `NumberField.ScrubArea` and hold-to-repeat stepping remain unported; steppers respond to single presses only."
|
|
101
|
+
"Host handlers receive native DOM events; text edits use onInput. Refs are ordinary props and class values use Octane composition.",
|
|
102
|
+
"Octane does not replay renders or mount effects in Strict Mode and does not support the React Server Components Flight format.",
|
|
103
|
+
"Base UI style composition accepts object styles, including functions returning objects."
|
|
100
104
|
],
|
|
101
|
-
"ssr": "
|
|
102
|
-
"verified": "2026-
|
|
105
|
+
"ssr": "Native SSR/hydration, initial suspended hydration, focus and portal regressions pass, including installed Select/Combobox server form rendering.",
|
|
106
|
+
"verified": "2026-09-06"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "@octanejs/base-ui-utils",
|
|
110
|
+
"version": "0.1.1",
|
|
111
|
+
"category": "UI Utilities",
|
|
112
|
+
"upstream": {
|
|
113
|
+
"package": "@base-ui/utils",
|
|
114
|
+
"version": "0.4.0",
|
|
115
|
+
"commit": "47b40521eab921c2756bf9bdb0b0f07fbfdb8c8c",
|
|
116
|
+
"license": "MIT"
|
|
117
|
+
},
|
|
118
|
+
"surface": "All 45 published Base UI utility entries and 85 entry/export pairs match the pinned 0.4.0 release.",
|
|
119
|
+
"divergences": ["Refs are ordinary props and host callbacks receive native DOM events."],
|
|
120
|
+
"ssr": "Server and hydration behavior is verified through native Base UI integration and installed-consumer checks.",
|
|
121
|
+
"verified": "2026-09-06"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "@octanejs/better-auth",
|
|
125
|
+
"version": "0.0.4",
|
|
126
|
+
"category": "Data",
|
|
127
|
+
"upstream": { "package": "better-auth", "version": "1.6.29" },
|
|
128
|
+
"surface": "The public framework-agnostic Better Auth client is reused unchanged. `createAuthClient` converts the built-in session atom and plugin-provided atoms into Octane hooks while preserving endpoint actions, `$fetch`, `$store`, `$ERROR_CODES`, `$Infer`, and plugin inference. The upstream-compatible `useStore` helper is also included.",
|
|
129
|
+
"divergences": [
|
|
130
|
+
"React-framework server helpers such as `better-auth/tanstack-start` are not re-exported; use Better Auth's standard Fetch API handler or an Octane-specific server integration."
|
|
131
|
+
],
|
|
132
|
+
"ssr": "`useStore` supplies the current Nanostore value as the server snapshot. Better Auth's session atom does not start browser refresh or network activity while rendering on the server.",
|
|
133
|
+
"verified": "2026-08-17"
|
|
103
134
|
},
|
|
104
135
|
{
|
|
105
136
|
"name": "@octanejs/calendar",
|
|
106
|
-
"version": "0.0.
|
|
107
|
-
"category": "UI
|
|
137
|
+
"version": "0.0.9",
|
|
138
|
+
"category": "UI Libraries",
|
|
108
139
|
"upstream": {
|
|
109
140
|
"package": "react-calendar",
|
|
110
141
|
"version": "6.0.1",
|
|
@@ -122,8 +153,8 @@
|
|
|
122
153
|
},
|
|
123
154
|
{
|
|
124
155
|
"name": "@octanejs/cmdk",
|
|
125
|
-
"version": "0.1.
|
|
126
|
-
"category": "UI
|
|
156
|
+
"version": "0.1.37",
|
|
157
|
+
"category": "UI Libraries",
|
|
127
158
|
"upstream": { "package": "cmdk", "version": "1.1.1" },
|
|
128
159
|
"surface": "Complete against the published `cmdk@1.1.1` public surface: `Command` (the root itself) and the `CommandRoot` named export, `Command.Input`, `Command.List`, `Command.Item`, `Command.Group`, `Command.Separator`, `Command.Dialog`, `Command.Empty`, `Command.Loading`, the flat `CommandX` aliases, `useCommandState`, and `defaultFilter` — with the DOM-authoritative store and item/group registration, `useValue` text-content inference, `onInput`-driven search, score filtering plus item and group DOM sorting, keyboard navigation (arrows/Home/End/vim/Enter), controlled `value`/`onValueChange`/`loop`/`shouldFilter`/custom `filter`/`forceMount`, the `--cmdk-list-height` ResizeObserver, and a Radix-backed `Command.Dialog`. `asChild` is the one unsupported prop (see divergences).",
|
|
129
160
|
"divergences": [
|
|
@@ -153,8 +184,8 @@
|
|
|
153
184
|
},
|
|
154
185
|
{
|
|
155
186
|
"name": "@octanejs/colorful",
|
|
156
|
-
"version": "0.0.
|
|
157
|
-
"category": "UI
|
|
187
|
+
"version": "0.0.18",
|
|
188
|
+
"category": "UI Libraries",
|
|
158
189
|
"upstream": { "package": "react-colorful", "version": "5.8.0" },
|
|
159
190
|
"surface": "Complete against the published react-colorful 5.8.0 root runtime and type surface: all 14 picker variants, HexColorInput, setNonce, six public color types, controlled updates, mouse/touch/keyboard input, commit callbacks, ARIA state, and automatic closest-root styling.",
|
|
160
191
|
"divergences": [
|
|
@@ -165,8 +196,8 @@
|
|
|
165
196
|
},
|
|
166
197
|
{
|
|
167
198
|
"name": "@octanejs/content-loader",
|
|
168
|
-
"version": "0.0.
|
|
169
|
-
"category": "UI
|
|
199
|
+
"version": "0.0.8",
|
|
200
|
+
"category": "UI Libraries",
|
|
170
201
|
"upstream": {
|
|
171
202
|
"package": "react-content-loader",
|
|
172
203
|
"version": "7.1.2",
|
|
@@ -190,8 +221,8 @@
|
|
|
190
221
|
},
|
|
191
222
|
{
|
|
192
223
|
"name": "@octanejs/day-picker",
|
|
193
|
-
"version": "0.0.
|
|
194
|
-
"category": "UI
|
|
224
|
+
"version": "0.0.19",
|
|
225
|
+
"category": "UI Libraries",
|
|
195
226
|
"upstream": {
|
|
196
227
|
"package": "react-day-picker",
|
|
197
228
|
"version": "10.0.1",
|
|
@@ -206,8 +237,8 @@
|
|
|
206
237
|
},
|
|
207
238
|
{
|
|
208
239
|
"name": "@octanejs/devtools",
|
|
209
|
-
"version": "0.0.
|
|
210
|
-
"category": "
|
|
240
|
+
"version": "0.0.40",
|
|
241
|
+
"category": "Developer Tools",
|
|
211
242
|
"upstream": { "package": "octane", "version": "workspace" },
|
|
212
243
|
"surface": "Octane-native DevTools plugin (not an upstream port): renders live runtime diagnostics into a TanStack Devtools host via @tanstack/devtools-event-client. P1 ships the Components tree + state inspector.",
|
|
213
244
|
"divergences": [],
|
|
@@ -216,8 +247,8 @@
|
|
|
216
247
|
},
|
|
217
248
|
{
|
|
218
249
|
"name": "@octanejs/dexie",
|
|
219
|
-
"version": "0.1.
|
|
220
|
-
"category": "
|
|
250
|
+
"version": "0.1.46",
|
|
251
|
+
"category": "Data",
|
|
221
252
|
"upstream": { "package": "dexie-react-hooks", "version": "4.4.0" },
|
|
222
253
|
"surface": "Port of the public dexie-react-hooks surface: useObservable, useLiveQuery, useSuspendingObservable, useSuspendingLiveQuery, usePermissions, and useDocument, with Dexie's framework-neutral API re-exported from the package root.",
|
|
223
254
|
"divergences": [
|
|
@@ -230,8 +261,8 @@
|
|
|
230
261
|
},
|
|
231
262
|
{
|
|
232
263
|
"name": "@octanejs/dnd-kit",
|
|
233
|
-
"version": "0.1.
|
|
234
|
-
"category": "UI
|
|
264
|
+
"version": "0.1.47",
|
|
265
|
+
"category": "UI Utilities",
|
|
235
266
|
"upstream": { "package": "@dnd-kit/react", "version": "0.5.0" },
|
|
236
267
|
"surface": "Complete modern dnd-kit React-adapter surface: DragDropProvider, DragOverlay, useDraggable/useDroppable, manager/monitor/operation hooks, PointerSensor/KeyboardSensor re-exports, the public signal-hook utilities, useSortable, and all four upstream entry points.",
|
|
237
268
|
"divergences": [
|
|
@@ -243,8 +274,8 @@
|
|
|
243
274
|
},
|
|
244
275
|
{
|
|
245
276
|
"name": "@octanejs/draggable",
|
|
246
|
-
"version": "0.0.
|
|
247
|
-
"category": "UI
|
|
277
|
+
"version": "0.0.18",
|
|
278
|
+
"category": "UI Utilities",
|
|
248
279
|
"upstream": { "package": "react-draggable", "version": "4.7.1" },
|
|
249
280
|
"surface": "Complete against the published react-draggable 4.7.1 root runtime and type surface: default Draggable, named DraggableCore, controlled and uncontrolled positioning, bounds, grid, axis, offsets, mouse and touch gestures, and all eight public types.",
|
|
250
281
|
"divergences": [
|
|
@@ -256,8 +287,8 @@
|
|
|
256
287
|
},
|
|
257
288
|
{
|
|
258
289
|
"name": "@octanejs/drei",
|
|
259
|
-
"version": "0.0.
|
|
260
|
-
"category": "
|
|
290
|
+
"version": "0.0.20",
|
|
291
|
+
"category": "3D",
|
|
261
292
|
"upstream": { "package": "@react-three/drei", "version": "10.7.7" },
|
|
262
293
|
"surface": "Complete port of the pinned @react-three/drei 10.7.7 public web API (commit b8b99fd4ca1dfb8d821335671320512daa6efea4): 379 source exports and 217 runtime exports are accounted for by the executable crosswalk, with 299 parity assertions across 105 test files.",
|
|
263
294
|
"divergences": [
|
|
@@ -268,8 +299,8 @@
|
|
|
268
299
|
},
|
|
269
300
|
{
|
|
270
301
|
"name": "@octanejs/dropzone",
|
|
271
|
-
"version": "0.0.
|
|
272
|
-
"category": "Forms
|
|
302
|
+
"version": "0.0.18",
|
|
303
|
+
"category": "Forms",
|
|
273
304
|
"upstream": { "package": "react-dropzone", "version": "20.0.0" },
|
|
274
305
|
"surface": "Exact mapped port of the react-dropzone 20.0.0 root runtime and type namespace at canonical commit 01fc05c5996bf615caf812627f7491375e647c7d. The binding preserves the default Dropzone component, useDropzone, ErrorCode, all public types, root package conditions, and ./package.json export. Runtime coverage executes 218 pristine canonical React cases plus 109 adapted, differential, SSR, hydration, browser, and evidence cases.",
|
|
275
306
|
"divergences": [
|
|
@@ -281,8 +312,8 @@
|
|
|
281
312
|
},
|
|
282
313
|
{
|
|
283
314
|
"name": "@octanejs/electron",
|
|
284
|
-
"version": "0.0.
|
|
285
|
-
"category": "Desktop",
|
|
315
|
+
"version": "0.0.30",
|
|
316
|
+
"category": "Desktop Apps",
|
|
286
317
|
"upstream": { "package": "electron", "version": "43.2.0" },
|
|
287
318
|
"surface": "Process-split Electron bindings: ./main registers ipcMain handlers, ./main/native re-exports main-only Electron APIs (Menu, Tray, session, protocol, BrowserWindow, …), ./preload exposes Electron IPC and desktop helpers via contextBridge, and the renderer entry provides Octane hooks (useInvoke, useInvokeState, useIpcEvent, useNativeTheme, useWindowState) plus promise helpers for app/window/dialog/shell/clipboard/screen. Menu/Tray/session/protocol stay intentional main-only under contextIsolation.",
|
|
288
319
|
"divergences": [
|
|
@@ -297,10 +328,40 @@
|
|
|
297
328
|
"ssr": "Server rendering performs no IPC. useInvokeState renders pending and issues the command on the client after hydration; useIpcEvent and reactive desktop hooks subscribe only on the client. useInvoke without a host rejects with ElectronUnavailableError.",
|
|
298
329
|
"verified": "2026-08-02"
|
|
299
330
|
},
|
|
331
|
+
{
|
|
332
|
+
"name": "@octanejs/email",
|
|
333
|
+
"version": "0.0.4",
|
|
334
|
+
"category": "Content",
|
|
335
|
+
"upstream": { "package": "react-email", "version": "6.9.2" },
|
|
336
|
+
"surface": "Email component surface: Body, Button, CodeBlock, CodeInline, Column, Container, Font, Head, Heading, Hr, Html, Img, Link, Markdown, Preview, Row, Section, Tailwind, Text, Prism themes, the pixel-based Tailwind preset, and an Octane-native static render helper.",
|
|
337
|
+
"divergences": [
|
|
338
|
+
"render accepts an Octane component plus props rather than a pre-created React node, matching octane/server's entry-point API.",
|
|
339
|
+
"Preview accepts its inspectable preview copy through the text prop; natural .tsrx children are opaque render blocks.",
|
|
340
|
+
"Markdown accepts its source through a string children prop; JSX children compile to children blocks and are rejected rather than invoked as render props.",
|
|
341
|
+
"Refs are ordinary Octane ref props rather than forwardRef components.",
|
|
342
|
+
"Head uses Octane's metadata-hoisting channel; render reconstructs the consumer-visible document head around hoisted tags.",
|
|
343
|
+
"Tailwind transforms fully rendered static HTML rather than cloning a React element tree, allowing natural .tsrx children and nested compiled components."
|
|
344
|
+
],
|
|
345
|
+
"ssr": "Supported and tested through renderToStaticMarkup: output has the React Email XHTML Transitional doctype and no hydration markers.",
|
|
346
|
+
"verified": "2026-08-10"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"name": "@octanejs/email-cli",
|
|
350
|
+
"version": "0.0.4",
|
|
351
|
+
"category": "Content",
|
|
352
|
+
"upstream": { "package": "react-email", "version": "6.9.2" },
|
|
353
|
+
"surface": "Octane-native `export` and `dev` commands: recursive .tsrx template discovery, static HTML export, nested output paths, static assets, development template index and previews, Vite live reload, and compile/render error pages.",
|
|
354
|
+
"divergences": [
|
|
355
|
+
"The preview application is a lightweight Octane/Vite server rather than upstream's bundled React/Next application.",
|
|
356
|
+
"The executable is named octane-email to avoid colliding with upstream's email binary."
|
|
357
|
+
],
|
|
358
|
+
"ssr": "Templates compile with the Octane Vite plugin in SSR mode and render through @octanejs/email.",
|
|
359
|
+
"verified": "2026-08-10"
|
|
360
|
+
},
|
|
300
361
|
{
|
|
301
362
|
"name": "@octanejs/embla-carousel",
|
|
302
|
-
"version": "0.0.
|
|
303
|
-
"category": "UI
|
|
363
|
+
"version": "0.0.18",
|
|
364
|
+
"category": "UI Libraries",
|
|
304
365
|
"upstream": {
|
|
305
366
|
"package": "embla-carousel-react",
|
|
306
367
|
"version": "8.6.0",
|
|
@@ -313,13 +374,13 @@
|
|
|
313
374
|
},
|
|
314
375
|
{
|
|
315
376
|
"name": "@octanejs/floating-ui",
|
|
316
|
-
"version": "0.1.
|
|
317
|
-
"category": "UI
|
|
377
|
+
"version": "0.1.53",
|
|
378
|
+
"category": "UI Utilities",
|
|
318
379
|
"upstream": { "package": "@floating-ui/react", "version": "0.27.19" },
|
|
319
|
-
"surface": "Complete @floating-ui/react 0.27.19 export surface: positioning (`useFloating`, ref-aware `arrow`, and the framework-neutral middleware re-exports), floating tree and list primitives, every interaction hook, portals/overlays/focus management/arrows/composites, transitions, both delay-group APIs, and the deprecated `inner`/`useInnerOffset` pair. Runtime parity is executable and bounded:
|
|
380
|
+
"surface": "Complete @floating-ui/react 0.27.19 export surface: positioning (`useFloating`, ref-aware `arrow`, and the framework-neutral middleware re-exports), floating tree and list primitives, every interaction hook, portals/overlays/focus management/arrows/composites, transitions, both delay-group APIs, and the deprecated `inner`/`useInnerOffset` pair. Runtime parity is executable and bounded: 276 adapted assertions pass compatibly, 25 remain executable expected-failure negative controls, and 6 upstream-declared skips are non-evidence.",
|
|
320
381
|
"divergences": [
|
|
321
382
|
"`ref-as-prop`: React forwardRef component APIs become Octane ref-as-prop APIs.",
|
|
322
|
-
"Twenty-
|
|
383
|
+
"Twenty-five upstream assertions remain executable expected-failure controls across ref/focus/effect scheduling, dynamic-child registration, iframe realms, render counts, React-only context fixtures, and list registration; audit/expected-failures.json names every case.",
|
|
323
384
|
"The combined Octane entry point cannot preserve every @floating-ui/react-dom-only type narrowing; the one-for-one adapted type program records those diagnostics explicitly."
|
|
324
385
|
],
|
|
325
386
|
"ssr": "No dedicated SSR/hydration lane; the supported claims are client positioning and interactions.",
|
|
@@ -327,8 +388,8 @@
|
|
|
327
388
|
},
|
|
328
389
|
{
|
|
329
390
|
"name": "@octanejs/formisch",
|
|
330
|
-
"version": "0.0.
|
|
331
|
-
"category": "Forms
|
|
391
|
+
"version": "0.0.7",
|
|
392
|
+
"category": "Forms",
|
|
332
393
|
"upstream": {
|
|
333
394
|
"package": "@formisch/react",
|
|
334
395
|
"version": "1.0.0-rc.0",
|
|
@@ -345,8 +406,8 @@
|
|
|
345
406
|
},
|
|
346
407
|
{
|
|
347
408
|
"name": "@octanejs/gsap",
|
|
348
|
-
"version": "0.0.
|
|
349
|
-
"category": "
|
|
409
|
+
"version": "0.0.21",
|
|
410
|
+
"category": "Animation",
|
|
350
411
|
"upstream": {
|
|
351
412
|
"package": "@gsap/react",
|
|
352
413
|
"version": "2.1.2",
|
|
@@ -364,8 +425,8 @@
|
|
|
364
425
|
},
|
|
365
426
|
{
|
|
366
427
|
"name": "@octanejs/hook-form",
|
|
367
|
-
"version": "0.1.
|
|
368
|
-
"category": "Forms
|
|
428
|
+
"version": "0.1.49",
|
|
429
|
+
"category": "Forms",
|
|
369
430
|
"upstream": { "package": "react-hook-form", "version": "7.81.0" },
|
|
370
431
|
"surface": "Complete port of react-hook-form 7.81.0 (tag commit 46b217e034dd92f7aa3cb3a478815556b416b299). The automated parity check runs all 1,193 original tests against the pinned React package as a pristine baseline; the Octane port separately runs byte-locked, unfiltered DOM and server suites with exact collected/executed inventories containing 1,187 entries representing 1,178 unique file/full-name identities. The nine duplicate entries are repeated titles within the DOM inventory; the server inventory is disjoint. Coverage includes `useForm`, `useController`, `useFieldArray`, `useFormState`, `useWatch`, `useFormContext`/`FormProvider`, schema resolvers, and all validation modes.",
|
|
371
432
|
"divergences": [
|
|
@@ -377,8 +438,8 @@
|
|
|
377
438
|
},
|
|
378
439
|
{
|
|
379
440
|
"name": "@octanejs/html-react-parser",
|
|
380
|
-
"version": "0.0.
|
|
381
|
-
"category": "
|
|
441
|
+
"version": "0.0.8",
|
|
442
|
+
"category": "Content",
|
|
382
443
|
"upstream": {
|
|
383
444
|
"package": "html-react-parser",
|
|
384
445
|
"version": "6.1.7",
|
|
@@ -398,8 +459,8 @@
|
|
|
398
459
|
},
|
|
399
460
|
{
|
|
400
461
|
"name": "@octanejs/i18next",
|
|
401
|
-
"version": "0.1.
|
|
402
|
-
"category": "
|
|
462
|
+
"version": "0.1.47",
|
|
463
|
+
"category": "Content",
|
|
403
464
|
"upstream": { "package": "react-i18next", "version": "17.0.9" },
|
|
404
465
|
"surface": "Complete runtime port of react-i18next 17.0.9: useTranslation, I18nextProvider/context, Trans/TransWithoutContext, IcuTrans/IcuTransWithoutContext, Translation, the withTranslation/withSSR HOCs, useSSR, namespace reporting, initialization/default helpers, and the root ICU helper exports over the unchanged i18next core.",
|
|
405
466
|
"divergences": [
|
|
@@ -413,8 +474,8 @@
|
|
|
413
474
|
},
|
|
414
475
|
{
|
|
415
476
|
"name": "@octanejs/image-crop",
|
|
416
|
-
"version": "0.0.
|
|
417
|
-
"category": "UI
|
|
477
|
+
"version": "0.0.9",
|
|
478
|
+
"category": "UI Utilities",
|
|
418
479
|
"upstream": {
|
|
419
480
|
"package": "react-image-crop",
|
|
420
481
|
"version": "11.1.2",
|
|
@@ -430,8 +491,8 @@
|
|
|
430
491
|
},
|
|
431
492
|
{
|
|
432
493
|
"name": "@octanejs/inertia",
|
|
433
|
-
"version": "0.0.
|
|
434
|
-
"category": "
|
|
494
|
+
"version": "0.0.21",
|
|
495
|
+
"category": "Routing",
|
|
435
496
|
"upstream": { "package": "@inertiajs/react", "version": "3.6.1" },
|
|
436
497
|
"surface": "Octane Inertia 3.6.1 adapter foundation: framework-neutral router, HTTP client, progress, and server exports reuse @inertiajs/core unchanged; page, remember, poll, prefetch, form-state, router-submit, direct-HTTP, precognition, and layout-property hooks are ported to Octane.",
|
|
437
498
|
"divergences": [
|
|
@@ -442,8 +503,8 @@
|
|
|
442
503
|
},
|
|
443
504
|
{
|
|
444
505
|
"name": "@octanejs/ink",
|
|
445
|
-
"version": "0.0.
|
|
446
|
-
"category": "Terminal
|
|
506
|
+
"version": "0.0.15",
|
|
507
|
+
"category": "Terminal Apps",
|
|
447
508
|
"upstream": { "package": "ink", "version": "7.1.1" },
|
|
448
509
|
"surface": "Complete against Ink 7.1.1's published exports: terminal render roots, Yoga-backed Box and Text primitives, Static/Transform/Newline/Spacer, application and stream hooks, input/paste/focus/cursor/animation/window-size/metrics hooks, measurement helpers, DOM element types, and Kitty keyboard protocol helpers.",
|
|
449
510
|
"divergences": [
|
|
@@ -456,8 +517,8 @@
|
|
|
456
517
|
},
|
|
457
518
|
{
|
|
458
519
|
"name": "@octanejs/input-otp",
|
|
459
|
-
"version": "0.0.
|
|
460
|
-
"category": "Forms
|
|
520
|
+
"version": "0.0.19",
|
|
521
|
+
"category": "Forms",
|
|
461
522
|
"upstream": { "package": "input-otp", "version": "1.5.0" },
|
|
462
523
|
"surface": "Complete against input-otp@1.5.0: OTPInput, OTPInputContext, the three exported regexp patterns, public props and slot types including nonce, controlled and uncontrolled values, one-input accessibility and mobile-autofill markup, default spellcheck off, translation opt-out, render/context projection, keyboard selection and deletion, paste transformation, completion callbacks, overflow-aware password-manager displacement, SSR, and hydration.",
|
|
463
524
|
"divergences": [
|
|
@@ -469,8 +530,8 @@
|
|
|
469
530
|
},
|
|
470
531
|
{
|
|
471
532
|
"name": "@octanejs/intersection-observer",
|
|
472
|
-
"version": "0.0.
|
|
473
|
-
"category": "UI
|
|
533
|
+
"version": "0.0.18",
|
|
534
|
+
"category": "UI Utilities",
|
|
474
535
|
"upstream": {
|
|
475
536
|
"package": "react-intersection-observer",
|
|
476
537
|
"version": "10.1.0",
|
|
@@ -491,18 +552,22 @@
|
|
|
491
552
|
},
|
|
492
553
|
{
|
|
493
554
|
"name": "@octanejs/jotai",
|
|
494
|
-
"version": "0.1.
|
|
495
|
-
"category": "
|
|
496
|
-
"upstream": { "package": "jotai", "version": "
|
|
497
|
-
"surface": "
|
|
498
|
-
"divergences": [
|
|
499
|
-
|
|
500
|
-
|
|
555
|
+
"version": "0.1.50",
|
|
556
|
+
"category": "State Management",
|
|
557
|
+
"upstream": { "package": "jotai", "version": "3.0.0" },
|
|
558
|
+
"surface": "Jotai 3 runtime surface: imported vanilla atoms, stores, utilities and internals; ported Provider, useStore, useAtom, useSetAtom, useAtomValue, useAtomValueRaw, useAtomValueRawSync and four hook utilities.",
|
|
559
|
+
"divergences": [
|
|
560
|
+
"Octane hook call-site slots are forwarded through composed hooks.",
|
|
561
|
+
"React class error-boundary test fixtures use Octane functional ErrorBoundary components.",
|
|
562
|
+
"Commit-count test hooks run in component setup and use explicit every-render effects to preserve the upstream observation boundary."
|
|
563
|
+
],
|
|
564
|
+
"ssr": "Server rendering and hydration are tested for both raw hooks with request-local stores, no server subscriptions, adopted DOM, client updates and teardown.",
|
|
565
|
+
"verified": "2026-09-12"
|
|
501
566
|
},
|
|
502
567
|
{
|
|
503
568
|
"name": "@octanejs/lexical",
|
|
504
|
-
"version": "0.1.
|
|
505
|
-
"category": "
|
|
569
|
+
"version": "0.1.53",
|
|
570
|
+
"category": "Content",
|
|
506
571
|
"upstream": { "package": "@lexical/react", "version": "0.46.0" },
|
|
507
572
|
"surface": "The 35 legacy `@lexical/react` modules represented by this port cover composer + contexts, the editable surface, plain/rich text, the plugin/menu set, and the `useLexical*` hooks. The 0.46.0 extension subsystem, collaboration plugin, and tree view remain excluded as itemized in UPSTREAM.md.",
|
|
508
573
|
"divergences": [
|
|
@@ -514,8 +579,8 @@
|
|
|
514
579
|
},
|
|
515
580
|
{
|
|
516
581
|
"name": "@octanejs/livestore",
|
|
517
|
-
"version": "0.0.
|
|
518
|
-
"category": "
|
|
582
|
+
"version": "0.0.22",
|
|
583
|
+
"category": "Data",
|
|
519
584
|
"upstream": { "package": "@livestore/react", "version": "0.4.0" },
|
|
520
585
|
"surface": "Ports the complete stable renderer surface (registry provider/access, Suspense store loading and augmentation, reactive queries, client documents, and sync status) plus the exported experimental LiveList over LiveStore's unchanged 0.4.0 framework-neutral packages.",
|
|
521
586
|
"divergences": [
|
|
@@ -528,8 +593,8 @@
|
|
|
528
593
|
},
|
|
529
594
|
{
|
|
530
595
|
"name": "@octanejs/lucide",
|
|
531
|
-
"version": "0.1.
|
|
532
|
-
"category": "
|
|
596
|
+
"version": "0.1.47",
|
|
597
|
+
"category": "Icons",
|
|
533
598
|
"upstream": { "package": "lucide-react", "version": "1.24.0" },
|
|
534
599
|
"surface": "Complete against the published `lucide-react@1.24.0` runtime surface: every canonical icon and alias, the `icons` namespace, `Icon`, `createLucideIcon`, `LucideProvider`, `useLucideContext`, `DynamicIcon`, `iconNames`, `dynamicIconImports`, and per-icon subpath imports.",
|
|
535
600
|
"divergences": [
|
|
@@ -541,8 +606,8 @@
|
|
|
541
606
|
},
|
|
542
607
|
{
|
|
543
608
|
"name": "@octanejs/mantine-hooks",
|
|
544
|
-
"version": "0.1.
|
|
545
|
-
"category": "UI
|
|
609
|
+
"version": "0.1.33",
|
|
610
|
+
"category": "UI Utilities",
|
|
546
611
|
"upstream": { "package": "@mantine/hooks", "version": "9.5.0" },
|
|
547
612
|
"surface": "Complete @mantine/hooks 9.5.0 runtime export surface: state, timing, storage, viewport, input, focus, pointer, observer, hotkey, scrolling, collapse, drag, splitter, mask, and utility hooks.",
|
|
548
613
|
"divergences": [
|
|
@@ -555,8 +620,8 @@
|
|
|
555
620
|
},
|
|
556
621
|
{
|
|
557
622
|
"name": "@octanejs/markdown",
|
|
558
|
-
"version": "0.0.
|
|
559
|
-
"category": "
|
|
623
|
+
"version": "0.0.18",
|
|
624
|
+
"category": "Content",
|
|
560
625
|
"upstream": { "package": "react-markdown", "version": "10.1.0" },
|
|
561
626
|
"surface": "Complete react-markdown 10.1.0 root runtime and public type surface: Markdown, MarkdownAsync, MarkdownHooks, defaultUrlTransform, and all six exported type families.",
|
|
562
627
|
"divergences": [
|
|
@@ -569,8 +634,8 @@
|
|
|
569
634
|
},
|
|
570
635
|
{
|
|
571
636
|
"name": "@octanejs/mdx",
|
|
572
|
-
"version": "0.1.
|
|
573
|
-
"category": "
|
|
637
|
+
"version": "0.1.50",
|
|
638
|
+
"category": "Content",
|
|
574
639
|
"upstream": { "package": "@mdx-js/mdx", "version": "3.1.1" },
|
|
575
640
|
"surface": "The full compile-don't-interpret pipeline: `.mdx`/`.md` → `@mdx-js/mdx` (reused verbatim) → octane compiler, via the `octaneMdx()` Vite plugin plus the `./compile` and `./server` entries; compiler warnings propagate through direct and Vite compile surfaces with authored `.mdx` ranges; `@mdx-js/react`'s provider layer (`MDXProvider`/`useMDXComponents`) is ported onto octane context. The octane website runs on it.",
|
|
576
641
|
"divergences": [
|
|
@@ -581,8 +646,8 @@
|
|
|
581
646
|
},
|
|
582
647
|
{
|
|
583
648
|
"name": "@octanejs/mobx",
|
|
584
|
-
"version": "0.1.
|
|
585
|
-
"category": "
|
|
649
|
+
"version": "0.1.33",
|
|
650
|
+
"category": "State Management",
|
|
586
651
|
"upstream": { "package": "mobx-react-lite", "version": "4.1.1", "core": "mobx@6.16.1" },
|
|
587
652
|
"surface": "The framework-independent MobX core is re-exported verbatim. The function-component binding includes observer, Observer, useObserver, useLocalObservable, enableStaticRendering, isUsingStaticRendering, and the deprecated useStaticRendering alias.",
|
|
588
653
|
"divergences": [
|
|
@@ -595,8 +660,8 @@
|
|
|
595
660
|
},
|
|
596
661
|
{
|
|
597
662
|
"name": "@octanejs/monaco-editor",
|
|
598
|
-
"version": "0.0.
|
|
599
|
-
"category": "
|
|
663
|
+
"version": "0.0.20",
|
|
664
|
+
"category": "Content",
|
|
600
665
|
"upstream": {
|
|
601
666
|
"package": "@monaco-editor/react",
|
|
602
667
|
"version": "4.7.0",
|
|
@@ -615,8 +680,8 @@
|
|
|
615
680
|
},
|
|
616
681
|
{
|
|
617
682
|
"name": "@octanejs/motion",
|
|
618
|
-
"version": "0.1.
|
|
619
|
-
"category": "
|
|
683
|
+
"version": "0.1.52",
|
|
684
|
+
"category": "Animation",
|
|
620
685
|
"upstream": { "package": "motion", "version": "12.42.2" },
|
|
621
686
|
"surface": "Core surface: `motion.<tag>` (animate, gestures, variants with propagation/stagger, drag, layout basics), `AnimatePresence`, `MotionConfig`, live `useReducedMotion`, reduced-motion enforcement, `LayoutGroup` layoutId namespaces, `LazyMotion` with `domAnimation`/`domMax`, the `m` proxy and complete `./react-m` named host entry, plus the motion-value hooks (`useMotionValue`, `useScroll`, `useTransform`, `useSpring`, `useAnimate`, `useMotionValueEvent`); motion-dom's animation engine and gesture primitives are reused verbatim.",
|
|
622
687
|
"divergences": [
|
|
@@ -629,8 +694,8 @@
|
|
|
629
694
|
},
|
|
630
695
|
{
|
|
631
696
|
"name": "@octanejs/nuqs",
|
|
632
|
-
"version": "0.1.
|
|
633
|
-
"category": "
|
|
697
|
+
"version": "0.1.41",
|
|
698
|
+
"category": "Routing",
|
|
634
699
|
"upstream": { "package": "nuqs", "version": "2.9.1" },
|
|
635
700
|
"surface": "Full vendored port: the framework-agnostic core (`parsers`/`parseAs*`/`createParser`, `createSerializer`, `createLoader`, `createStandardSchemaV1`, the throttle/debounce update queues, sync emitter and URL encoding) is vendored verbatim from nuqs 2.9.1; the React layer (`useQueryState`, `useQueryStates`, the `useSyncExternalStores` helper and the adapter context) is ported onto octane's hooks — same `useState`/`useEffect`/`useSyncExternalStore` implementation shape as upstream, so re-render and URL-reconciliation behaviour matches nuqs on React. Adapters ported: `@octanejs/nuqs/adapters/react` (`NuqsAdapter`, `enableHistorySync`), `/adapters/custom` (`unstable_createAdapterProvider`), `/adapters/testing` (`NuqsTestingAdapter`, `withNuqsTestingAdapter`). Server surface (`@octanejs/nuqs/server`) exposes `createLoader`/`createSerializer`/parsers/`createStandardSchemaV1`.",
|
|
636
701
|
"divergences": [
|
|
@@ -642,10 +707,25 @@
|
|
|
642
707
|
"ssr": "The react-free server entry has a dedicated Node lane for parsing and serialising search params. Client hydration remains outside the supported evidence claim.",
|
|
643
708
|
"verified": "2026-08-02"
|
|
644
709
|
},
|
|
710
|
+
{
|
|
711
|
+
"name": "@octanejs/octane-is",
|
|
712
|
+
"version": "0.0.1",
|
|
713
|
+
"category": "Developer Tools",
|
|
714
|
+
"upstream": { "package": "react-is", "version": "19.2.7" },
|
|
715
|
+
"surface": "All 26 published react-is 19.2.7 exports over Octane element descriptors and callable component metadata.",
|
|
716
|
+
"divergences": [
|
|
717
|
+
"Kind labels use Octane symbols and reject React elements.",
|
|
718
|
+
"Context.Consumer, forwardRef, Profiler and SuspenseList have no Octane kind; their predicates return false.",
|
|
719
|
+
"StrictMode identifies Octane's pass-through wrapper without double invocation.",
|
|
720
|
+
"React Server Component references are not valid Octane types."
|
|
721
|
+
],
|
|
722
|
+
"ssr": "Predicates are pure; they never render a component or start a lazy loader.",
|
|
723
|
+
"verified": "2026-09-03"
|
|
724
|
+
},
|
|
645
725
|
{
|
|
646
726
|
"name": "@octanejs/opentui",
|
|
647
|
-
"version": "0.0.
|
|
648
|
-
"category": "Terminal",
|
|
727
|
+
"version": "0.0.7",
|
|
728
|
+
"category": "Terminal Apps",
|
|
649
729
|
"upstream": { "package": "@opentui/react", "version": "0.5.8" },
|
|
650
730
|
"surface": "Technical-preview OpenTUI 0.5.8 renderer: renderer-local TSRX intrinsics for the complete built-in catalogue and text modifiers, custom `extend()` renderables, component-plus-props roots, OpenTUI prop/style/event application, refs and retained visibility, same-renderer `RootRenderable` portals, terminal error fallback, `act`/`flushSync`, all public hooks, `TimeToFirstDraw`, the core slot/plugin registry adapted to universal renderables, and an FFI-backed test utility. Native behavioral coverage exercises terminal frames, state and prop updates, host identity, keyboard and resize hooks, multi-argument select callbacks, subscription cleanup, portals, slots, errors, and teardown under Bun.",
|
|
651
731
|
"divergences": [
|
|
@@ -661,8 +741,8 @@
|
|
|
661
741
|
},
|
|
662
742
|
{
|
|
663
743
|
"name": "@octanejs/pdf",
|
|
664
|
-
"version": "0.0.
|
|
665
|
-
"category": "
|
|
744
|
+
"version": "0.0.18",
|
|
745
|
+
"category": "Content",
|
|
666
746
|
"upstream": { "package": "react-pdf", "version": "10.4.1" },
|
|
667
747
|
"surface": "Complete against the documented react-pdf 10.4.1 root contract: Document, Page, Thumbnail, Outline, all three context hooks, PasswordResponses, pdfjs, all ten root types, both documented layer styles, and the unchanged PDF.js worker import.",
|
|
668
748
|
"divergences": [
|
|
@@ -674,8 +754,8 @@
|
|
|
674
754
|
},
|
|
675
755
|
{
|
|
676
756
|
"name": "@octanejs/phosphor-icons",
|
|
677
|
-
"version": "0.0.
|
|
678
|
-
"category": "
|
|
757
|
+
"version": "0.0.32",
|
|
758
|
+
"category": "Icons",
|
|
679
759
|
"upstream": { "package": "@phosphor-icons/react", "version": "2.1.10" },
|
|
680
760
|
"surface": "All 1,512 canonical icons from @phosphor-icons/core@2.1.1, including the upstream deprecated Icon-suffixed aliases, six weights, IconContext, IconBase, root exports, and per-icon imports.",
|
|
681
761
|
"divergences": [
|
|
@@ -688,8 +768,8 @@
|
|
|
688
768
|
},
|
|
689
769
|
{
|
|
690
770
|
"name": "@octanejs/popper",
|
|
691
|
-
"version": "0.0.
|
|
692
|
-
"category": "UI
|
|
771
|
+
"version": "0.0.18",
|
|
772
|
+
"category": "UI Utilities",
|
|
693
773
|
"upstream": { "package": "react-popper", "version": "2.3.0" },
|
|
694
774
|
"surface": "Complete against the published react-popper 2.3.0 root runtime and type surface: Manager, Reference, Popper, usePopper, render-function refs and styles, explicit and virtual references, arrows, hide data, lifecycle actions, Popper modifiers, and all public types.",
|
|
695
775
|
"divergences": [
|
|
@@ -699,10 +779,28 @@
|
|
|
699
779
|
"ssr": "Manager, Reference, and Popper render deterministic initial markup without browser globals, adopt server nodes during hydration, then create and clean up the Popper instance after client refs attach.",
|
|
700
780
|
"verified": "2026-08-03"
|
|
701
781
|
},
|
|
782
|
+
{
|
|
783
|
+
"name": "@octanejs/portabletext",
|
|
784
|
+
"version": "0.1.2",
|
|
785
|
+
"category": "Sanity Content",
|
|
786
|
+
"upstream": {
|
|
787
|
+
"package": "@portabletext/react",
|
|
788
|
+
"version": "8.0.1",
|
|
789
|
+
"commit": "52770c934266773c0b52ae3a8e3bc2a0c8137985"
|
|
790
|
+
},
|
|
791
|
+
"surface": "Complete runtime surface: PortableText, defaultComponents, mergeComponents, toPlainText, PortableTextBlock and ListNestMode, plus renderer component and TypeGen helper types.",
|
|
792
|
+
"divergences": [
|
|
793
|
+
"Renderer callbacks return OctaneNode rather than ReactNode.",
|
|
794
|
+
"Custom component refs and events use Octane's normal ref prop and native DOM events.",
|
|
795
|
+
"PortableTextReactComponents and ReactPortableTextList are compatibility aliases; Octane-named equivalents are preferred."
|
|
796
|
+
],
|
|
797
|
+
"ssr": "Supported and differential-tested against @portabletext/react@8.0.1 static markup.",
|
|
798
|
+
"verified": "2026-08-24"
|
|
799
|
+
},
|
|
702
800
|
{
|
|
703
801
|
"name": "@octanejs/radix",
|
|
704
|
-
"version": "0.1.
|
|
705
|
-
"category": "UI
|
|
802
|
+
"version": "0.1.53",
|
|
803
|
+
"category": "UI Libraries",
|
|
706
804
|
"upstream": { "package": "radix-ui", "version": "1.6.4" },
|
|
707
805
|
"surface": "Surface-present against the unified `radix-ui@1.6.4` component exports. Sixteen repo-authored differential cases compare representative primitives and interactions against the real package; the complete 38-file canonical upstream suite is preserved but not adapted, so the binding remains recorded-unverified.",
|
|
708
806
|
"divergences": [
|
|
@@ -714,7 +812,7 @@
|
|
|
714
812
|
},
|
|
715
813
|
{
|
|
716
814
|
"name": "@octanejs/rainbowkit",
|
|
717
|
-
"version": "0.0.
|
|
815
|
+
"version": "0.0.33",
|
|
718
816
|
"category": "Web3",
|
|
719
817
|
"upstream": { "package": "@rainbow-me/rainbowkit", "version": "2.2.11" },
|
|
720
818
|
"surface": "Octane-native RainbowKitProvider, ConnectButton and ConnectButton.Custom, WalletButton, connect/account/chain modal hooks, connector selection, account/chain actions, native accessible dialogs, and light/dark/midnight themes.",
|
|
@@ -730,8 +828,8 @@
|
|
|
730
828
|
},
|
|
731
829
|
{
|
|
732
830
|
"name": "@octanejs/react-error-boundary",
|
|
733
|
-
"version": "0.1.
|
|
734
|
-
"category": "UI
|
|
831
|
+
"version": "0.1.33",
|
|
832
|
+
"category": "UI Utilities",
|
|
735
833
|
"upstream": { "package": "react-error-boundary", "version": "6.1.2" },
|
|
736
834
|
"surface": "Complete against the published react-error-boundary 6.1.2 function/type surface adapted to Octane: ErrorBoundary, ErrorBoundaryContext, getErrorMessage, fallback variants, onError/onReset callbacks, resetKeys, useErrorBoundary (including error), withErrorBoundary, OnErrorCallback, and UseErrorBoundaryApi.",
|
|
737
835
|
"divergences": [
|
|
@@ -744,14 +842,13 @@
|
|
|
744
842
|
},
|
|
745
843
|
{
|
|
746
844
|
"name": "@octanejs/react-map-gl",
|
|
747
|
-
"version": "0.0.
|
|
748
|
-
"category": "
|
|
845
|
+
"version": "0.0.24",
|
|
846
|
+
"category": "Visualization",
|
|
749
847
|
"upstream": { "package": "@vis.gl/react-mapbox", "version": "8.1.2 (b1e46fcf)" },
|
|
750
848
|
"surface": "Complete against the pinned @vis.gl/react-mapbox 8.1.2 public surface — the package react-map-gl/mapbox re-exports: Map (and default), Marker, Popup, Source, Layer, AttributionControl, FullscreenControl, GeolocateControl, NavigationControl, ScaleControl, useControl, MapProvider, useMap, and every published type. The framework-neutral half of upstream (the Mapbox engine, proxy transform, map ref, and six utils) is reused byte-for-byte and validated by upstream's own specs run against both source trees.",
|
|
751
849
|
"divergences": [
|
|
752
850
|
"<Source> delivers its generated id to child layers through context rather than cloneElement, so the id reaches any descendant <Layer> rather than only direct children. It still overrides an explicitly set source, as cloneElement did.",
|
|
753
851
|
"Map, Marker, Popup and GeolocateControl take their ref as an ordinary prop; Octane has no forwardRef. `<Map ref={mapRef} />` is unchanged.",
|
|
754
|
-
"Effect cleanups run on the passive drain after root.unmount() rather than inside it, so the map's WebGL context and worker pool are released one drain later.",
|
|
755
852
|
"Marker picks between its own element and Mapbox's default pin from what its children actually rendered, because a compiled children block cannot be inspected the way React.Children.forEach inspects descriptors. Children that render something, render nothing, or first render after mount all match upstream; a child that stays truthy while rendering nothing forever gets the default pin here and an empty, invisible element upstream.",
|
|
756
853
|
"react-map-gl/mapbox-legacy (mapbox-gl v1) and @vis.gl/react-maplibre are out of scope."
|
|
757
854
|
],
|
|
@@ -760,8 +857,8 @@
|
|
|
760
857
|
},
|
|
761
858
|
{
|
|
762
859
|
"name": "@octanejs/recharts",
|
|
763
|
-
"version": "0.1.
|
|
764
|
-
"category": "
|
|
860
|
+
"version": "0.1.51",
|
|
861
|
+
"category": "Visualization",
|
|
765
862
|
"upstream": { "package": "recharts", "version": "3.9.2" },
|
|
766
863
|
"surface": "Broad runtime support across cartesian, polar, hierarchical, tooltip, legend, responsive-container, shape, and chart-state surfaces. `Brush` and `Treemap` remain intentionally unsupported.",
|
|
767
864
|
"divergences": [
|
|
@@ -772,8 +869,8 @@
|
|
|
772
869
|
},
|
|
773
870
|
{
|
|
774
871
|
"name": "@octanejs/redux",
|
|
775
|
-
"version": "0.1.
|
|
776
|
-
"category": "
|
|
872
|
+
"version": "0.1.50",
|
|
873
|
+
"category": "State Management",
|
|
777
874
|
"upstream": { "package": "react-redux", "version": "9.3.0" },
|
|
778
875
|
"surface": "The hooks + `Provider` surface of react-redux 9.3.0 (`useSelector`, `useDispatch`, `useStore`, and the custom-context factory variants) on octane's `useSyncExternalStore`; works with any Redux 5 / Redux Toolkit store. Upstream runtime-export completeness is pinned by test.",
|
|
779
876
|
"divergences": [
|
|
@@ -786,8 +883,8 @@
|
|
|
786
883
|
},
|
|
787
884
|
{
|
|
788
885
|
"name": "@octanejs/redux-toolkit",
|
|
789
|
-
"version": "0.1.
|
|
790
|
-
"category": "
|
|
886
|
+
"version": "0.1.48",
|
|
887
|
+
"category": "State Management",
|
|
791
888
|
"upstream": { "package": "@reduxjs/toolkit", "version": "2.12.0" },
|
|
792
889
|
"surface": "Complete four-entry-point port: the framework-agnostic Toolkit and RTK Query core are re-exported verbatim; `/query/react` provides generated query, lazy-query, mutation, infinite-query, prefetch hooks and `ApiProvider`; `/react` provides the dynamic-middleware dispatch-hook integration.",
|
|
793
890
|
"divergences": [
|
|
@@ -799,8 +896,8 @@
|
|
|
799
896
|
},
|
|
800
897
|
{
|
|
801
898
|
"name": "@octanejs/remix-router",
|
|
802
|
-
"version": "0.1.
|
|
803
|
-
"category": "
|
|
899
|
+
"version": "0.1.48",
|
|
900
|
+
"category": "Routing",
|
|
804
901
|
"upstream": { "package": "react-router", "version": "8.2.0" },
|
|
805
902
|
"surface": "All planned port phases are shipped and the pinned runtime export namespace is complete: the framework-agnostic router core, data/declarative/DOM/mutation/guard layers, static SSR, and cookie/session runtime are implemented on Octane. Framework-mode and RSC names remain throwing scope stubs. Selected vendored-core suites, local conformance, and nine exact shared-fixture scenarios provide bounded evidence rather than exhaustive React parity.",
|
|
806
903
|
"divergences": [
|
|
@@ -815,8 +912,8 @@
|
|
|
815
912
|
},
|
|
816
913
|
{
|
|
817
914
|
"name": "@octanejs/resizable-panels",
|
|
818
|
-
"version": "0.0.
|
|
819
|
-
"category": "UI
|
|
915
|
+
"version": "0.0.11",
|
|
916
|
+
"category": "UI Utilities",
|
|
820
917
|
"upstream": { "package": "react-resizable-panels", "version": "4.12.2" },
|
|
821
918
|
"surface": "Group, Panel, Separator, persistence hooks, refs, imperative APIs, layout constraints, pointer and keyboard interaction, ARIA, cursor handling, and ResizeObserver behavior are implemented against react-resizable-panels 4.12.2.",
|
|
822
919
|
"divergences": [
|
|
@@ -827,8 +924,8 @@
|
|
|
827
924
|
},
|
|
828
925
|
{
|
|
829
926
|
"name": "@octanejs/rxjs",
|
|
830
|
-
"version": "0.1.
|
|
831
|
-
"category": "
|
|
927
|
+
"version": "0.1.32",
|
|
928
|
+
"category": "State Management",
|
|
832
929
|
"upstream": {
|
|
833
930
|
"package": "@react-rxjs/core + @react-rxjs/utils",
|
|
834
931
|
"version": "0.10.8 / 0.9.7"
|
|
@@ -841,15 +938,85 @@
|
|
|
841
938
|
"ssr": "useSyncExternalStore supplies the state snapshot during server rendering; browser-only ReactDOM batching helpers are intentionally absent.",
|
|
842
939
|
"verified": "2026-08-02"
|
|
843
940
|
},
|
|
941
|
+
{
|
|
942
|
+
"name": "@octanejs/sanity-icons",
|
|
943
|
+
"version": "0.1.2",
|
|
944
|
+
"category": "Sanity Content",
|
|
945
|
+
"upstream": {
|
|
946
|
+
"package": "@sanity/icons",
|
|
947
|
+
"version": "5.2.1",
|
|
948
|
+
"commit": "e6c37d2d4f7f121254c077b3ae83e199ec0aec9c"
|
|
949
|
+
},
|
|
950
|
+
"surface": "Complete @sanity/icons@5.2.1 surface: all generated per-icon subpaths, named and default exports, Icon, icons, IconMap, IconSymbol and IconComponent.",
|
|
951
|
+
"divergences": [
|
|
952
|
+
"Refs are normal Octane ref props rather than React forwardRef wrappers.",
|
|
953
|
+
"Event callbacks receive native DOM events rather than React synthetic events."
|
|
954
|
+
],
|
|
955
|
+
"ssr": "Supported and tested against representative @sanity/icons static SVG markup.",
|
|
956
|
+
"verified": "2026-08-24"
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"name": "@octanejs/sanity-loader",
|
|
960
|
+
"version": "0.1.2",
|
|
961
|
+
"category": "Sanity Content",
|
|
962
|
+
"upstream": {
|
|
963
|
+
"package": "@sanity/react-loader",
|
|
964
|
+
"version": "2.2.1",
|
|
965
|
+
"commit": "2e3f5720173acfe67a771d92bb7fc5b51e6ac014"
|
|
966
|
+
},
|
|
967
|
+
"surface": "Query-store milestone: createQueryStore, loadQuery, setServerClient, useQuery, useLiveMode, useEncodeDataAttribute, create-data-attribute exports, browser conditions, and the server-only rsc entry.",
|
|
968
|
+
"divergences": [
|
|
969
|
+
"Hooks use Octane hook slots and return Octane-compatible values rather than React hooks.",
|
|
970
|
+
"The experimental upstream ./jsx wrapped-data element factory is deferred to a separate milestone.",
|
|
971
|
+
"The ./rsc entry models a server-only Octane environment rather than React Server Component conditions."
|
|
972
|
+
],
|
|
973
|
+
"ssr": "Supported through loadQuery/setServerClient and the server-only rsc entry; initial query state is SSR-tested.",
|
|
974
|
+
"verified": "2026-08-24"
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"name": "@octanejs/sanity-logos",
|
|
978
|
+
"version": "0.1.2",
|
|
979
|
+
"category": "Sanity Content",
|
|
980
|
+
"upstream": {
|
|
981
|
+
"package": "@sanity/logos",
|
|
982
|
+
"version": "2.2.5",
|
|
983
|
+
"commit": "e6c37d2d4f7f121254c077b3ae83e199ec0aec9c"
|
|
984
|
+
},
|
|
985
|
+
"surface": "Complete @sanity/logos@2.2.5 runtime surface: SanityLogo, SanityMonogram, GroqLogo and GroqMonogram, including dark/scheme/custom-color variants.",
|
|
986
|
+
"divergences": [
|
|
987
|
+
"Refs are normal Octane ref props rather than React forwardRef wrappers.",
|
|
988
|
+
"Event callbacks receive native DOM events rather than React synthetic events."
|
|
989
|
+
],
|
|
990
|
+
"ssr": "Supported and differential-tested against @sanity/logos@2.2.5 static SVG markup.",
|
|
991
|
+
"verified": "2026-08-24"
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"name": "@octanejs/select",
|
|
995
|
+
"version": "0.1.3",
|
|
996
|
+
"category": "UI Libraries",
|
|
997
|
+
"upstream": {
|
|
998
|
+
"package": "react-select",
|
|
999
|
+
"version": "5.10.2",
|
|
1000
|
+
"commit": "052e864b4990a67c4ee416851c34d1eb7b58267b"
|
|
1001
|
+
},
|
|
1002
|
+
"surface": "All six JavaScript entry points and all 20 runtime exports. Public TypeScript contracts are consumer-compiled across every entry point. Framework-neutral declarations and every entry-point Props member are checked fail-closed; renderer-owned component, instance, event, node, and style contracts are explicitly tracked as the adaptations below.",
|
|
1003
|
+
"divergences": [
|
|
1004
|
+
"Renderable callback and component contracts use OctaneNode instead of ReactNode.",
|
|
1005
|
+
"Event-bearing contracts use native DOM events instead of React synthetic events.",
|
|
1006
|
+
"Renderer-owned style contracts use Octane style objects instead of Emotion CSSObjectWithLabel."
|
|
1007
|
+
],
|
|
1008
|
+
"ssr": "Default, styled, unstyled, asynchronous, creatable, state-managed, animated, nonce-bearing, static, string, and streaming server output is covered by executable React-oracle evidence.",
|
|
1009
|
+
"verified": "2026-08-03"
|
|
1010
|
+
},
|
|
844
1011
|
{
|
|
845
1012
|
"name": "@octanejs/shadcn",
|
|
846
|
-
"version": "0.0.
|
|
847
|
-
"category": "UI
|
|
1013
|
+
"version": "0.0.41",
|
|
1014
|
+
"category": "UI Libraries",
|
|
848
1015
|
"upstream": {
|
|
849
|
-
"package": "shadcn-ui/ui (
|
|
850
|
-
"version": "
|
|
1016
|
+
"package": "shadcn-ui/ui (component registry)",
|
|
1017
|
+
"version": "7c9eaba1c0a6404c990c144a654792e3313c650d + shadcn@4.21.0"
|
|
851
1018
|
},
|
|
852
|
-
"surface": "
|
|
1019
|
+
"surface": "Registry-first source binding with Radix (44 families, bare subpaths), React Aria (33, react-aria/<Family>), and Base UI (43, base-ui/<Family>) implementations. The registry emits base-nova (default), radix-nova, and aria-nova styles. The 4.21.0 update migrates class merging to cn@0.2.6 across all existing families while preserving tested Octane adaptations and local style choices. Base UI Select, Navigation Menu, and Scroll Area are transcribed from the release registry, resolved with its Nova style and Lucide icons, and target Base UI 1.8.0. The 44-family inventory is the current Octane scope, not the complete upstream registry: Base UI Sonner and additional upstream families such as Combobox remain outside it. Existing derived styles retain their unverified upstream-fidelity status.",
|
|
853
1020
|
"divergences": [
|
|
854
1021
|
"No `\"use client\"` directives anywhere: octane has no Server Components, so the RSC axis does not exist here.",
|
|
855
1022
|
"Refs are props (octane has no forwardRef) — upstream v4 already dropped forwardRef, so component shapes match.",
|
|
@@ -865,12 +1032,12 @@
|
|
|
865
1032
|
"The packaged theme.css omits the upstream site-only tokens (--surface, --code-*, --selection*) and inlines concrete oklch values for --chart-1..5 (upstream references Tailwind palette variables, which require a Tailwind build this standalone file cannot assume).",
|
|
866
1033
|
"The Base UI base's derived components carry unverified class strings. This is tracked rather than assumed safe: the bases genuinely diverge (the radix base's Skeleton is `bg-accent` where react-aria's is `bg-muted`), so identity is verified per component. `badge` was deliberately NOT derived — the react-aria version takes `render` as a function while Base UI's takes an element, so deriving it would ship the wrong API."
|
|
867
1034
|
],
|
|
868
|
-
"ssr": "Tier 1 is fully server-rendered and tested (17 families through renderToString with no browser globals, including Slot-composed hosts), with hydration adoption pinned for representative shapes (plain host, Button-asChild anchor, nested Table) — zero mismatch, preserved node identity. Tier 2's portal-free components (Checkbox, RadioGroup, Switch, Slider, Tabs, Toggle, ToggleGroup, Accordion, Collapsible, AspectRatio, Progress) are server-rendered and tested. Field is SSR-safe (no portals/browser globals); Sidebar server-renders its static desktop branch (useIsMobile is false on the server; the mobile Sheet branch and tooltip portals are client-only). Portal-backed overlays/menus/Select are excluded until the radix binding supports overlay SSR; ScrollArea awaits verification of its viewport style injection on the server.",
|
|
869
|
-
"verified": "2026-
|
|
1035
|
+
"ssr": "Tier 1 is fully server-rendered and tested (17 families through renderToString with no browser globals, including Slot-composed hosts), with hydration adoption pinned for representative shapes (plain host, Button-asChild anchor, nested Table) — zero mismatch, preserved node identity. Tier 2's portal-free components (Checkbox, RadioGroup, Switch, Slider, Tabs, Toggle, ToggleGroup, Accordion, Collapsible, AspectRatio, Progress) are server-rendered and tested. Field is SSR-safe (no portals/browser globals); Sidebar server-renders its static desktop branch (useIsMobile is false on the server; the mobile Sheet branch and tooltip portals are client-only). Portal-backed overlays/menus/Select are excluded until the radix binding supports overlay SSR; ScrollArea awaits verification of its viewport style injection on the server. The added Base UI Select, Navigation Menu, and Scroll Area wrappers have dedicated no-browser-globals SSR coverage; Select additionally proves hydration adoption and controlled updates. Base UI global scrollbar CSS is hoisted through a native template.",
|
|
1036
|
+
"verified": "2026-09-06"
|
|
870
1037
|
},
|
|
871
1038
|
{
|
|
872
1039
|
"name": "@octanejs/solana-kit",
|
|
873
|
-
"version": "0.0.
|
|
1040
|
+
"version": "0.0.22",
|
|
874
1041
|
"category": "Web3",
|
|
875
1042
|
"upstream": {
|
|
876
1043
|
"package": "@solana/react",
|
|
@@ -891,8 +1058,8 @@
|
|
|
891
1058
|
},
|
|
892
1059
|
{
|
|
893
1060
|
"name": "@octanejs/sonner",
|
|
894
|
-
"version": "0.1.
|
|
895
|
-
"category": "UI
|
|
1061
|
+
"version": "0.1.48",
|
|
1062
|
+
"category": "UI Libraries",
|
|
896
1063
|
"upstream": { "package": "sonner", "version": "2.0.7" },
|
|
897
1064
|
"surface": "Complete against the published `sonner@2.0.7` public surface: `Toaster`, the callable `toast` API and all methods, `useSonner`, promise lifecycle, multiple toaster targeting, stacked layout, themes, styling, focus management, timers, and swipe dismissal.",
|
|
898
1065
|
"divergences": [
|
|
@@ -905,8 +1072,8 @@
|
|
|
905
1072
|
},
|
|
906
1073
|
{
|
|
907
1074
|
"name": "@octanejs/spring",
|
|
908
|
-
"version": "0.0.
|
|
909
|
-
"category": "
|
|
1075
|
+
"version": "0.0.18",
|
|
1076
|
+
"category": "Animation",
|
|
910
1077
|
"upstream": { "package": "@react-spring/web", "version": "10.1.2" },
|
|
911
1078
|
"surface": "Stable React Spring web target at the package root and Parallax through the ./parallax subpath. The port provides spring values, controllers, interpolation, Octane hooks and render-prop components, animated DOM hosts, browser observers, SSR-safe initial rendering, and Parallax scrolling.",
|
|
912
1079
|
"divergences": [
|
|
@@ -918,8 +1085,8 @@
|
|
|
918
1085
|
},
|
|
919
1086
|
{
|
|
920
1087
|
"name": "@octanejs/stick-to-bottom",
|
|
921
|
-
"version": "0.0.
|
|
922
|
-
"category": "UI
|
|
1088
|
+
"version": "0.0.8",
|
|
1089
|
+
"category": "UI Utilities",
|
|
923
1090
|
"upstream": {
|
|
924
1091
|
"package": "use-stick-to-bottom",
|
|
925
1092
|
"version": "1.1.6",
|
|
@@ -937,8 +1104,8 @@
|
|
|
937
1104
|
},
|
|
938
1105
|
{
|
|
939
1106
|
"name": "@octanejs/streamdown",
|
|
940
|
-
"version": "0.1.
|
|
941
|
-
"category": "
|
|
1107
|
+
"version": "0.1.31",
|
|
1108
|
+
"category": "Content",
|
|
942
1109
|
"upstream": { "package": "streamdown", "version": "2.5.0" },
|
|
943
1110
|
"surface": "Complete Streamdown 2.5.0 root runtime and public type surface, plus the official code 1.1.1, math 1.0.2, Mermaid 1.0.2, and CJK 1.0.3 plugins exposed through ./code, ./math, ./mermaid, and ./cjk.",
|
|
944
1111
|
"divergences": [
|
|
@@ -953,8 +1120,8 @@
|
|
|
953
1120
|
},
|
|
954
1121
|
{
|
|
955
1122
|
"name": "@octanejs/styled-components",
|
|
956
|
-
"version": "0.1.
|
|
957
|
-
"category": "Styling
|
|
1123
|
+
"version": "0.1.44",
|
|
1124
|
+
"category": "Styling",
|
|
958
1125
|
"upstream": { "package": "styled-components", "version": "6.4.3" },
|
|
959
1126
|
"surface": "Full v6 web API, ported from the upstream 6.4.3 sources: `styled` with every HTML/SVG tag shortcut, `.attrs`/`.withConfig` chaining, `css`, `keyframes`, `createGlobalStyle`, `createTheme`, `ThemeProvider`/`ThemeContext`/`ThemeConsumer`/`useTheme`/`withTheme`, `StyleSheetManager`/`StyleSheetContext`/`StyleSheetConsumer` (targets, namespaces, vendor prefixing, stylis plugins, `shouldForwardProp`), `ServerStyleSheet`, `isStyledComponent`, `version`, and `__PRIVATE__`. Component selectors, folding (`styled(Styled)`), transient `$` props, `as`/`forwardedAs`, and the grouped CSSOM sheet engine (with upstream `data-styled` rehydration) all behave as upstream. The React Native surface and the RSC-only `stylisPluginRSC` are not ported.",
|
|
960
1127
|
"divergences": [
|
|
@@ -972,8 +1139,8 @@
|
|
|
972
1139
|
},
|
|
973
1140
|
{
|
|
974
1141
|
"name": "@octanejs/stylex",
|
|
975
|
-
"version": "0.1.
|
|
976
|
-
"category": "Styling
|
|
1142
|
+
"version": "0.1.51",
|
|
1143
|
+
"category": "Styling",
|
|
977
1144
|
"upstream": { "package": "@stylexjs/stylex", "version": "0.19.0" },
|
|
978
1145
|
"surface": "Full compile-time integration: re-exports the StyleX runtime API (`create`, `props`, `attrs`, `keyframes`, `defineVars`, `createTheme`) and registers as an import source; the `/vite` plugin runs the StyleX compiler over octane's compiled output and emits one static atomic stylesheet (`virtual:stylex.css`) with zero StyleX runtime in the bundle.",
|
|
979
1146
|
"divergences": [
|
|
@@ -985,8 +1152,8 @@
|
|
|
985
1152
|
},
|
|
986
1153
|
{
|
|
987
1154
|
"name": "@octanejs/swr",
|
|
988
|
-
"version": "0.0.
|
|
989
|
-
"category": "
|
|
1155
|
+
"version": "0.0.18",
|
|
1156
|
+
"category": "Data",
|
|
990
1157
|
"upstream": { "package": "swr", "version": "2.4.2" },
|
|
991
1158
|
"surface": "Mapped port of SWR 2.4.2: root useSWR/config/cache/mutate/preload, infinite, immutable, remote mutation, subscription, _internal, and the published react-server condition branches. The harness executes the pinned pristine React suite plus selected adapted Octane cases, repo-authored adapted type probes, and differential/export oracles. Provenance remains recorded-unverified until the exhaustive adapted crosswalk lands.",
|
|
992
1159
|
"divergences": [
|
|
@@ -998,8 +1165,8 @@
|
|
|
998
1165
|
},
|
|
999
1166
|
{
|
|
1000
1167
|
"name": "@octanejs/syntax-highlighter",
|
|
1001
|
-
"version": "0.0.
|
|
1002
|
-
"category": "
|
|
1168
|
+
"version": "0.0.18",
|
|
1169
|
+
"category": "Content",
|
|
1003
1170
|
"upstream": { "package": "react-syntax-highlighter", "version": "16.1.1" },
|
|
1004
1171
|
"surface": "Complete against react-syntax-highlighter 16.1.1: default, Light, Prism, async and async-light components; static registration and language lists; custom renderers and tags; all pinned Highlight.js and Prism languages and styles; and all ESM/CJS deep-import aliases.",
|
|
1005
1172
|
"divergences": [
|
|
@@ -1011,8 +1178,8 @@
|
|
|
1011
1178
|
},
|
|
1012
1179
|
{
|
|
1013
1180
|
"name": "@octanejs/tanstack-ai",
|
|
1014
|
-
"version": "0.0.
|
|
1015
|
-
"category": "
|
|
1181
|
+
"version": "0.0.46",
|
|
1182
|
+
"category": "Data",
|
|
1016
1183
|
"upstream": { "package": "@tanstack/ai-react", "version": "0.17.0" },
|
|
1017
1184
|
"surface": "Ports the @tanstack/ai-react 0.17.0 hook surface (useChat, useRealtimeChat, useGeneration, useGenerateImage/Audio/Speech/Video, useTranscription, useSummarize, useAudioRecorder, useMcpAppBridge) while reusing @tanstack/ai 0.41.0 and @tanstack/ai-client 0.21.0 unchanged and mirroring all 30 @tanstack/ai-client convenience re-exports from the upstream index.",
|
|
1018
1185
|
"divergences": [
|
|
@@ -1030,8 +1197,8 @@
|
|
|
1030
1197
|
},
|
|
1031
1198
|
{
|
|
1032
1199
|
"name": "@octanejs/tanstack-db",
|
|
1033
|
-
"version": "0.0.
|
|
1034
|
-
"category": "
|
|
1200
|
+
"version": "0.0.15",
|
|
1201
|
+
"category": "Data",
|
|
1035
1202
|
"upstream": { "package": "@tanstack/db", "version": "0.7.0" },
|
|
1036
1203
|
"surface": "Re-exports `@tanstack/db@0.7.0` unchanged and ports the React live-query binding surface of `@tanstack/react-db@0.1.96` (`useLiveQuery`, `useLiveInfiniteQuery`, `useLiveSuspenseQuery`, `useLiveQueryEffect`, `usePacedMutations`) onto Octane hooks. `useLiveQuery`/`useLiveSuspenseQuery` are driven by db's shared `createLiveQueryObserver`; `useLiveInfiniteQuery` by the coordinated `createLiveQueryWindowController`.",
|
|
1037
1204
|
"divergences": [
|
|
@@ -1045,8 +1212,8 @@
|
|
|
1045
1212
|
},
|
|
1046
1213
|
{
|
|
1047
1214
|
"name": "@octanejs/tanstack-devtools",
|
|
1048
|
-
"version": "0.0.
|
|
1049
|
-
"category": "
|
|
1215
|
+
"version": "0.0.46",
|
|
1216
|
+
"category": "Developer Tools",
|
|
1050
1217
|
"upstream": { "package": "@tanstack/react-devtools", "version": "0.10.7" },
|
|
1051
1218
|
"surface": "Surface-present for the pinned adapter's runtime entrypoint, with additive framework-neutral core re-exports. A same-fixture differential covers mount, config synchronization, plugin/title/trigger portals, and teardown. Upstream has no runtime suite; its test:types source compile is recorded as present type evidence with required pristine/adapted type lanes. Provenance is verified; core-version drift and Octane-specific type names/core re-exports stay as explicit divergences.",
|
|
1052
1219
|
"divergences": [
|
|
@@ -1060,8 +1227,8 @@
|
|
|
1060
1227
|
},
|
|
1061
1228
|
{
|
|
1062
1229
|
"name": "@octanejs/tanstack-form",
|
|
1063
|
-
"version": "0.0.
|
|
1064
|
-
"category": "Forms
|
|
1230
|
+
"version": "0.0.48",
|
|
1231
|
+
"category": "Forms",
|
|
1065
1232
|
"upstream": { "package": "@tanstack/react-form", "version": "1.33.2" },
|
|
1066
1233
|
"surface": "Ports the complete @tanstack/react-form 1.33.2 adapter surface (`useForm`, `useField`, form and field groups, hook contexts and component composition) while re-exporting @tanstack/form-core 1.33.2 unchanged and using @octanejs/tanstack-store for subscriptions.",
|
|
1067
1234
|
"divergences": [
|
|
@@ -1074,8 +1241,8 @@
|
|
|
1074
1241
|
},
|
|
1075
1242
|
{
|
|
1076
1243
|
"name": "@octanejs/tanstack-hotkeys",
|
|
1077
|
-
"version": "0.0.
|
|
1078
|
-
"category": "UI
|
|
1244
|
+
"version": "0.0.43",
|
|
1245
|
+
"category": "UI Utilities",
|
|
1079
1246
|
"upstream": { "package": "@tanstack/react-hotkeys", "version": "0.10.0" },
|
|
1080
1247
|
"surface": "Surface-present for all 22 `@tanstack/react-hotkeys@0.10.0` adapter exports plus the byte-identical `@tanstack/hotkeys@0.8.0` core re-export. The pinned 41-case upstream runtime suite runs pristine and adapted as verified vitest-full lanes; type suites compile upstream source with tsc and the Octane surface with tsrx-tsc.",
|
|
1081
1248
|
"divergences": [
|
|
@@ -1086,8 +1253,8 @@
|
|
|
1086
1253
|
},
|
|
1087
1254
|
{
|
|
1088
1255
|
"name": "@octanejs/tanstack-pacer",
|
|
1089
|
-
"version": "0.0.
|
|
1090
|
-
"category": "UI
|
|
1256
|
+
"version": "0.0.43",
|
|
1257
|
+
"category": "UI Utilities",
|
|
1091
1258
|
"upstream": { "package": "@tanstack/react-pacer", "version": "0.22.1" },
|
|
1092
1259
|
"surface": "Surface-present for all 15 runtime/type entrypoints from `@tanstack/react-pacer@0.22.1`, plus the byte-identical `@tanstack/pacer@0.21.1` core re-export. Repo-authored adapted-octane and differential lanes cover a representative debounce/throttle/batching/teardown lifecycle; upstream has no runtime suite and insufficient type evidence, so provenance remains `recorded-unverified` with nearly every export still `surface-present-unverified`.",
|
|
1093
1260
|
"divergences": [
|
|
@@ -1098,8 +1265,8 @@
|
|
|
1098
1265
|
},
|
|
1099
1266
|
{
|
|
1100
1267
|
"name": "@octanejs/tanstack-query",
|
|
1101
|
-
"version": "0.1.
|
|
1102
|
-
"category": "
|
|
1268
|
+
"version": "0.1.52",
|
|
1269
|
+
"category": "Data",
|
|
1103
1270
|
"upstream": { "package": "@tanstack/react-query", "version": "5.101.3" },
|
|
1104
1271
|
"surface": "Complete: 58/58 runtime exports plus the full TypeScript surface; the export surface is byte-identical to upstream in both directions (locked by test), and `@tanstack/query-core` is re-exported verbatim.",
|
|
1105
1272
|
"divergences": [
|
|
@@ -1110,8 +1277,8 @@
|
|
|
1110
1277
|
},
|
|
1111
1278
|
{
|
|
1112
1279
|
"name": "@octanejs/tanstack-router",
|
|
1113
|
-
"version": "0.1.
|
|
1114
|
-
"category": "
|
|
1280
|
+
"version": "0.1.53",
|
|
1281
|
+
"category": "Routing",
|
|
1115
1282
|
"upstream": { "package": "@tanstack/react-router", "version": "1.170.18" },
|
|
1116
1283
|
"surface": "Octane's TanStack Router binding: typed route factories and hooks, the full Match pipeline and lifecycle, file routes with TSRX-aware generator integration, full Link navigation/preloading/masking behavior, blocking, Await/deferred hydration, scroll restoration, lazy routes, not-found handling, document/head assets, and client/server SSR entries.",
|
|
1117
1284
|
"divergences": [
|
|
@@ -1124,8 +1291,8 @@
|
|
|
1124
1291
|
},
|
|
1125
1292
|
{
|
|
1126
1293
|
"name": "@octanejs/tanstack-router-ssr-query",
|
|
1127
|
-
"version": "0.0.
|
|
1128
|
-
"category": "
|
|
1294
|
+
"version": "0.0.43",
|
|
1295
|
+
"category": "Routing",
|
|
1129
1296
|
"upstream": { "package": "@tanstack/react-router-ssr-query", "version": "1.167.1" },
|
|
1130
1297
|
"surface": "Surface-present for the pinned adapter's only runtime entrypoint (`Options` and `setupRouterSsrQueryIntegration`). The metadata-only `./package.json` subpath is intentionally omitted. A representative differential covers provider-backed SSR, existing-wrapper preservation, setup mutations, and the wrapping control; upstream has no runtime suite, and type evidence is the upstream source compile plus the adapted Octane compile, so verification remains recorded-unverified.",
|
|
1131
1298
|
"divergences": [],
|
|
@@ -1134,8 +1301,8 @@
|
|
|
1134
1301
|
},
|
|
1135
1302
|
{
|
|
1136
1303
|
"name": "@octanejs/tanstack-store",
|
|
1137
|
-
"version": "0.0.
|
|
1138
|
-
"category": "
|
|
1304
|
+
"version": "0.0.48",
|
|
1305
|
+
"category": "State Management",
|
|
1139
1306
|
"upstream": { "package": "@tanstack/react-store", "version": "0.11.0" },
|
|
1140
1307
|
"surface": "Re-exports `@tanstack/store@0.11.0` unchanged and implements the stable React binding surface (`useSelector`, `useAtom`, `useCreateAtom`, `useCreateStore`, `createStoreContext`, and deprecated `useStore`) on Octane hooks.",
|
|
1141
1308
|
"divergences": [
|
|
@@ -1146,8 +1313,8 @@
|
|
|
1146
1313
|
},
|
|
1147
1314
|
{
|
|
1148
1315
|
"name": "@octanejs/tanstack-table",
|
|
1149
|
-
"version": "0.1.
|
|
1150
|
-
"category": "
|
|
1316
|
+
"version": "0.1.51",
|
|
1317
|
+
"category": "Tables",
|
|
1151
1318
|
"upstream": { "package": "@tanstack/react-table", "version": "9.0.0-beta.58" },
|
|
1152
1319
|
"surface": "Complete port of the v9 adapter: the framework-agnostic `@tanstack/table-core` (constructTable + every tree-shakeable feature and row model) is reused verbatim, and the adapter — `useTable`, `Subscribe`, `flexRender`/`FlexRender`, `createTableHook`, `createTableHookContexts` — is transcribed onto octane hooks. Table state lives in TanStack Store atoms via the `coreReactivityFeature` bindings, and `useSelector` drives re-renders from the selected slice. Every store primitive (hooks, `createAtom`, `batch`, `shallow`, and the atom/store types) is imported from @octanejs/tanstack-store, which re-exports all of @tanstack/store — the binding takes no direct dependency on the store core, so there is only one path to it and atom identity cannot be split across duplicate copies.",
|
|
1153
1320
|
"divergences": [
|
|
@@ -1159,8 +1326,8 @@
|
|
|
1159
1326
|
},
|
|
1160
1327
|
{
|
|
1161
1328
|
"name": "@octanejs/tanstack-virtual",
|
|
1162
|
-
"version": "0.1.
|
|
1163
|
-
"category": "
|
|
1329
|
+
"version": "0.1.49",
|
|
1330
|
+
"category": "Tables",
|
|
1164
1331
|
"upstream": { "package": "@tanstack/react-virtual", "version": "3.14.5" },
|
|
1165
1332
|
"surface": "Complete 1:1 port: the framework-agnostic `@tanstack/virtual-core` (Virtualizer + observers + windowing math) is reused verbatim; the React adapter (`useVirtualizer`, `useWindowVirtualizer`, incl. `useFlushSync` and the experimental `directDomUpdates` surface) is transcribed onto octane hooks, preserving upstream's force-update + flushSync-on-sync-scroll wiring and layout-effect lifecycle.",
|
|
1166
1333
|
"divergences": [
|
|
@@ -1171,8 +1338,8 @@
|
|
|
1171
1338
|
},
|
|
1172
1339
|
{
|
|
1173
1340
|
"name": "@octanejs/tauri",
|
|
1174
|
-
"version": "0.0.
|
|
1175
|
-
"category": "Desktop",
|
|
1341
|
+
"version": "0.0.35",
|
|
1342
|
+
"category": "Desktop Apps",
|
|
1176
1343
|
"upstream": { "package": "@tauri-apps/api", "version": "2.11.1" },
|
|
1177
1344
|
"surface": "Octane hooks over the framework-neutral Tauri IPC surface: useInvoke (suspending command), useInvokeState (pending/success/error with refetch), and useTauriEvent (event subscription with lifecycle-safe teardown). The rest of @tauri-apps/api — window, webview, menu, tray, path, dpi, image, and the plugin packages — is already framework-neutral and is imported directly rather than re-exported here.",
|
|
1178
1345
|
"divergences": [
|
|
@@ -1189,12 +1356,12 @@
|
|
|
1189
1356
|
},
|
|
1190
1357
|
{
|
|
1191
1358
|
"name": "@octanejs/testing-library",
|
|
1192
|
-
"version": "0.1.
|
|
1193
|
-
"category": "
|
|
1359
|
+
"version": "0.1.51",
|
|
1360
|
+
"category": "Testing",
|
|
1194
1361
|
"upstream": { "package": "@testing-library/react", "version": "16.3.2" },
|
|
1195
|
-
"surface": "`render`/`rerender`/`cleanup`/`renderHook` + `act` over the verbatim `@testing-library/dom` (every query, `screen`, `within`, `waitFor`, `
|
|
1362
|
+
"surface": "`render`/`rerender`/`cleanup`/`renderHook` + `act` over the verbatim `@testing-library/dom` (every query, `screen`, `within`, `waitFor`, `prettyDOM`, `configure`), with commit timing wired to octane's scheduler via the dom-library's `eventWrapper`/`asyncWrapper` config. Focus and blur helpers additionally emit their bubbling native counterparts.",
|
|
1196
1363
|
"divergences": [
|
|
1197
|
-
"`fireEvent` dispatches
|
|
1364
|
+
"`fireEvent` dispatches native events: change remains an explicit native change and mouseEnter does not also dispatch mouseover. Focus/blur helpers emit focusin/focusout as well, for Octane delegated focus handlers.",
|
|
1198
1365
|
"Not ported: the `ReactStrictMode` wrapper, `legacyRoot`, and the `onCaughtError`/`onRecoverableError` options."
|
|
1199
1366
|
],
|
|
1200
1367
|
"ssr": "`hydrate: true` adopts octane SSR output via `hydrateRoot`.",
|
|
@@ -1202,8 +1369,8 @@
|
|
|
1202
1369
|
},
|
|
1203
1370
|
{
|
|
1204
1371
|
"name": "@octanejs/textarea-autosize",
|
|
1205
|
-
"version": "0.0.
|
|
1206
|
-
"category": "UI
|
|
1372
|
+
"version": "0.0.19",
|
|
1373
|
+
"category": "UI Libraries",
|
|
1207
1374
|
"upstream": { "package": "react-textarea-autosize", "version": "8.5.9" },
|
|
1208
1375
|
"surface": "Complete against the published react-textarea-autosize 8.5.9 default component and named TextareaAutosizeProps and TextareaHeightChangeMeta types, including native textarea props, row clamps, measurement caching, height callbacks, refs, environmental listeners, form reset, SSR, and browser sizing.",
|
|
1209
1376
|
"divergences": [
|
|
@@ -1213,10 +1380,20 @@
|
|
|
1213
1380
|
"ssr": "Server rendering emits one plain textarea without accessing browser measurement globals; Octane hydration adopts the existing host and preserves pre-hydration uncontrolled edits.",
|
|
1214
1381
|
"verified": "2026-08-03"
|
|
1215
1382
|
},
|
|
1383
|
+
{
|
|
1384
|
+
"name": "@octanejs/thinking-orbs",
|
|
1385
|
+
"version": "0.1.2",
|
|
1386
|
+
"category": "Animation",
|
|
1387
|
+
"upstream": { "package": "thinking-orbs", "version": "0.2.0" },
|
|
1388
|
+
"surface": "ThinkingOrb component, resolvePreset, MODE_DRAWS, and public types — nine animation states, two tuned size presets, auto/dark/light theme, reduced-motion static frame.",
|
|
1389
|
+
"divergences": [],
|
|
1390
|
+
"ssr": "Canvas is client-only; server render emits the canvas element without animation.",
|
|
1391
|
+
"verified": "2026-08-07"
|
|
1392
|
+
},
|
|
1216
1393
|
{
|
|
1217
1394
|
"name": "@octanejs/three",
|
|
1218
|
-
"version": "0.1.
|
|
1219
|
-
"category": "
|
|
1395
|
+
"version": "0.1.46",
|
|
1396
|
+
"category": "3D",
|
|
1220
1397
|
"upstream": { "package": "@react-three/fiber", "version": "9.6.1 (2a528745)" },
|
|
1221
1398
|
"surface": "Technical-preview Milestones 0–10 surface: renderer configuration and the DOM Canvas boundary, compiler ABI and renderer-local Three intrinsic types, catalogue and both extend forms, primitive/args construction, Three prop application, attachment, ordered placement/recreation, retained visibility, lifecycle/ref delivery, ownership-aware disposal, promise-returning HTMLCanvasElement and OffscreenCanvas roots, Octane act/flushSync scheduling, callback-aware unmountComponentAtNode, callable root state, scene/camera/raycaster and resize/DPR/viewport configuration, shadows/colors, one shared frame loop, controlled WebXR loop handoff, context-restore invalidation, compatible/reconstructing HMR, global effects, useStore/useThree/useFrame/useGraph and managed-instance helpers, the ray/pointer event system with DOM sources and custom managers, a keyed useLoader cache with preload/clear and GLTF graph augmentation, retained Suspense/Activity behavior, client Three-to-DOM pending/error projection, same-renderer createPortal targets with state/event enclaves and physical Three event bubbling, client-only Canvas shell streaming and production Vite/Rsbuild hydration adoption with the matching raw Rspack graph split, the explicit-target low-level DOMRegion boundary, a deterministic testing harness, an asynchronously acknowledged structured-clone transport proof, a checked public API/subpath matrix, Three r156/current compatibility lanes, a packed external consumer, real WebGL failure/recovery coverage, and semantic-checksummed renderer and shipped-size benchmarks.",
|
|
1222
1399
|
"divergences": [
|
|
@@ -1236,8 +1413,8 @@
|
|
|
1236
1413
|
},
|
|
1237
1414
|
{
|
|
1238
1415
|
"name": "@octanejs/tiptap",
|
|
1239
|
-
"version": "0.0.
|
|
1240
|
-
"category": "
|
|
1416
|
+
"version": "0.0.46",
|
|
1417
|
+
"category": "Content",
|
|
1241
1418
|
"upstream": { "package": "@tiptap/react", "version": "3.28.0" },
|
|
1242
1419
|
"surface": "Complete @tiptap/react 3.28.0 adapter surface across the root and ./menus entries: @tiptap/core re-exports, editor hooks and contexts, the EditorContent portal bridge, compound Tiptap API, ReactRenderer, custom NodeView/MarkView renderers and helpers, BubbleMenu, and FloatingMenu.",
|
|
1243
1420
|
"divergences": [
|
|
@@ -1253,8 +1430,8 @@
|
|
|
1253
1430
|
},
|
|
1254
1431
|
{
|
|
1255
1432
|
"name": "@octanejs/to-print",
|
|
1256
|
-
"version": "0.0.
|
|
1257
|
-
"category": "UI
|
|
1433
|
+
"version": "0.0.8",
|
|
1434
|
+
"category": "UI Utilities",
|
|
1258
1435
|
"upstream": {
|
|
1259
1436
|
"package": "react-to-print",
|
|
1260
1437
|
"version": "3.3.0",
|
|
@@ -1273,8 +1450,8 @@
|
|
|
1273
1450
|
},
|
|
1274
1451
|
{
|
|
1275
1452
|
"name": "@octanejs/transition-group",
|
|
1276
|
-
"version": "0.0.
|
|
1277
|
-
"category": "
|
|
1453
|
+
"version": "0.0.18",
|
|
1454
|
+
"category": "Animation",
|
|
1278
1455
|
"upstream": {
|
|
1279
1456
|
"package": "react-transition-group",
|
|
1280
1457
|
"version": "4.4.5",
|
|
@@ -1291,8 +1468,8 @@
|
|
|
1291
1468
|
},
|
|
1292
1469
|
{
|
|
1293
1470
|
"name": "@octanejs/usehooks-ts",
|
|
1294
|
-
"version": "0.0.
|
|
1295
|
-
"category": "UI
|
|
1471
|
+
"version": "0.0.34",
|
|
1472
|
+
"category": "UI Utilities",
|
|
1296
1473
|
"upstream": {
|
|
1297
1474
|
"package": "usehooks-ts",
|
|
1298
1475
|
"version": "3.1.1",
|
|
@@ -1309,8 +1486,8 @@
|
|
|
1309
1486
|
},
|
|
1310
1487
|
{
|
|
1311
1488
|
"name": "@octanejs/valtio",
|
|
1312
|
-
"version": "0.1.
|
|
1313
|
-
"category": "
|
|
1489
|
+
"version": "0.1.35",
|
|
1490
|
+
"category": "State Management",
|
|
1314
1491
|
"upstream": { "package": "valtio", "version": "2.3.2" },
|
|
1315
1492
|
"surface": "The framework-agnostic `valtio/vanilla` core and `valtio/vanilla/utils` are re-exported verbatim; `useSnapshot` and the `useProxy` utility are ported to Octane.",
|
|
1316
1493
|
"divergences": [
|
|
@@ -1321,8 +1498,8 @@
|
|
|
1321
1498
|
},
|
|
1322
1499
|
{
|
|
1323
1500
|
"name": "@octanejs/vaul",
|
|
1324
|
-
"version": "0.0.
|
|
1325
|
-
"category": "UI
|
|
1501
|
+
"version": "0.0.20",
|
|
1502
|
+
"category": "UI Libraries",
|
|
1326
1503
|
"upstream": {
|
|
1327
1504
|
"package": "vaul",
|
|
1328
1505
|
"version": "1.1.2",
|
|
@@ -1337,8 +1514,8 @@
|
|
|
1337
1514
|
},
|
|
1338
1515
|
{
|
|
1339
1516
|
"name": "@octanejs/visx",
|
|
1340
|
-
"version": "0.1.
|
|
1341
|
-
"category": "
|
|
1517
|
+
"version": "0.1.49",
|
|
1518
|
+
"category": "Visualization",
|
|
1342
1519
|
"upstream": { "package": "@visx/visx", "version": "4.0.0 + master@485c035" },
|
|
1343
1520
|
"surface": "Complete current Visx 4.x web runtime surface: the exact 35-namespace aggregate, all 40 feature entry points, and the eight public a11y/react, a11y/server, axis/react, scale/react, shape/react, theme/react, tooltip/floating, and voronoi/react subpaths. Released-only packages chord, delaunay, react-spring, sankey, and stats remain directly importable exactly as upstream specifies.",
|
|
1344
1521
|
"divergences": [
|
|
@@ -1353,7 +1530,7 @@
|
|
|
1353
1530
|
},
|
|
1354
1531
|
{
|
|
1355
1532
|
"name": "@octanejs/wagmi",
|
|
1356
|
-
"version": "0.0.
|
|
1533
|
+
"version": "0.0.33",
|
|
1357
1534
|
"category": "Web3",
|
|
1358
1535
|
"upstream": { "package": "wagmi", "version": "3.7.4" },
|
|
1359
1536
|
"surface": "WagmiProvider and createConfig over @wagmi/core 3.6.4, with config, connection, connect, disconnect, switch-connection, switch-chain, connectors, connections, chains, balance, contract read/simulate/write, transaction send/wait, and message-signing hooks.",
|
|
@@ -1369,8 +1546,8 @@
|
|
|
1369
1546
|
},
|
|
1370
1547
|
{
|
|
1371
1548
|
"name": "@octanejs/waypoint",
|
|
1372
|
-
"version": "0.0.
|
|
1373
|
-
"category": "UI
|
|
1549
|
+
"version": "0.0.7",
|
|
1550
|
+
"category": "UI Utilities",
|
|
1374
1551
|
"upstream": {
|
|
1375
1552
|
"package": "react-waypoint",
|
|
1376
1553
|
"version": "6.0.0",
|
|
@@ -1388,8 +1565,8 @@
|
|
|
1388
1565
|
},
|
|
1389
1566
|
{
|
|
1390
1567
|
"name": "@octanejs/window",
|
|
1391
|
-
"version": "0.0.
|
|
1392
|
-
"category": "
|
|
1568
|
+
"version": "0.0.19",
|
|
1569
|
+
"category": "Tables",
|
|
1393
1570
|
"upstream": { "package": "react-window", "version": "2.3.0" },
|
|
1394
1571
|
"surface": "Provisional complete exact port of the react-window 2.3.0 root surface: List, Grid, getScrollbarSize, useDynamicRowHeight, four imperative-ref hooks, and all eight public types. The byte-locked pristine React suite and generated Octane adaptation each execute all 14 upstream files and all 117 cases; shared differential, SSR, hydration, and assertion-level public type lanes are required by the React parity manifest. Final Chromium/Firefox browser and executable CommonJS package-condition evidence remain pending shared infrastructure PRs #548 and #550.",
|
|
1395
1572
|
"divergences": [
|
|
@@ -1401,8 +1578,8 @@
|
|
|
1401
1578
|
},
|
|
1402
1579
|
{
|
|
1403
1580
|
"name": "@octanejs/wouter",
|
|
1404
|
-
"version": "0.0.
|
|
1405
|
-
"category": "
|
|
1581
|
+
"version": "0.0.8",
|
|
1582
|
+
"category": "Routing",
|
|
1406
1583
|
"upstream": {
|
|
1407
1584
|
"package": "wouter",
|
|
1408
1585
|
"version": "3.10.0",
|
|
@@ -1421,8 +1598,8 @@
|
|
|
1421
1598
|
},
|
|
1422
1599
|
{
|
|
1423
1600
|
"name": "@octanejs/xstate",
|
|
1424
|
-
"version": "0.0.
|
|
1425
|
-
"category": "
|
|
1601
|
+
"version": "0.0.10",
|
|
1602
|
+
"category": "State Management",
|
|
1426
1603
|
"upstream": { "package": "@xstate/react", "version": "6.1.0" },
|
|
1427
1604
|
"surface": "Complete @xstate/react 6.1.0 export surface — `useActor`, `useActorRef`, `useSelector`, `createActorContext`, `shallowEqual`, and the deprecated `useMachine` alias — ported onto Octane hooks. The framework-agnostic `xstate` actor core is reused unchanged as a peer dependency and is not re-exported, exactly as upstream. Upstream's two npm-only dependencies are replaced by in-repo ports: `use-sync-external-store/shim/with-selector` by a local port of React's selector shim, and `use-isomorphic-layout-effect` by a slot-forwarding equivalent.",
|
|
1428
1605
|
"divergences": [
|
|
@@ -1436,8 +1613,8 @@
|
|
|
1436
1613
|
},
|
|
1437
1614
|
{
|
|
1438
1615
|
"name": "@octanejs/xstate-store",
|
|
1439
|
-
"version": "0.0.
|
|
1440
|
-
"category": "
|
|
1616
|
+
"version": "0.0.10",
|
|
1617
|
+
"category": "State Management",
|
|
1441
1618
|
"upstream": { "package": "@xstate/store-react", "version": "2.0.0" },
|
|
1442
1619
|
"surface": "Complete @xstate/store-react 2.0.0 export surface — `useSelector`, `useStore`, `useAtom`, `useAtomState`, and `createStoreHook` — ported onto Octane hooks, plus the full `@xstate/store@4.2.3` core re-exported unchanged (`createStore`, `createAtom`, `fromStore`, `shallowEqual`, and every type), exactly as upstream re-exports it.",
|
|
1443
1620
|
"divergences": [
|
|
@@ -1448,10 +1625,22 @@
|
|
|
1448
1625
|
"ssr": "Supported: selectors, stores, and atoms read their current snapshot during server rendering through `getServerSnapshot`, and the binding has no browser-only initialization.",
|
|
1449
1626
|
"verified": "2026-08-15"
|
|
1450
1627
|
},
|
|
1628
|
+
{
|
|
1629
|
+
"name": "@octanejs/xyflow",
|
|
1630
|
+
"version": "0.1.5",
|
|
1631
|
+
"category": "Visualization",
|
|
1632
|
+
"upstream": { "package": "@xyflow/react", "version": "12.11.2" },
|
|
1633
|
+
"surface": "ReactFlow, ReactFlowProvider, Handle, hooks (useReactFlow, useNodes, useEdges, …), change helpers, and node/edge utilities from @xyflow/react@12.11.2.",
|
|
1634
|
+
"divergences": [
|
|
1635
|
+
"Octane components are functions rather than forwardRef objects (ReactFlow, ReactFlowProvider, Handle)."
|
|
1636
|
+
],
|
|
1637
|
+
"ssr": "Store/provider render on server; canvas interactions are client-driven like upstream.",
|
|
1638
|
+
"verified": "2026-08-07"
|
|
1639
|
+
},
|
|
1451
1640
|
{
|
|
1452
1641
|
"name": "@octanejs/zag",
|
|
1453
|
-
"version": "0.0.
|
|
1454
|
-
"category": "UI
|
|
1642
|
+
"version": "0.0.18",
|
|
1643
|
+
"category": "UI Libraries",
|
|
1455
1644
|
"upstream": { "package": "@zag-js/react", "version": "1.42.0" },
|
|
1456
1645
|
"surface": "Complete port of the @zag-js/react@1.42.0 public adapter surface: useMachine, normalizeProps, Portal, the @zag-js/core mergeProps re-export, and the framework useSyncExternalStore re-export. The framework-agnostic @zag-js/core, @zag-js/store, @zag-js/types, and @zag-js/utils packages are reused unchanged.",
|
|
1457
1646
|
"divergences": [
|
|
@@ -1465,13 +1654,11 @@
|
|
|
1465
1654
|
},
|
|
1466
1655
|
{
|
|
1467
1656
|
"name": "@octanejs/zustand",
|
|
1468
|
-
"version": "0.1.
|
|
1469
|
-
"category": "
|
|
1657
|
+
"version": "0.1.52",
|
|
1658
|
+
"category": "State Management",
|
|
1470
1659
|
"upstream": { "package": "zustand", "version": "5.0.14" },
|
|
1471
1660
|
"surface": "Complete 1:1 port: the framework-agnostic vanilla store is reused verbatim; `create`/`useStore`, `shallow`/`useShallow`, the traditional equality-fn variants, and all middleware (persist, devtools, subscribeWithSelector, combine, redux).",
|
|
1472
|
-
"divergences": [
|
|
1473
|
-
"Unstable selectors (a new reference every render) settle after a bounded number of re-renders instead of hitting React's `useSyncExternalStore` warning loop — still prefer `useShallow`."
|
|
1474
|
-
],
|
|
1661
|
+
"divergences": [],
|
|
1475
1662
|
"ssr": "No SSR-specific surface; no dedicated SSR tests.",
|
|
1476
1663
|
"verified": "2026-08-02"
|
|
1477
1664
|
}
|
|
@@ -1479,6 +1666,8 @@
|
|
|
1479
1666
|
"reactPackages": {
|
|
1480
1667
|
"@apollo/client": "@octanejs/apollo-client",
|
|
1481
1668
|
"@base-ui-components/react": "@octanejs/base-ui",
|
|
1669
|
+
"@base-ui/react": "@octanejs/base-ui",
|
|
1670
|
+
"@base-ui/utils": "@octanejs/base-ui-utils",
|
|
1482
1671
|
"@dnd-kit/react": "@octanejs/dnd-kit",
|
|
1483
1672
|
"@floating-ui/react": "@octanejs/floating-ui",
|
|
1484
1673
|
"@formisch/react": "@octanejs/formisch",
|
|
@@ -1492,7 +1681,9 @@
|
|
|
1492
1681
|
"@monaco-editor/react": "@octanejs/monaco-editor",
|
|
1493
1682
|
"@opentui/react": "@octanejs/opentui",
|
|
1494
1683
|
"@phosphor-icons/react": "@octanejs/phosphor-icons",
|
|
1684
|
+
"@portabletext/react": "@octanejs/portabletext",
|
|
1495
1685
|
"@rainbow-me/rainbowkit": "@octanejs/rainbowkit",
|
|
1686
|
+
"@react-email/components": "@octanejs/email",
|
|
1496
1687
|
"@react-rxjs/core": "@octanejs/rxjs",
|
|
1497
1688
|
"@react-rxjs/utils": "@octanejs/rxjs",
|
|
1498
1689
|
"@react-spring/parallax": "@octanejs/spring",
|
|
@@ -1500,6 +1691,9 @@
|
|
|
1500
1691
|
"@react-three/drei": "@octanejs/drei",
|
|
1501
1692
|
"@react-three/fiber": "@octanejs/three",
|
|
1502
1693
|
"@reduxjs/toolkit": "@octanejs/redux-toolkit",
|
|
1694
|
+
"@sanity/icons": "@octanejs/sanity-icons",
|
|
1695
|
+
"@sanity/logos": "@octanejs/sanity-logos",
|
|
1696
|
+
"@sanity/react-loader": "@octanejs/sanity-loader",
|
|
1503
1697
|
"@solana/react": "@octanejs/solana-kit",
|
|
1504
1698
|
"@streamdown/cjk": "@octanejs/streamdown",
|
|
1505
1699
|
"@streamdown/code": "@octanejs/streamdown",
|
|
@@ -1572,8 +1766,10 @@
|
|
|
1572
1766
|
"@visx/zoom": "@octanejs/visx",
|
|
1573
1767
|
"@xstate/react": "@octanejs/xstate",
|
|
1574
1768
|
"@xstate/store-react": "@octanejs/xstate-store",
|
|
1769
|
+
"@xyflow/react": "@octanejs/xyflow",
|
|
1575
1770
|
"@zag-js/react": "@octanejs/zag",
|
|
1576
1771
|
"animejs": "@octanejs/animejs",
|
|
1772
|
+
"better-auth/react": "@octanejs/better-auth",
|
|
1577
1773
|
"cmdk": "@octanejs/cmdk",
|
|
1578
1774
|
"dexie-react-hooks": "@octanejs/dexie",
|
|
1579
1775
|
"embla-carousel-react": "@octanejs/embla-carousel",
|
|
@@ -1597,11 +1793,13 @@
|
|
|
1597
1793
|
"react-day-picker": "@octanejs/day-picker",
|
|
1598
1794
|
"react-draggable": "@octanejs/draggable",
|
|
1599
1795
|
"react-dropzone": "@octanejs/dropzone",
|
|
1796
|
+
"react-email": "@octanejs/email",
|
|
1600
1797
|
"react-error-boundary": "@octanejs/react-error-boundary",
|
|
1601
1798
|
"react-hook-form": "@octanejs/hook-form",
|
|
1602
1799
|
"react-i18next": "@octanejs/i18next",
|
|
1603
1800
|
"react-image-crop": "@octanejs/image-crop",
|
|
1604
1801
|
"react-intersection-observer": "@octanejs/intersection-observer",
|
|
1802
|
+
"react-is": "@octanejs/octane-is",
|
|
1605
1803
|
"react-map-gl": "@octanejs/react-map-gl",
|
|
1606
1804
|
"react-map-gl/mapbox": "@octanejs/react-map-gl",
|
|
1607
1805
|
"react-markdown": "@octanejs/markdown",
|
|
@@ -1611,6 +1809,7 @@
|
|
|
1611
1809
|
"react-resizable-panels": "@octanejs/resizable-panels",
|
|
1612
1810
|
"react-router": "@octanejs/remix-router",
|
|
1613
1811
|
"react-router-dom": "@octanejs/remix-router",
|
|
1812
|
+
"react-select": "@octanejs/select",
|
|
1614
1813
|
"react-stately": "@octanejs/aria",
|
|
1615
1814
|
"react-syntax-highlighter": "@octanejs/syntax-highlighter",
|
|
1616
1815
|
"react-textarea-autosize": "@octanejs/textarea-autosize",
|
|
@@ -1624,6 +1823,7 @@
|
|
|
1624
1823
|
"streamdown": "@octanejs/streamdown",
|
|
1625
1824
|
"styled-components": "@octanejs/styled-components",
|
|
1626
1825
|
"swr": "@octanejs/swr",
|
|
1826
|
+
"thinking-orbs": "@octanejs/thinking-orbs",
|
|
1627
1827
|
"use-stick-to-bottom": "@octanejs/stick-to-bottom",
|
|
1628
1828
|
"usehooks-ts": "@octanejs/usehooks-ts",
|
|
1629
1829
|
"valtio": "@octanejs/valtio",
|
|
@@ -1771,7 +1971,7 @@
|
|
|
1771
1971
|
"28": {
|
|
1772
1972
|
"message": "Target container is not a DOM element.",
|
|
1773
1973
|
"runtime": ["client"],
|
|
1774
|
-
"status": "
|
|
1974
|
+
"status": "retired"
|
|
1775
1975
|
},
|
|
1776
1976
|
"29": {
|
|
1777
1977
|
"message": "Cannot update an unmounted root.",
|
|
@@ -1919,6 +2119,36 @@
|
|
|
1919
2119
|
"message": "%s requires an active server component.",
|
|
1920
2120
|
"runtime": ["server"],
|
|
1921
2121
|
"status": "active"
|
|
2122
|
+
},
|
|
2123
|
+
"60": {
|
|
2124
|
+
"message": "A component suspended without a Suspense boundary during synchronous server rendering. Use prerender() or a streaming renderer to await it.",
|
|
2125
|
+
"runtime": ["server"],
|
|
2126
|
+
"status": "active"
|
|
2127
|
+
},
|
|
2128
|
+
"61": {
|
|
2129
|
+
"message": "Hydration mismatch: the server-rendered text differed from the client; the text was updated to the client value.",
|
|
2130
|
+
"runtime": ["client"],
|
|
2131
|
+
"status": "active"
|
|
2132
|
+
},
|
|
2133
|
+
"62": {
|
|
2134
|
+
"message": "Hydration mismatch: the server rendered extra children in a text element; the stale children were discarded.",
|
|
2135
|
+
"runtime": ["client"],
|
|
2136
|
+
"status": "active"
|
|
2137
|
+
},
|
|
2138
|
+
"63": {
|
|
2139
|
+
"message": "Target container is not a DOM element. Pass an Element, Document, or DocumentFragment. If document.body is null after document hydration, update the existing document root or render a document shell containing <body>.",
|
|
2140
|
+
"runtime": ["client"],
|
|
2141
|
+
"status": "active"
|
|
2142
|
+
},
|
|
2143
|
+
"64": {
|
|
2144
|
+
"message": "Multiple errors were thrown during act.",
|
|
2145
|
+
"runtime": ["client"],
|
|
2146
|
+
"status": "active"
|
|
2147
|
+
},
|
|
2148
|
+
"65": {
|
|
2149
|
+
"message": "Internal SSR invariant violated: ASYNC_SCOPE is not an extension of the active frame's async scope. Please file an Octane issue.",
|
|
2150
|
+
"runtime": ["server"],
|
|
2151
|
+
"status": "active"
|
|
1922
2152
|
}
|
|
1923
2153
|
}
|
|
1924
2154
|
}
|