Skip to content

v0.36.0

Choose a tag to compare

@github-actions github-actions released this 30 Apr 09:23
· 100 commits to refs/heads/main since this release
a67d7b6

Summary

v0.36.0 introduces several breaking changes in preparation for the v1 release

How to migrate?

  1. Install the latest version of the skill
  2. Run the prompt: Migrate my app based on https://github.com/alpic-ai/skybridge/releases/tag/v0.36.0

registerWidget removed — merged into registerTool (PR #701)

The separate registerWidget call is gone. Widget/view config moves into registerTool as an optional view field:

// before
server.registerTool("my-tool", schema, handler)
server.registerWidget({ component: "my-view", ... })
// after
server.registerTool({ name: "my-tool", ...schema, view: { component: "my-view" } }, handler)

mountWidget removed from public API (PR #701)

The Vite plugin now auto-mounts views found in the views directory. Any manual mountWidget call should be removed.

// before
import { mountWidget } from "skybridge/web";

export default function SearchFlights() { ... }
mountWidget(<SearchFlights />)
// after
export default function SearchFlights() { ... }

skybridge/web import path renamed to skybridge/vite (PR #720)

The Vite plugin subpath export changed:

// before
import { skybridge } from "skybridge/web"
// after
import { skybridge } from "skybridge/vite"

server/ + web/ project layout dropped (PR #701)

The old two-directory layout (src/server/, src/web/) is no longer supported. Skybridge now uses a flat src/ tree with src/views/ for view files. The views directory is configurable in the provided skybridge plugin.

// before
├── server/
│   └── src/
│       └── index.ts
└── web/
    └── src/
        └── widgets/
            └── my-widget.tsx
// After
└── src/
    ├── server.ts
    └── views/
        └── my-view.tsx

All widget terminology renamed to view (PR #720)

useWidgetState renamed to useViewState

// before
import { useWidgetState } from "skybridge/web"
// after
import { useViewState } from "skybridge/vite"

widgetsDevServer renamed to viewsDevServer

// before
import { devtoolsStaticServer, widgetsDevServer } from "skybridge/server";
app.use(await widgetsDevServer());
// after
import { devtoolsStaticServer, viewsDevServer } from "skybridge/server";
app.use(await viewsDevServer());

Changes