Skip to content

Extract the React Studio Preview SDK, UI, API client and auth packages - #8931

Merged
sfmskywalker merged 7 commits into
mainfrom
codex/8859-react-studio-sdk
Oct 21, 2026
Merged

sfmskywalker merged 7 commits into
mainfrom
codex/8859-react-studio-sdk

Conversation

@sfmskywalker

@sfmskywalker sfmskywalker commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

React Studio's imported feature sources depended directly on host API, auth, editor context and UI files. This extracts four unpublished Preview workspace packages (-sdk, -ui, -api-client, -auth) and makes the host and features consume their public exports.

The SDK defines register(api), typed contribution slots, stable ordering, host/SDK API version gates, transactional activation and cleanup diagnostics. Existing bundled modules use a temporary adapter pending #8845. A separate weather module installs four packed artifacts, compiles with NodeNext resolution and renders through the shared auth/UI context without host source aliases. TypeDoc output is generated and retained by CI. Authentication retains the five existing strategies and now rejects external callbacks with missing state.

Validation: 102 Vitest cases; lint/typecheck/build; packed consumer; generated API reference; 19 ASP.NET host tests; 5 browser tests through embedded assets; dependency discovery guard (18 cases, 7,936 assertions); full npm audit with no known vulnerabilities. The build retains 114 production dependency notices. The final non-root Docker image builds and passes real Elsa Identity sign-in, flowchart creation through the actual API, designer rendering, saved-definition reload and temporary-definition cleanup.

Part of #8844 and epic #8859. This is stacked on #8925. Physical RCL manifests/assets, additional slot renderers and npm publication remain separate work; this PR does not close the epic or publish packages.

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 293 files, which is 143 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to Team to raise the limit.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 342573dd-e3e2-41aa-b478-fec6abcc9a02
📥 Commits

Reviewing files that changed from the base of the PR and between 146edb7 and d56f194.

