Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# ObjectQL — 2026 Roadmap

> Created: 2026-02-08 | Last Updated: 2026-02-16 | Status: **Active**
> Created: 2026-02-08 | Last Updated: 2026-02-20 | Status: **Active**
> Current Version: **4.2.2** (30 workspace packages; exceptions: root 4.2.0)
> Runtime: `@objectstack/cli` v3.0.6 (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
> @objectstack Platform: **v3.0.6**
> Runtime: `@objectstack/cli` v3.0.8 (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
> @objectstack Platform: **v3.0.8**

---

Expand Down Expand Up @@ -70,7 +70,7 @@ ObjectQL is the **Standard Protocol for AI Software Generation** — a universal

- ✅ Phases 1A (ObjectQLError migration), 3 (logging), 4 (ESLint all waves), 5A (TODO elimination), 5B (protocol compliance 95%+), 6 (error-handling + architecture guides)
- ✅ Core refactoring: `@objectql/core` decomposed from ~3,500 to ~800 LOC ([PR #373](https://github.com/objectstack-ai/objectql/pull/373))
- ✅ `@objectstack/*` platform upgraded to **v3.0.6** (Zod v4 alignment)
- ✅ `@objectstack/*` platform upgraded to **v3.0.8** (Zod v4 alignment)
- ✅ Phase 7 partial (sideEffects in 27 packages), Phase 2 (test suites for SDK, CLI, Create, VSCode)
- ✅ Q1 Phase 2: Browser WASM Drivers (`driver-sqlite-wasm`, `driver-pg-wasm`) implemented with docs and tests
- ✅ Q1 Phase 3: Housekeeping complete (H-1 through H-8), `plugin-workflow` implemented with full test suite
Expand Down Expand Up @@ -771,19 +771,19 @@ Define wire format, `MutationLogEntry` schema, `SyncConflict` schema, checkpoint

---

## Immediate Next Steps (Post v3.0.6 Upgrade)
## Immediate Next Steps (Post v3.0.8 Upgrade)

> Status: **Active** | Target: 2026-02 — 2026-03

Priority tasks following the `@objectstack` v3.0.6 upgrade:
Priority tasks following the `@objectstack` v3.0.8 upgrade:

| # | Task | Priority | Status | Description |
|---|------|----------|--------|-------------|
| 1 | Fix `plugin-formula` integration tests | High | ✅ Fixed | Previously 6 pre-existing test failures — now all pass (66/66 test tasks, including plugin-formula). |
| 2 | Re-enable `AuthPlugin` | Medium | 🔴 Open | Disabled due to camelCase field names (`createdAt`, `updatedAt`, `emailVerified`) violating ObjectQL snake_case spec. Coordinate with `@objectstack/plugin-auth` upstream or add field name normalization layer. |
| 3 | Align `@objectql/types` with `@objectstack/spec` v3.0.6 Zod v4 schemas | High | ✅ Done | `z.infer<>` type derivation compiles correctly against Zod v4 schema exports in `@objectstack/spec@3.0.6`. Verified via 36/36 build tasks passing. |
| 4 | Core bridge class stabilization | Medium | ✅ Done | `app.ts` bridge class — all `registerObject`, `getObject`, `getConfigs`, `removePackage` overrides align with `@objectstack/objectql@3.0.6` API surface. Build verified. |
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | 🟡 Next | Release patch with `@objectstack` v3.0.6 compatibility via Changesets. |
| 3 | Align `@objectql/types` with `@objectstack/spec` v3.0.8 Zod v4 schemas | High | ✅ Done | `z.infer<>` type derivation compiles correctly against Zod v4 schema exports in `@objectstack/spec@3.0.8`. Verified via 37/37 build tasks passing. |
| 4 | Core bridge class stabilization | Medium | ✅ Done | `app.ts` bridge class — all `registerObject`, `getObject`, `getConfigs`, `removePackage` overrides align with `@objectstack/objectql@3.0.8` API surface. Build verified. |
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | 🟡 Next | Release patch with `@objectstack` v3.0.8 compatibility via Changesets. |
| 6 | Reduce `any` usage in driver layer | Medium | 🟡 In Progress | `driver-memory` (40→8 ✅), `driver-fs` (14→2 ✅), `driver-excel` (12→2 ✅). Remaining: `driver-sql` (50), `driver-redis` (46), `driver-mongo` (44). |
| 7 | Structured logging framework | Low | 🔴 Open | Migrate `sdk` retry `console.log` and `types/logger.ts` fallback `console.error` to hook-based structured logging. |
| 8 | Add tests for `plugin-optimizations` and `plugin-query` | High | ✅ Done | Both packages now have comprehensive test suites — 202 tests across 4 test files. |
Expand All @@ -793,7 +793,7 @@ Priority tasks following the `@objectstack` v3.0.6 upgrade:

## `@objectql/core` Deprecation & Migration Plan

> Status: **Phases A–C Completed** | Constitutional Basis: `@objectstack/spec@3.0.6` Protocol Specification
> Status: **Phases A–C Completed** | Constitutional Basis: `@objectstack/spec@3.0.8` Protocol Specification
> Prerequisite: Core refactoring completed — [PR #373](https://github.com/objectstack-ai/objectql/pull/373) (~3,500 → 734 LOC thin bridge + plugin orchestrator)

**Goal:** Fully retire `@objectql/core` as a standalone package. The ObjectQL ecosystem transitions to a **pure plugin architecture** — no aggregator, no bridge, no intermediate layer. All capabilities are delivered as independent, composable `RuntimePlugin` instances registered directly with the `ObjectStackKernel`.
Expand Down Expand Up @@ -1016,13 +1016,13 @@ Standardize third-party plugin distribution.

| Package | Owner | Version | Role in ObjectQL |
|---------|-------|---------|-----------------|
| `@objectstack/cli` | ObjectStack | 3.0.6 | Kernel bootstrapper (`objectstack serve`) |
| `@objectstack/core` | ObjectStack | 3.0.6 | Kernel runtime, plugin lifecycle |
| `@objectstack/plugin-hono-server` | ObjectStack | 3.0.6 | HTTP server (Hono-based) |
| `@objectstack/spec` | ObjectStack | 3.0.6 | Formal protocol specifications (Zod schemas) |
| `@objectstack/runtime` | ObjectStack | 3.0.6 | Core runtime & query engine |
| `@objectstack/objectql` | ObjectStack | 3.0.6 | ObjectQL runtime bridge |
| `@objectstack/studio` | ObjectStack | 3.0.6 | Visual admin studio |
| `@objectstack/cli` | ObjectStack | 3.0.8 | Kernel bootstrapper (`objectstack serve`) |
| `@objectstack/core` | ObjectStack | 3.0.8 | Kernel runtime, plugin lifecycle |
| `@objectstack/plugin-hono-server` | ObjectStack | 3.0.8 | HTTP server (Hono-based) |
| `@objectstack/spec` | ObjectStack | 3.0.8 | Formal protocol specifications (Zod schemas) |
| `@objectstack/runtime` | ObjectStack | 3.0.8 | Core runtime & query engine |
| `@objectstack/objectql` | ObjectStack | 3.0.8 | ObjectQL runtime bridge |
| `@objectstack/studio` | ObjectStack | 3.0.8 | Visual admin studio |
| AI Agent / AI tooling | **Separate project** | — | Not in this monorepo |

---
Expand Down Expand Up @@ -1105,13 +1105,13 @@ Standardize third-party plugin distribution.

- **`@objectql/types`** correctly has ZERO production dependencies (pure types — imports `@objectstack/spec` as devDep only)
- **`@objectql/core`** depends on `plugin-formula` and `plugin-validator` — tight coupling noted (will be removed at v5.0)
- All `@objectstack/*` packages are at **v3.0.6** — aligned (Zod v4)
- All `@objectstack/*` packages are at **v3.0.8** — aligned (Zod v4)
- **`mingo`** (used in memory driver) is the only non-standard query engine dependency
- **`knex`** is shared across `driver-sql`, `driver-pg-wasm`, `driver-sqlite-wasm`

### @objectstack/spec Coverage Gap Analysis

`@objectstack/spec@3.0.6` exports ~3,100+ schemas across 16 sub-modules. ObjectQL currently implements 13 of these domains:
`@objectstack/spec@3.0.8` exports ~3,100+ schemas across 16 sub-modules. ObjectQL currently implements 13 of these domains:

| Spec Domain | Exports | @objectql Status | Notes |
|-------------|---------|-----------------|-------|
Expand Down Expand Up @@ -1207,7 +1207,7 @@ Standardize third-party plugin distribution.

## @objectstack/spec Protocol Alignment Status

> Spec Version: **3.0.6** | Zod v4 | 16 sub-modules, ~3,100+ schema exports
> Spec Version: **3.0.8** | Zod v4 | 16 sub-modules, ~3,100+ schema exports

ObjectQL implements the **data layer compiler** portion of the ObjectStack protocol. The following domains are within ObjectQL's scope:

Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
"@objectql/protocol-graphql": "workspace:*",
"@objectql/protocol-json-rpc": "workspace:*",
"@objectql/protocol-odata-v4": "workspace:*",
"@objectstack/cli": "^3.0.6",
"@objectstack/core": "^3.0.6",
"@objectstack/plugin-auth": "^3.0.6",
"@objectstack/plugin-hono-server": "^3.0.6",
"@objectstack/cli": "^3.0.8",
"@objectstack/core": "^3.0.8",
"@objectstack/plugin-auth": "^3.0.8",
"@objectstack/plugin-hono-server": "^3.0.8",
"@types/js-yaml": "^4.0.9",
"@types/node": "^20.10.0",
"@types/supertest": "^6.0.3",
Expand All @@ -61,7 +61,7 @@
"version": "4.2.0",
"dependencies": {
"@objectql/protocol-json-rpc": "workspace:*",
"@objectstack/studio": "^3.0.6",
"@objectstack/studio": "^3.0.8",
"build": "^0.1.4"
}
}
2 changes: 1 addition & 1 deletion packages/drivers/excel/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"dependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"exceljs": "^4.4.0",
"zod": "^4.3.6"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/fs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"dependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/memory/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"mingo": "^7.1.1",
"zod": "^4.3.6"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/mongo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"mongodb": "^5.9.2"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/pg-wasm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"@electric-sql/pglite": "^0.1.5",
"@objectql/driver-sql": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"knex": "^3.1.0",
"nanoid": "^3.3.11",
"zod": "^4.3.6"
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/redis/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"redis": "^4.6.0",
"zod": "^4.3.6"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/sql/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"knex": "^3.1.0",
"nanoid": "^3.3.11",
"zod": "^4.3.6"
Expand Down
2 changes: 1 addition & 1 deletion packages/drivers/sqlite-wasm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"dependencies": {
"@objectql/driver-sql": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"knex": "^3.1.0",
"nanoid": "^3.3.11",
"wa-sqlite": "^1.0.0",
Expand Down
8 changes: 4 additions & 4 deletions packages/foundation/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
"@objectql/plugin-query": "workspace:*",
"@objectql/plugin-validator": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/objectql": "^3.0.6",
"@objectstack/runtime": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/objectql": "^3.0.8",
"@objectstack/runtime": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/platform-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
"test": "vitest run"
},
"dependencies": {
"@objectstack/objectql": "^3.0.6",
"@objectstack/objectql": "^3.0.8",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"fast-glob": "^3.3.2",
"js-yaml": "^4.1.1"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-formula/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-multitenancy/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-optimizations/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6"
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8"
},
"devDependencies": {
"typescript": "^5.3.0"
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-query/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
"dependencies": {
"@objectql/types": "workspace:*",
"@objectql/plugin-optimizations": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6"
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8"
},
"devDependencies": {
"typescript": "^5.3.0"
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-security/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-validator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/foundation/plugin-workflow/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/spec": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/foundation/types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
},
"dependencies": {},
"devDependencies": {
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"ts-json-schema-generator": "^2.4.0",
"zod": "^4.3.6"
}
Expand Down
4 changes: 2 additions & 2 deletions packages/protocols/graphql/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"@as-integrations/express4": "^1.1.2",
"@graphql-tools/schema": "^10.0.2",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"cors": "^2.8.5",
"dataloader": "^2.2.2",
"express": "^4.18.2",
Expand All @@ -37,7 +37,7 @@
"devDependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/protocol-tck": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/core": "^3.0.8",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/ws": "^8.5.10",
Expand Down
4 changes: 2 additions & 2 deletions packages/protocols/json-rpc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/protocol-tck": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/core": "^3.0.8",
"typescript": "^5.3.3",
"vitest": "^1.0.4"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/protocols/odata-v4/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.6",
"@objectstack/spec": "^3.0.8",
"zod": "^4.3.6"
},
"devDependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/protocol-tck": "workspace:*",
"@objectstack/core": "^3.0.6",
"@objectstack/core": "^3.0.8",
"typescript": "^5.3.3",
"vitest": "^1.0.4"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/tools/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
},
"dependencies": {
"@objectql/types": "workspace:*",
"@objectstack/objectql": "^3.0.6",
"@objectstack/objectql": "^3.0.8",
"@objectql/core": "workspace:*",
"@objectql/plugin-validator": "workspace:*",
"@objectql/driver-sql": "workspace:*",
Expand Down
Loading