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
43 changes: 23 additions & 20 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

> Created: 2026-02-08 | Last Updated: 2026-02-14 | Status: **Active**
> Current Version: **4.2.1** (all packages aligned)
> Runtime: `@objectstack/cli` v3.0.3+ (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
> @objectstack Platform: **v3.0.3+**
> Runtime: `@objectstack/cli` v3.0.4 (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
> @objectstack Platform: **v3.0.4**
Comment on lines 4 to +6
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The header claims "Current Version: 4.2.1 (all packages aligned)" and lists runtime/platform as v3.0.4, but the repo root package.json is still version 4.2.0 and the @objectstack deps are specified as ranges (^3.0.4). Consider clarifying this as "published packages aligned" / "currently resolved to 3.0.4" or updating the root version to match, to avoid misleading version reporting.

Copilot uses AI. Check for mistakes.

---

Expand All @@ -26,7 +26,7 @@
- [Q3 — Edge Runtime & Offline Sync](#q3--edge-runtime--offline-sync)
- [Part A: Edge Runtime Support](#part-a-edge-runtime-support)
- [Part B: Offline-First Sync Protocol](#part-b-offline-first-sync-protocol)
- [Immediate Next Steps (Post v3.0.3 Upgrade)](#immediate-next-steps-post-v303-upgrade)
- [Immediate Next Steps (Post v3.0.4 Upgrade)](#immediate-next-steps-post-v304-upgrade)
- [Q4 — Plugin Marketplace & Stabilization](#q4--plugin-marketplace--stabilization)
- [Package Matrix](#package-matrix)
- [Removed Packages](#removed-packages)
Expand Down Expand Up @@ -63,7 +63,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.3+** (Zod v4 alignment)
- ✅ `@objectstack/*` platform upgraded to **v3.0.4** (Zod v4 alignment)
- ✅ Phase 7 partial (sideEffects), 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 @@ -735,19 +735,21 @@ Define wire format, `MutationLogEntry` schema, `SyncConflict` schema, checkpoint

---

## Immediate Next Steps (Post v3.0.3 Upgrade)
## Immediate Next Steps (Post v3.0.4 Upgrade)

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

Priority tasks following the `@objectstack` v3.0.3+ upgrade:
Priority tasks following the `@objectstack` v3.0.4 upgrade:

| # | Task | Priority | Description |
|---|------|----------|-------------|
| 1 | Fix `plugin-formula` integration tests | High | 6 pre-existing test failures in `formula-integration.test.ts` — formula fields evaluate to `undefined`. Root cause: hook registration / metadata lookup mismatch in FormulaPlugin. |
| 2 | Re-enable `AuthPlugin` | Medium | 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.3 Zod v4 schemas | High | Verify `z.infer<>` type derivation compiles correctly against the new Zod v4 schema exports in `@objectstack/spec@3.0.3`. |
| 4 | Core bridge class stabilization | Medium | Consolidate `app.ts` bridge class — verify all `registerObject`, `getObject`, `getConfigs`, `removePackage` overrides align with `@objectstack/objectql@3.0.3` API surface. |
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | Release patch with `@objectstack` v3.0.3 compatibility via Changesets. |
| # | Task | Priority | Status | Description |
|---|------|----------|--------|-------------|
| 1 | Fix `plugin-formula` integration tests | High | 🔴 Open | 6 pre-existing test failures in `formula-integration.test.ts` — formula fields evaluate to `undefined`. Root cause: hook registration / metadata lookup mismatch in FormulaPlugin (`afterFind` hook not triggered, `kernel.metadata.get()` vs `kernel.getObject()` mismatch). |
| 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.4 Zod v4 schemas | High | ✅ Done | `z.infer<>` type derivation compiles correctly against Zod v4 schema exports in `@objectstack/spec@3.0.4`. 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.4` API surface. Build verified. |
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | 🟡 Next | Release patch with `@objectstack` v3.0.4 compatibility via Changesets. |
| 6 | Reduce `any` usage in driver layer | Medium | 🔴 Open | `driver-sql` (54), `driver-memory` (51), `driver-redis` (48), `driver-mongo` (47) — tighten types for production reliability. |
| 7 | Structured logging framework | Low | 🔴 Open | Replace remaining `console.*` calls in drivers (`driver-sql`: 13, `driver-redis`: 19, `driver-mongo`: 4, `protocol-json-rpc`: 15) with hook-based structured logging. |

---

Expand Down Expand Up @@ -834,12 +836,13 @@ Standardize third-party plugin distribution.

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

---
Expand Down Expand Up @@ -884,7 +887,7 @@ Standardize third-party plugin distribution.

- **`@objectql/types`** correctly has ZERO production dependencies (pure types)
- **`@objectql/core`** depends on `plugin-formula` and `plugin-validator` — tight coupling noted
- All `@objectstack/*` packages are at **v3.0.3+** — aligned (Zod v4)
- All `@objectstack/*` packages are at **v3.0.4** — 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`

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.3",
"@objectstack/core": "^3.0.3",
"@objectstack/plugin-auth": "^3.0.3",
"@objectstack/plugin-hono-server": "^3.0.3",
"@objectstack/cli": "^3.0.4",
"@objectstack/core": "^3.0.4",
"@objectstack/plugin-auth": "^3.0.4",
"@objectstack/plugin-hono-server": "^3.0.4",
"@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.3",
"@objectstack/studio": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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 @@ -34,10 +34,10 @@
"@objectql/plugin-query": "workspace:*",
"@objectql/plugin-validator": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/core": "^3.0.3",
"@objectstack/objectql": "^3.0.3",
"@objectstack/runtime": "^3.0.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/objectql": "^3.0.4",
"@objectstack/runtime": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"zod": "^4.3.6"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/foundation/platform-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"dependencies": {
"@objectql/core": "workspace:*",
"@objectql/types": "workspace:*",
"@objectstack/spec": "^3.0.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.3"
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4"
},
"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.3",
"@objectstack/spec": "^3.0.3"
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4"
},
"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.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.3",
"@objectstack/core": "^3.0.4",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"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.3",
"@objectstack/core": "^3.0.4",
"@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.3",
"@objectstack/spec": "^3.0.4",
"zod": "^4.3.6"
},
"devDependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/protocol-tck": "workspace:*",
"@objectstack/core": "^3.0.3",
"@objectstack/core": "^3.0.4",
"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.3",
"@objectstack/spec": "^3.0.4",
"zod": "^4.3.6"
},
"devDependencies": {
"@objectql/driver-memory": "workspace:*",
"@objectql/protocol-tck": "workspace:*",
"@objectstack/core": "^3.0.3",
"@objectstack/core": "^3.0.4",
"typescript": "^5.3.3",
"vitest": "^1.0.4"
},
Expand Down
Loading