⛔ Files ignored due to path filters: 1
  • studio/react/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing: 293
  • .dockerignore
  • .github/workflows/studio-react-source-validation.yml
  • CONTEXT.md
  • studio/docs/specs/react-studio-preview/plan.md
  • studio/react/.gitignore
  • studio/react/Dockerfile
  • studio/react/README.md
  • studio/react/docs/ARCHITECTURE.md
  • studio/react/docs/modules.md
  • studio/react/eslint.config.mjs
  • studio/react/package.json
  • studio/react/packages/api-client/README.md
  • studio/react/packages/api-client/package.json
  • studio/react/packages/api-client/src/client.ts
  • studio/react/packages/api-client/src/endpoints/descriptors.ts
  • studio/react/packages/api-client/src/endpoints/identity.ts
  • studio/react/packages/api-client/src/endpoints/workflow-definitions.ts
  • studio/react/packages/api-client/src/endpoints/workflow-instances.ts
  • studio/react/packages/api-client/src/http.test.ts
  • studio/react/packages/api-client/src/http.ts
  • studio/react/packages/api-client/src/index.ts
  • studio/react/packages/api-client/src/types/activities.ts
  • studio/react/packages/api-client/src/types/common.ts
  • studio/react/packages/api-client/src/types/descriptors.ts
  • studio/react/packages/api-client/src/types/workflow-definitions.ts
  • studio/react/packages/api-client/src/types/workflow-instances.ts
  • studio/react/packages/api-client/tsconfig.json
  • studio/react/packages/auth/README.md
  • studio/react/packages/auth/package.json
  • studio/react/packages/auth/src/auth.test.ts
  • studio/react/packages/auth/src/create-strategy.ts
  • studio/react/packages/auth/src/index.ts
  • studio/react/packages/auth/src/permissions.ts
  • studio/react/packages/auth/src/provider.tsx
  • studio/react/packages/auth/src/storage.ts
  • studio/react/packages/auth/src/strategies/api-key.ts
  • studio/react/packages/auth/src/strategies/elsa-external.ts
  • studio/react/packages/auth/src/strategies/elsa-identity.ts
  • studio/react/packages/auth/src/strategies/none.ts
  • studio/react/packages/auth/src/strategies/oidc.ts
  • studio/react/packages/auth/src/types.ts
  • studio/react/packages/auth/tsconfig.json
  • studio/react/packages/sdk/README.md
  • studio/react/packages/sdk/package.json
  • studio/react/packages/sdk/src/config.ts
  • studio/react/packages/sdk/src/editor-types.ts
  • studio/react/packages/sdk/src/host.test.ts
  • studio/react/packages/sdk/src/host.ts
  • studio/react/packages/sdk/src/index.ts
  • studio/react/packages/sdk/src/modules.ts
  • studio/react/packages/sdk/src/navigation.ts
  • studio/react/packages/sdk/src/permissions.ts
  • studio/react/packages/sdk/src/register.ts
  • studio/react/packages/sdk/src/slots.ts
  • studio/react/packages/sdk/src/workflow-editor.tsx
  • studio/react/packages/sdk/tsconfig.json
  • studio/react/packages/ui/README.md
  • studio/react/packages/ui/package.json
  • studio/react/packages/ui/src/alert-dialog.tsx
  • studio/react/packages/ui/src/alert.tsx
  • studio/react/packages/ui/src/avatar.tsx
  • studio/react/packages/ui/src/badge.tsx
  • studio/react/packages/ui/src/breadcrumb.tsx
  • studio/react/packages/ui/src/button.tsx
  • studio/react/packages/ui/src/card.tsx
  • studio/react/packages/ui/src/checkbox.tsx
  • studio/react/packages/ui/src/collapsible.tsx
  • studio/react/packages/ui/src/command.tsx
  • studio/react/packages/ui/src/dialog.tsx
  • studio/react/packages/ui/src/dropdown-menu.tsx
  • studio/react/packages/ui/src/index.ts
  • studio/react/packages/ui/src/input-group.tsx
  • studio/react/packages/ui/src/input.tsx
  • studio/react/packages/ui/src/label.tsx
  • studio/react/packages/ui/src/pagination.tsx
  • studio/react/packages/ui/src/popover.tsx
  • studio/react/packages/ui/src/radio-group.tsx
  • studio/react/packages/ui/src/resizable.tsx
  • studio/react/packages/ui/src/scroll-area.tsx
  • studio/react/packages/ui/src/select.tsx
  • studio/react/packages/ui/src/separator.tsx
  • studio/react/packages/ui/src/shadcn.css
  • studio/react/packages/ui/src/sheet.tsx
  • studio/react/packages/ui/src/sidebar.tsx
  • studio/react/packages/ui/src/skeleton.tsx
  • studio/react/packages/ui/src/sonner.tsx
  • studio/react/packages/ui/src/styles.css
  • studio/react/packages/ui/src/switch.tsx
  • studio/react/packages/ui/src/table.tsx
  • studio/react/packages/ui/src/tabs.tsx
  • studio/react/packages/ui/src/textarea.tsx
  • studio/react/packages/ui/src/tooltip.tsx
  • studio/react/packages/ui/src/use-mobile.ts
  • studio/react/packages/ui/tsconfig.json
  • studio/react/pnpm-workspace.yaml
  • studio/react/samples/weather-module/entry.tsx
  • studio/react/scripts/test-packed-packages.mjs
  • studio/react/src/components/common/confirm-dialog.tsx
  • studio/react/src/components/common/copy-button.tsx
  • studio/react/src/components/common/data-table.tsx
  • studio/react/src/components/common/error-alert.tsx
  • studio/react/src/components/common/field.tsx
  • studio/react/src/components/common/search-input.tsx
  • studio/react/src/components/common/simple-select.tsx
  • studio/react/src/components/common/status-badge.tsx
  • studio/react/src/components/common/timestamp.tsx
  • studio/react/src/components/shell/app-shell.tsx
  • studio/react/src/components/shell/login-page.tsx
  • studio/react/src/components/shell/status-pages.tsx
  • studio/react/src/components/shell/studio-router.tsx
  • studio/react/src/components/shell/studio-sidebar.tsx
  • studio/react/src/components/shell/theme-menu.tsx
  • studio/react/src/components/shell/user-menu.tsx
  • studio/react/src/config/schema.ts
  • studio/react/src/globals.css
  • studio/react/src/lib/api/provider.tsx
  • studio/react/src/lib/auth/provider.tsx
  • studio/react/src/lib/features/remote-features.ts
  • studio/react/src/lib/modules/registry.tsx
  • studio/react/src/lib/modules/router.test.ts
  • studio/react/src/lib/modules/router.ts
  • studio/react/src/lib/modules/types.ts
  • studio/react/src/lib/navigation/base-path.ts
  • studio/react/src/lib/permissions/index.ts
  • studio/react/src/main.tsx
  • studio/react/src/modules/activity-editors/__tests__/expression.test.ts
  • studio/react/src/modules/activity-editors/activity-properties-panel.tsx
  • studio/react/src/modules/activity-editors/editors/binding-picker.tsx
  • studio/react/src/modules/activity-editors/editors/checkbox-editor.tsx
  • studio/react/src/modules/activity-editors/editors/checklist-editor.tsx
  • studio/react/src/modules/activity-editors/editors/dictionary-editor.tsx
  • studio/react/src/modules/activity-editors/editors/multiline-editor.tsx
  • studio/react/src/modules/activity-editors/editors/multitext-editor.tsx
  • studio/react/src/modules/activity-editors/editors/options.ts
  • studio/react/src/modules/activity-editors/editors/radiolist-editor.tsx
  • studio/react/src/modules/activity-editors/editors/singleline-editor.tsx
  • studio/react/src/modules/activity-editors/editors/switch-cases-editor.tsx
  • studio/react/src/modules/activity-editors/expression-editor.tsx
  • studio/react/src/modules/activity-editors/expression.ts
  • studio/react/src/modules/activity-editors/types.ts
  • studio/react/src/modules/alterations/api.ts
  • studio/react/src/modules/alterations/components/alter-instance-dialog.tsx
  • studio/react/src/modules/alterations/components/alteration-composer.tsx
  • studio/react/src/modules/alterations/components/retry-faulted-dialog.tsx
  • studio/react/src/modules/alterations/hooks.ts
  • studio/react/src/modules/alterations/index.tsx
  • studio/react/src/modules/alterations/pages/plan-page.tsx
  • studio/react/src/modules/alterations/pages/plans-page.tsx
  • studio/react/src/modules/appearance/index.tsx
  • studio/react/src/modules/appearance/pages/appearance-page.tsx
  • studio/react/src/modules/dashboard/api.ts
  • studio/react/src/modules/dashboard/components/dashboard-zones.tsx
  • studio/react/src/modules/dashboard/components/empty-dashboard.tsx
  • studio/react/src/modules/dashboard/components/range-toggle.tsx
  • studio/react/src/modules/dashboard/components/runtime-status-chip.tsx
  • studio/react/src/modules/dashboard/components/stat-tile.tsx
  • studio/react/src/modules/dashboard/components/widget-card.tsx
  • studio/react/src/modules/dashboard/hooks.ts
  • studio/react/src/modules/dashboard/index.tsx
  • studio/react/src/modules/dashboard/pages/dashboard-page.tsx
  • studio/react/src/modules/dashboard/widgets/activity-widget.tsx
  • studio/react/src/modules/dashboard/widgets/findings-widget.tsx
  • studio/react/src/modules/dashboard/widgets/hotspots-widget.tsx
  • studio/react/src/modules/dashboard/widgets/index.ts
  • studio/react/src/modules/dashboard/widgets/metrics-widget.tsx
  • studio/react/src/modules/dashboard/widgets/per-workflow-widget.tsx
  • studio/react/src/modules/dashboard/widgets/status-breakdown-widget.tsx
  • studio/react/src/modules/dashboard/widgets/trend-widget.tsx
  • studio/react/src/modules/designer/__tests__/switch-slots.test.ts
  • studio/react/src/modules/designer/components/activity-card.tsx
  • studio/react/src/modules/designer/components/activity-icon.tsx
  • studio/react/src/modules/designer/components/activity-node.tsx
  • studio/react/src/modules/designer/components/activity-toolbox.tsx
  • studio/react/src/modules/designer/components/connection-edge.tsx
  • studio/react/src/modules/designer/components/designer-breadcrumb.tsx
  • studio/react/src/modules/designer/components/designer-canvas.tsx
  • studio/react/src/modules/designer/components/node-context-toolbar.tsx
  • studio/react/src/modules/designer/components/quick-add-menu.tsx
  • studio/react/src/modules/designer/components/sequence-designer.tsx
  • studio/react/src/modules/designer/components/slot-chip.tsx
  • studio/react/src/modules/designer/components/state-machine-canvas.tsx
  • studio/react/src/modules/designer/components/state-node.tsx
  • studio/react/src/modules/designer/components/state-panel.tsx
  • studio/react/src/modules/designer/components/transition-panel.tsx
  • studio/react/src/modules/designer/context.tsx
  • studio/react/src/modules/designer/model/containers.ts
  • studio/react/src/modules/designer/model/data-flow.ts
  • studio/react/src/modules/designer/model/display.ts
  • studio/react/src/modules/designer/model/flow-types.ts
  • studio/react/src/modules/designer/model/flowchart-ops.ts
  • studio/react/src/modules/designer/model/icons.ts
  • studio/react/src/modules/designer/model/layout.ts
  • studio/react/src/modules/designer/model/ports.ts
  • studio/react/src/modules/designer/model/registry.ts
  • studio/react/src/modules/designer/model/validation.ts
  • studio/react/src/modules/designer/store.ts
  • studio/react/src/modules/diagnostics-console-logs/api.ts
  • studio/react/src/modules/diagnostics-console-logs/components/storage-widget.tsx
  • studio/react/src/modules/diagnostics-console-logs/hooks.ts
  • studio/react/src/modules/diagnostics-console-logs/index.tsx
  • studio/react/src/modules/diagnostics-console-logs/pages/console-page.tsx
  • studio/react/src/modules/diagnostics-structured-logs/api.ts
  • studio/react/src/modules/diagnostics-structured-logs/components/log-table.tsx
  • studio/react/src/modules/diagnostics-structured-logs/components/storage-widget.tsx
  • studio/react/src/modules/diagnostics-structured-logs/hooks.ts
  • studio/react/src/modules/diagnostics-structured-logs/index.tsx
  • studio/react/src/modules/diagnostics-structured-logs/pages/structured-logs-page.tsx
  • studio/react/src/modules/environments/api.ts
  • studio/react/src/modules/environments/components/environment-picker.tsx
  • studio/react/src/modules/environments/hooks.ts
  • studio/react/src/modules/environments/index.tsx
  • studio/react/src/modules/index.ts
  • studio/react/src/modules/labels/api.ts
  • studio/react/src/modules/labels/components/label-badge.tsx
  • studio/react/src/modules/labels/components/label-dialog.tsx
  • studio/react/src/modules/labels/components/workflow-labels-tab.tsx
  • studio/react/src/modules/labels/index.tsx
  • studio/react/src/modules/labels/pages/labels-page.tsx
  • studio/react/src/modules/secrets/api.ts
  • studio/react/src/modules/secrets/components/create-secret-dialog.tsx
  • studio/react/src/modules/secrets/components/edit-secret-dialog.tsx
  • studio/react/src/modules/secrets/components/rotate-secret-dialog.tsx
  • studio/react/src/modules/secrets/components/secret-picker-editor.tsx
  • studio/react/src/modules/secrets/components/secret-value-field.tsx
  • studio/react/src/modules/secrets/components/store-fields.tsx
  • studio/react/src/modules/secrets/index.tsx
  • studio/react/src/modules/secrets/pages/secret-detail-page.tsx
  • studio/react/src/modules/secrets/pages/secrets-page.tsx
  • studio/react/src/modules/security/api.ts
  • studio/react/src/modules/security/components/deletion-blocked-dialog.tsx
  • studio/react/src/modules/security/components/generated-password-dialog.tsx
  • studio/react/src/modules/security/components/permission-editor.tsx
  • studio/react/src/modules/security/components/role-checklist.tsx
  • studio/react/src/modules/security/components/role-dialog.tsx
  • studio/react/src/modules/security/components/user-dialog.tsx
  • studio/react/src/modules/security/index.tsx
  • studio/react/src/modules/security/pages/roles-page.tsx
  • studio/react/src/modules/security/pages/users-page.tsx
  • studio/react/src/modules/settings/index.tsx
  • studio/react/src/modules/settings/pages/settings-page.tsx
  • studio/react/src/modules/user-tasks/api.ts
  • studio/react/src/modules/user-tasks/components/assign-task-dialog.tsx
  • studio/react/src/modules/user-tasks/components/cancel-task-dialog.tsx
  • studio/react/src/modules/user-tasks/components/complete-task-dialog.tsx
  • studio/react/src/modules/user-tasks/hooks.ts
  • studio/react/src/modules/user-tasks/index.tsx
  • studio/react/src/modules/user-tasks/pages/detail-page.tsx
  • studio/react/src/modules/user-tasks/pages/list-page.tsx
  • studio/react/src/modules/workflow-definitions/call-graph/__tests__/edge-extractor.test.ts
  • studio/react/src/modules/workflow-definitions/call-graph/__tests__/helpers.ts
  • studio/react/src/modules/workflow-definitions/call-graph/call-graph-service.ts
  • studio/react/src/modules/workflow-definitions/call-graph/edge-extractor.ts
  • studio/react/src/modules/workflow-definitions/components/call-context/call-context-status.tsx
  • studio/react/src/modules/workflow-definitions/components/call-context/use-call-context.ts
  • studio/react/src/modules/workflow-definitions/components/code-view.tsx
  • studio/react/src/modules/workflow-definitions/components/create-workflow-dialog.tsx
  • studio/react/src/modules/workflow-definitions/components/data-usage.tsx
  • studio/react/src/modules/workflow-definitions/components/editor-header.tsx
  • studio/react/src/modules/workflow-definitions/components/editor-side-pane.tsx
  • studio/react/src/modules/workflow-definitions/components/inputs-outputs-tab.tsx
  • studio/react/src/modules/workflow-definitions/components/issues-popover.tsx
  • studio/react/src/modules/workflow-definitions/components/run-workflow-dialog.tsx
  • studio/react/src/modules/workflow-definitions/components/shortcuts-dialog.tsx
  • studio/react/src/modules/workflow-definitions/components/variables-tab.tsx
  • studio/react/src/modules/workflow-definitions/components/versions-tab.tsx
  • studio/react/src/modules/workflow-definitions/components/workflow-properties-pane.tsx
  • studio/react/src/modules/workflow-definitions/editor-context.tsx
  • studio/react/src/modules/workflow-definitions/hooks.ts
  • studio/react/src/modules/workflow-definitions/index.tsx
  • studio/react/src/modules/workflow-definitions/pages/editor-page.tsx
  • studio/react/src/modules/workflow-definitions/pages/list-page.tsx
  • studio/react/src/modules/workflow-instances/__tests__/journal-spans.test.ts
  • studio/react/src/modules/workflow-instances/components/activity-details-pane.tsx
  • studio/react/src/modules/workflow-instances/components/activity-executions-list.tsx
  • studio/react/src/modules/workflow-instances/components/date-filter-popover.tsx
  • studio/react/src/modules/workflow-instances/components/executions-table.tsx
  • studio/react/src/modules/workflow-instances/components/incidents-panel.tsx
  • studio/react/src/modules/workflow-instances/components/instance-details.tsx
  • studio/react/src/modules/workflow-instances/components/instance-filters.tsx
  • studio/react/src/modules/workflow-instances/components/instance-row-actions.tsx
  • studio/react/src/modules/workflow-instances/components/journal-tree.tsx
  • studio/react/src/modules/workflow-instances/components/multi-select.tsx
  • studio/react/src/modules/workflow-instances/components/variables-panel.tsx
  • studio/react/src/modules/workflow-instances/hooks.ts
  • studio/react/src/modules/workflow-instances/index.tsx
  • studio/react/src/modules/workflow-instances/model.ts
  • studio/react/src/modules/workflow-instances/pages/list-page.tsx
  • studio/react/src/modules/workflow-instances/pages/viewer-page.tsx
  • studio/react/src/providers.tsx
  • studio/react/tsconfig.json
  • studio/react/typedoc.json
  • studio/react/vite.config.ts
  • studio/react/vitest.config.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Member Author

