|
1 | 1 | # Release Notes |
2 | 2 |
|
| 3 | +## v1.2.0 - Studio DX, REST Extraction, Dispatcher Plugin (2026-02-09) |
| 4 | + |
| 5 | +### 📦 Released Packages |
| 6 | + |
| 7 | +All packages updated to **1.2.0**: |
| 8 | + |
| 9 | +- **@objectstack/spec** — Core protocol definitions |
| 10 | +- **@objectstack/cli** — CLI toolchain |
| 11 | +- **@objectstack/core** — Kernel runtime |
| 12 | +- **@objectstack/runtime** — High-level Runtime |
| 13 | +- **@objectstack/rest** — REST API plugin (new) |
| 14 | +- **@objectstack/client** / **@objectstack/client-react** — Client libraries |
| 15 | +- **@objectstack/plugin-hono-server** — Hono HTTP server plugin |
| 16 | +- **@objectstack/hono** — Hono adapter |
| 17 | +- **@objectstack/objectql** — ObjectQL query engine |
| 18 | +- **@objectstack/metadata** — Metadata services |
| 19 | +- **@objectstack/driver-memory** — In-memory driver |
| 20 | + |
| 21 | +### ✨ New Features |
| 22 | + |
| 23 | +- **`@objectstack/rest`** — New dedicated package for REST API server, route management, `createRestApiPlugin()`. |
| 24 | +- **Dispatcher Plugin** (`@objectstack/runtime`) — Structured route management for auth, GraphQL, analytics, packages, hub, storage, automation via `createDispatcherPlugin()`. |
| 25 | +- **Dev Mode Studio UI** (`@objectstack/cli`) — `objectstack serve --dev` auto-enables Studio UI at `/_studio/`. Root `/` redirects to Studio in dev mode. Use `--no-ui` to disable. |
| 26 | +- **Interactive API Console** (`@objectstack/studio`) — Live request builder in Object Explorer: select endpoint → edit URL/body → Send → view formatted response with status, timing, and history. |
| 27 | +- **Studio Plugin System** (`@objectstack/spec`) — `Studio.PluginManifest` schema for extensible Studio UI plugins. |
| 28 | +- **MCP Protocol** (`@objectstack/spec`) — Model Context Protocol schemas for AI tools, resources, prompts, transport. |
| 29 | +- **API Versioning** (`@objectstack/spec`) — Schema for multiple versioning strategies (URL path, header, query). |
| 30 | +- **Kernel Hot Reload** (`@objectstack/core`) — Production hot reload with full plugin isolation and dynamic loading. |
| 31 | +- **Schema Annotations** (`@objectstack/spec`) — `.describe()` on all Zod fields for JSON Schema / IDE docs. |
| 32 | + |
| 33 | +### ⚠️ Migration Guide (from 1.1.0) |
| 34 | + |
| 35 | +#### RuntimeConfig.api removed |
| 36 | + |
| 37 | +```ts |
| 38 | +// Before (1.1.0) — implicit |
| 39 | +const runtime = new Runtime({ api: { basePath: '/api/v1' } }); |
| 40 | + |
| 41 | +// After (1.2.0) — explicit |
| 42 | +import { createRestApiPlugin } from '@objectstack/rest'; |
| 43 | +const runtime = new Runtime(); |
| 44 | +runtime.use(createRestApiPlugin({ basePath: '/api/v1' })); |
| 45 | +``` |
| 46 | + |
| 47 | +#### z.any() → z.unknown() (~30 fields) |
| 48 | + |
| 49 | +Fields like `metadata`, `defaultValue`, `filters`, `config`, `data` now use `z.unknown()`. Add type narrowing: |
| 50 | + |
| 51 | +```ts |
| 52 | +const meta = record.metadata as Record<string, string>; |
| 53 | +``` |
| 54 | + |
| 55 | +#### Hub schemas relocated |
| 56 | + |
| 57 | +- `hub/composer.zod.ts`, `hub/marketplace.zod.ts`, `hub/space.zod.ts`, `hub/hub-federation.zod.ts` — removed |
| 58 | +- `hub/plugin-registry` → `kernel/plugin-registry`, `hub/license` → `system/license`, `hub/tenant` → `system/tenant` |
| 59 | +- Barrel imports via `Hub.*` still work. Direct path imports need updating. |
| 60 | + |
| 61 | +#### MetricType renamed |
| 62 | + |
| 63 | +- `MetricType` (analytics) → `AggregationMetricType` |
| 64 | +- `MetricType` (licensing) → `LicenseMetricType` |
| 65 | + |
| 66 | +#### Deprecations |
| 67 | + |
| 68 | +- `HttpDispatcher` → `createDispatcherPlugin()` |
| 69 | +- `createHonoApp` → `HonoServerPlugin` |
| 70 | + |
| 71 | +--- |
| 72 | + |
3 | 73 | ## v0.4.1 - Version Synchronization (2026-01-27) |
4 | 74 |
|
5 | 75 | ### 📦 Released Packages |
|
0 commit comments