Skip to content

Commit f6595c9

Browse files
xuyushun441-sysos-zhuangclaude
authored
chore(deps): upgrade @objectstack to 10.2.0 and bump ObjectOS One to 10.2.0 (#26)
Bump all @objectstack/* dependencies in @objectos/server from ^9.7.0 to ^10.2.0 and refresh the lockfile. 10.x is a major over 9.x, but the break is confined to the multi-org tenancy layer — row-level org scoping split out of @objectstack/plugin-security into the opt-in @objectstack/plugin-org-scoping, and plugin-security no longer auto-creates personal workspaces — neither of which the single-tenant standalone runtime depends on. createStandaloneStack({ artifactPath, environmentId, databaseUrl }) is byte-for-byte the same contract, so apps/objectos/objectstack.config.ts needs no migration. type-check passes; os compile builds the artifact clean; the smoke runtime boots on 10.2.0 (driver-sql@10.2.0, single-tenant, server ready, HTTP 200 on /api/v1/meta and /api/v1/health). The 10.0 → 10.2 step is a minor bump with no new ObjectOS-facing HTTP surface: the GET /ready readiness handler added in 10.2 lives in the dispatcher core but is not wired into the standalone HonoServer route table yet (so /api/v1/ready still 404s — only /api/v1/health is reachable), and cluster leader-elected cron landed after the 10.2.0 cut. So the changelog's "10.x — current release train" highlights are unchanged; only the version anchors move. Propagate the resolved cli version (10.2.0) to apps/objectos-one package.json, tauri.conf.json and Cargo.toml via sync-version, and the Cargo.lock objectos-one entry. Docs: bump the "now ships on @objectstack" line to 10.2.0 and the compatibility-matrix anchor to 10.2.x across English + all six translations (de/es/fr/ja/ko/zh-Hans). apps/docs type-check (fumadocs-mdx + tsc) passes. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 72dcf14 commit f6595c9

13 files changed

Lines changed: 996 additions & 569 deletions

File tree

apps/objectos-one/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@objectos/one",
3-
"version": "9.7.0",
3+
"version": "10.2.0",
44
"private": true,
55
"license": "Apache-2.0",
66
"description": "ObjectOS One — all-in-one local distribution (Tauri shell + bundled Node runtime + DB).",

apps/objectos-one/src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/objectos-one/src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "objectos-one"
3-
version = "9.7.0"
3+
version = "10.2.0"
44
description = "ObjectOS One shell"
55
edition = "2021"
66
rust-version = "1.77"

apps/objectos-one/src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "ObjectOS",
4-
"version": "9.7.0",
4+
"version": "10.2.0",
55
"identifier": "ai.objectstack.objectos",
66
"build": {
77
"frontendDist": "../src",

apps/objectos/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
"type-check": "tsc --noEmit"
1414
},
1515
"dependencies": {
16-
"@objectstack/cli": "^9.7.0",
17-
"@objectstack/core": "^9.7.0",
18-
"@objectstack/driver-memory": "^9.7.0",
19-
"@objectstack/driver-sql": "^9.7.0",
20-
"@objectstack/metadata": "^9.7.0",
21-
"@objectstack/objectql": "^9.7.0",
22-
"@objectstack/runtime": "^9.7.0",
23-
"@objectstack/spec": "^9.7.0"
16+
"@objectstack/cli": "^10.2.0",
17+
"@objectstack/core": "^10.2.0",
18+
"@objectstack/driver-memory": "^10.2.0",
19+
"@objectstack/driver-sql": "^10.2.0",
20+
"@objectstack/metadata": "^10.2.0",
21+
"@objectstack/objectql": "^10.2.0",
22+
"@objectstack/runtime": "^10.2.0",
23+
"@objectstack/spec": "^10.2.0"
2424
},
2525
"devDependencies": {
2626
"@types/node": "^25.9.1",

content/docs/resources/changelog.de.mdx

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ ObjectOS folgt **[Semantic Versioning](https://semver.org/)**: `MAJOR.MINOR.PATC
1111

1212
| Versionssprung | Was es bedeutet | Was zu tun ist |
1313
|---|---|---|
14-
| **Patch** (`9.7.0 → 9.7.1`) | Fehlerbehebungen, keine Verhaltensänderung | Aktualisieren, keine App-Änderungen nötig |
15-
| **Minor** (`9.69.7`) | Neue Funktionen, abwärtskompatibel | Aktualisieren, optional neue Funktionen übernehmen |
16-
| **Major** (`89`) | Breaking Changes, in den Release Notes dokumentiert | Lesen Sie den Migrationsleitfaden vor dem Upgrade |
14+
| **Patch** (`10.0.0 → 10.0.1`) | Fehlerbehebungen, keine Verhaltensänderung | Aktualisieren, keine App-Änderungen nötig |
15+
| **Minor** (`10.010.1`) | Neue Funktionen, abwärtskompatibel | Aktualisieren, optional neue Funktionen übernehmen |
16+
| **Major** (`910`) | Breaking Changes, in den Release Notes dokumentiert | Lesen Sie den Migrationsleitfaden vor dem Upgrade |
1717

1818
Alle `@objectstack/*`-Pakete werden gemeinsam mit einer synchronisierten
1919
Versionsnummer veröffentlicht — sie werden als Matrix getestet, nicht einzeln.
@@ -22,7 +22,7 @@ Versionsnummer veröffentlicht — sie werden als Matrix getestet, nicht einzeln
2222

2323
| Komponente | Kompatibilitätsregel |
2424
|---|---|
25-
| ObjectOS-Image ↔ kompiliertes Artefakt | Gleiche Minor-Version. Ein 9.7.x-Image führt ein 9.7.x-Artefakt aus; ein 9.7-Artefakt kann Funktionen nutzen, die in einem 9.6-Image nicht verfügbar sind. |
25+
| ObjectOS-Image ↔ kompiliertes Artefakt | Gleiche Minor-Version. Ein 10.2.x-Image führt ein 10.2.x-Artefakt aus; ein 10.2-Artefakt kann Funktionen nutzen, die in einem 10.0-Image nicht verfügbar sind. |
2626
| ObjectOS ↔ CLI | Gleiche Minor-Version empfohlen. Die per `npm i -g` installierte CLI erzeugt Scaffolds, die auf ihre eigene Version gepinnt sind. |
2727
| ObjectOS ↔ Datenbanktreiber | Treiber durch den Image-Build gepinnt; prüfen Sie Postgres ≥ 13 / MongoDB ≥ 5 / Turso (jede aktuelle Version). |
2828
| Node.js | **20 LTS oder neuer**. 22 LTS empfohlen für neue Deployments. |
@@ -31,9 +31,9 @@ Versionsnummer veröffentlicht — sie werden als Matrix getestet, nicht einzeln
3131

3232
| Branch | Status | Bis |
3333
|---|---|---|
34-
| **9.x** (aktuell) | Aktive Entwicklung; neue Funktionen und Fixes | Mindestens 12 Monate nach dem Erscheinen von 10.0 |
35-
| **8.x** | Nur Sicherheitsfixes | EOL mit dem Release von 10.0 |
36-
| **7.x** | Nicht unterstützt | Bereits EOL |
34+
| **10.x** (aktuell) | Aktive Entwicklung; neue Funktionen und Fixes | Mindestens 12 Monate nach dem Erscheinen von 11.0 |
35+
| **9.x** | Nur Sicherheitsfixes | EOL mit dem Release von 11.0 |
36+
| **8.x** | Nicht unterstützt | Bereits EOL |
3737

3838
Kritische Sicherheitsfixes werden auf den aktuellen und den vorherigen
3939
Major-Branch zurückportiert. Alles andere landet auf `main`.
@@ -51,9 +51,53 @@ Abonnieren Sie Releases auf GitHub, um benachrichtigt zu werden.
5151

5252
## Aktuelle Highlights
5353

54-
### 9.x — aktueller Release-Zug
55-
56-
ObjectOS One und der gebündelte Server laufen jetzt auf `@objectstack` **9.7.0**.
54+
### 10.x — aktueller Release-Zug
55+
56+
ObjectOS One und der gebündelte Server laufen jetzt auf `@objectstack` **10.2.0**.
57+
Trotz des Major-Sprungs ist der Runtime-Boot-Vertrag unverändert —
58+
`createStandaloneStack` nimmt weiterhin dieselben Artefakt-, Umgebungs- und
59+
Datenbankeinstellungen entgegen — und jeder Breaking Change landet in der
60+
Multi-Org-Mandantenschicht, sodass ein **single-tenant ObjectOS-Deployment (der
61+
Standard) ohne Konfigurationsänderungen von 9.x weiterrollt**. Was sich bewegt hat:
62+
63+
- **Zeilenbezogenes Org-Scoping in ein eigenes Plugin ausgelagert** (10.0, Breaking) —
64+
das automatische Stempeln von `organization_id`, das Pro-Org-Seed-Replay und der
65+
Default-Org-Bootstrap wurden aus `@objectstack/plugin-security` in das optionale
66+
[`@objectstack/plugin-org-scoping`](https://www.npmjs.com/package/@objectstack/plugin-org-scoping)
67+
verschoben. Single-Org-Deployments sind schlanker (kein Wildcard-RLS, das bei jeder
68+
Abfrage entfernt werden muss), und `OS_MULTI_TENANT=true` registriert das Plugin
69+
weiterhin automatisch vor `plugin-security`, sodass per CLI gesteuerte Projekte keine
70+
Codeänderungen benötigen. Laut ADR-0002 ist ein *Tenant* physische Isolation (eine
71+
Umgebung = eine Datenbank); `organization_id` ist *logisches* Scoping innerhalb einer
72+
DB und verdient daher sein eigenes Plugin.
73+
- **Keine automatischen persönlichen Workspaces mehr** (10.0, Breaking) —
74+
`plugin-security` erstellt nicht mehr für jeden neuen Benutzer eine
75+
`<User>'s Workspace`"-Org. Benutzer nehmen jetzt eine Einladung an oder erstellen
76+
explizit ihre erste Organisation (das Slack-/Linear-/GitHub-Orgs-Modell). Der erste
77+
registrierte Benutzer — automatisch zum Plattform-Admin befördert — erhält im
78+
Multi-Tenant-Modus weiterhin eine einzige `Default Organization`, damit seine Session
79+
RLS auflöst; single-tenant Deployments erstellen keine Orgs.
80+
- **`record`-Formularfeldtyp** (ADR-0014) — `Record<string, X>`-Eigenschaften (etwa
81+
die `fields`-Map eines Objekts) sind jetzt als vollwertige Formularfelder in Studio
82+
editierbar, statt als rohes JSON durchzusickern, und der Objektvorschau-Bereich
83+
bindet den echten `ObjectGrid`-Renderer ein — was Sie in der Vorschau sehen, ist das,
84+
was ausgeliefert wird.
85+
- **Steckbare Embeddings über `IEmbedder`** — ein neues Embedder-Protokoll plus
86+
[`@objectstack/embedder-openai`](https://www.npmjs.com/package/@objectstack/embedder-openai);
87+
die Knowledge-/RAG-Adapter nutzen jetzt `IEmbedder` und wurden umbenannt, um das
88+
`plugin-`-Präfix abzulegen.
89+
- **Public Forms** — anonyme Web-to-Lead-/Web-to-Case-Formulare, bereitgestellt unter
90+
`/f/:slug`, eine einheitliche FormPage (öffentlich `/f/:slug` + intern
91+
`/forms/:name`), eine `type: 'form'`-Aktionsvariante und `defaultDetailForm` auf
92+
`ObjectSchema`.
93+
- **Cloud-Identitätstrennung**`os cloud login` ist jetzt von `os login` getrennt,
94+
die Cloud-Control-Plane wurde in ein privates Repo verschoben (eine schlankere
95+
OSS-Runtime), und `objectstack init` scaffoldet wieder ein Projekt, das baut und
96+
bootet.
97+
98+
### 9.x
99+
100+
Der 9.x-Zug lief auf `@objectstack` **9.0 – 9.11** vor dem 10.0-Umstieg.
57101
Der Runtime-Boot-Vertrag ist gegenüber 8.0 unverändert — `createStandaloneStack`
58102
nimmt weiterhin dieselben Artefakt-, Umgebungs- und Datenbankeinstellungen entgegen —,
59103
sodass ein 8.0-Deployment ohne Konfigurationsänderungen weiterrollt. Was sich

content/docs/resources/changelog.es.mdx

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ ObjectOS sigue el **[Versionado semántico](https://semver.org/)**: `MAJOR.MINOR
1111

1212
| Incremento de versión | Qué significa | Qué hacer |
1313
|---|---|---|
14-
| **Parche** (`9.7.0 → 9.7.1`) | Corrección de errores, sin cambios de comportamiento | Actualiza, no se requieren cambios en la aplicación |
15-
| **Menor** (`9.69.7`) | Nuevas funciones, compatible con versiones anteriores | Actualiza y, opcionalmente, adopta las nuevas funciones |
16-
| **Mayor** (`89`) | Cambios incompatibles documentados en las notas de versión | Lee la guía de migración antes de actualizar |
14+
| **Parche** (`10.0.0 → 10.0.1`) | Corrección de errores, sin cambios de comportamiento | Actualiza, no se requieren cambios en la aplicación |
15+
| **Menor** (`10.010.1`) | Nuevas funciones, compatible con versiones anteriores | Actualiza y, opcionalmente, adopta las nuevas funciones |
16+
| **Mayor** (`910`) | Cambios incompatibles documentados en las notas de versión | Lee la guía de migración antes de actualizar |
1717

1818
Todos los paquetes `@objectstack/*` se publican juntos con un número de
1919
versión sincronizado: se prueban como una matriz, no de forma independiente.
@@ -22,7 +22,7 @@ versión sincronizado: se prueban como una matriz, no de forma independiente.
2222

2323
| Componente | Regla de compatibilidad |
2424
|---|---|
25-
| Imagen de ObjectOS ↔ artefacto compilado | Misma versión menor. Una imagen 9.7.x ejecuta un artefacto 9.7.x; un artefacto 9.7 puede usar funciones no disponibles en una imagen 9.6. |
25+
| Imagen de ObjectOS ↔ artefacto compilado | Misma versión menor. Una imagen 10.2.x ejecuta un artefacto 10.2.x; un artefacto 10.2 puede usar funciones no disponibles en una imagen 10.0. |
2626
| ObjectOS ↔ CLI | Se recomienda la misma versión menor. La CLI en `npm i -g` genera andamiajes fijados a su propia versión. |
2727
| ObjectOS ↔ controlador de base de datos | El controlador queda fijado por la compilación de la imagen; verifica Postgres ≥ 13 / MongoDB ≥ 5 / Turso (cualquiera actual). |
2828
| Node.js | **20 LTS o posterior**. Se recomienda 22 LTS para nuevos despliegues. |
@@ -31,9 +31,9 @@ versión sincronizado: se prueban como una matriz, no de forma independiente.
3131

3232
| Rama | Estado | Hasta |
3333
|---|---|---|
34-
| **9.x** (actual) | Desarrollo activo; nuevas funciones y correcciones | Al menos 12 meses después del lanzamiento de 10.0 |
35-
| **8.x** | Solo correcciones de seguridad | EOL en el lanzamiento de 10.0 |
36-
| **7.x** | Sin soporte | Ya en EOL |
34+
| **10.x** (actual) | Desarrollo activo; nuevas funciones y correcciones | Al menos 12 meses después del lanzamiento de 11.0 |
35+
| **9.x** | Solo correcciones de seguridad | EOL en el lanzamiento de 11.0 |
36+
| **8.x** | Sin soporte | Ya en EOL |
3737

3838
Las correcciones de seguridad críticas se retroportan a la versión mayor
3939
actual y a la anterior. Todo lo demás se incorpora en `main`.
@@ -51,9 +51,58 @@ Suscríbete a las versiones en GitHub para recibir notificaciones.
5151

5252
## Aspectos destacados recientes
5353

54-
### 9.x — tren de versiones actual
55-
56-
ObjectOS One y el servidor incluido ahora se ejecutan sobre `@objectstack` **9.7.0**.
54+
### 10.x — tren de versiones actual
55+
56+
ObjectOS One y el servidor incluido ahora se ejecutan sobre `@objectstack` **10.2.0**.
57+
A pesar del salto de versión mayor, el contrato de arranque del runtime no cambia
58+
`createStandaloneStack` sigue tomando el mismo artefacto, entorno y ajustes de
59+
base de datos— y todos los cambios incompatibles caen en la capa de tenencia
60+
multi-organización, por lo que un **despliegue de ObjectOS de inquilino único
61+
(el predeterminado) actualiza desde 9.x sin cambios de configuración**. Lo que se
62+
movió:
63+
64+
- **El alcance por organización a nivel de fila se separó en su propio plugin**
65+
(10.0, cambio incompatible): el autosellado de `organization_id`, la repetición
66+
de seeds por organización y el arranque de la organización predeterminada se
67+
movieron de `@objectstack/plugin-security` al plugin opcional
68+
[`@objectstack/plugin-org-scoping`](https://www.npmjs.com/package/@objectstack/plugin-org-scoping).
69+
Los despliegues de una sola organización son más ligeros (no hay RLS comodín que
70+
eliminar en cada consulta), y `OS_MULTI_TENANT=true` sigue registrando
71+
automáticamente el plugin por delante de `plugin-security`, por lo que los
72+
proyectos gestionados por la CLI no necesitan cambios de código. Según el
73+
ADR-0002, un *tenant* es aislamiento físico (un Environment = una base de datos);
74+
`organization_id` es alcance *lógico* dentro de una misma BD, así que merece su
75+
propio plugin.
76+
- **Se acabaron los espacios de trabajo personales automáticos** (10.0, cambio
77+
incompatible): `plugin-security` ya no crea una organización «`<User>'s
78+
Workspace`» para cada nuevo usuario. Ahora los usuarios aceptan una invitación o
79+
crean explícitamente su primera organización (el modelo de Slack / Linear /
80+
GitHub-Orgs). El primer usuario registrado —autopromovido a administrador de la
81+
plataforma— sigue obteniendo una única `Default Organization` en modo
82+
multi-inquilino para que su sesión resuelva el RLS; los despliegues de inquilino
83+
único no crean ninguna organización.
84+
- **Tipo de campo de formulario `record`** (ADR-0014): las propiedades
85+
`Record<string, X>` (como el mapa `fields` de un objeto) ahora son editables como
86+
campos de formulario de primera clase en Studio, en lugar de filtrarse como JSON
87+
en bruto, y el panel de previsualización del objeto monta el renderizador real
88+
`ObjectGrid`: lo que previsualizas es lo que se publica.
89+
- **Embeddings conectables mediante `IEmbedder`**: un nuevo protocolo de embedder
90+
junto con
91+
[`@objectstack/embedder-openai`](https://www.npmjs.com/package/@objectstack/embedder-openai);
92+
los adaptadores de conocimiento / RAG ahora consumen `IEmbedder` y se
93+
renombraron para eliminar el prefijo `plugin-`.
94+
- **Formularios públicos**: formularios anónimos de Web-to-Lead / Web-to-Case
95+
servidos en `/f/:slug`, una FormPage unificada (`/f/:slug` público + `/forms/:name`
96+
interno), una variante de acción `type: 'form'` y `defaultDetailForm` en
97+
`ObjectSchema`.
98+
- **Separación de la identidad en la nube**: `os cloud login` ahora es independiente
99+
de `os login`, el plano de control de la nube se movió a un repositorio privado
100+
(un runtime OSS más ligero), y `objectstack init` vuelve a generar un proyecto que
101+
compila y arranca.
102+
103+
### 9.x
104+
105+
El tren 9.x se ejecutó sobre `@objectstack` **9.0 – 9.11** antes del cambio a 10.0.
57106
El contrato de arranque del runtime no cambia respecto a 8.0 —
58107
`createStandaloneStack` sigue tomando el mismo artefacto, entorno y ajustes de
59108
base de datos—, por lo que un despliegue 8.0 actualiza sin cambios de

0 commit comments

Comments
 (0)