@greptileai

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 293 files exceed the limit of 150.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@greptile-apps

greptile-apps Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] No outstanding findings block merging within the reviewed scope, subject to the editor-priority fix in PR #8954.

Summary

Extracts four unpublished Preview packages for the SDK, shared UI, API client, and authentication.

  • Studio modules can register versioned contributions through the SDK.
  • Elsa API calls and workflow types are available from a shared package.
  • Authentication strategies and permissions are available through a shared package.
  • React Studio's shared controls and theme styles are available from a UI package.
  • React Studio and its feature modules now consume the shared package exports.
  • Workspace tooling and a sample module show how consumers use the new packages.

No outstanding findings block merging within the reviewed scope, subject to the stated dependency on PR #8954.

Reviews (7) · Last reviewed commit: "Merge branch 'codex/8859-react-studio-vi..." · Reviewed by Greptile

Comment thread studio/react/packages/sdk/src/host.ts Outdated
Comment thread studio/react/packages/sdk/src/host.ts Outdated

Copy link
Copy Markdown
Member Author

@greptileai

Copy link
Copy Markdown
Member Author

@greptileai Please review integrated head d685ccb after the current-main merge.

Copy link
Copy Markdown
Member Author

@coderabbitai review

Current integrated head: d685ccb

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 293 files exceed the limit of 150.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

…dio-sdk

# Conflicts:
#	studio/react/src/modules/workflow-definitions/pages/editor-page.tsx
…dio-sdk

# Conflicts:
#	studio/react/src/modules/workflow-definitions/pages/editor-page.tsx

Copy link
Copy Markdown
Member Author

@greptileai Please review final integrated head 4b64403. The latest main is incorporated and the addressed findings are verified and resolved.

Copy link
Copy Markdown
Member Author

@coderabbitai review

Please re-review final integrated head 4b64403; verified fixes and latest main are included.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 293 files exceed the limit of 150.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

…dio-sdk

# Conflicts:
#	studio/react/src/modules/designer/__tests__/switch-slots.test.ts

Copy link
Copy Markdown
Member Author

@greptileai Please review pushed head d56f194. All six latest findings have independently verified fixes and resolved threads, with208unit/28host/49browser checks passing locally.

Copy link
Copy Markdown
Member Author

@coderabbitai review

Please re-review pushed head d56f194; the six latest verified fixes have landed and prior threads are resolved.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 293 files exceed the limit of 150.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Base automatically changed from codex/8859-react-studio-vite to main October 21, 2026 21:02

Copy link
Copy Markdown
Member Author

User-authorized self-review for #8859.

APPROVE + HIGH @ d56f194

Reviewed all four Preview SDK packages, public registration slots, deterministic order/id sorting, host/SDK major-version diagnostics and separation of authentication and API contracts from the core SDK. Package consumption and shared React/context behavior are covered by the external module proof.

The final adaptation source passes 221 unit, 28 hosting and 49 browser tests, lint/types, module-boundary and localization checks, and builds for net8/net9/net10. The final six findings and subsequent expression-alias/index and cached-culture findings were fixed with regression coverage before this merge.

At merge time, current-head CI is green, Greptile is 5/5 on this exact head, and the exhaustive stack thread audit records zero unresolved findings. This is an author self-review under the task owner's explicit standing self-review/self-merge authority, not an independent approval. Use the standard head-matched merge into main without changing protection or using an admin bypass.

@sfmskywalker
sfmskywalker merged commit 03ac30a into main Oct 21, 2026
11 of 12 checks passed
@sfmskywalker
sfmskywalker deleted the codex/8859-react-studio-sdk branch October 21, 2026 21:04
@sfmskywalker sfmskywalker mentioned this pull request Oct 21, 2026
20 of 24 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant