Skip to content

Commit 2c39775

Browse files
authored
Merge pull request #389 from objectstack-ai/copilot/upgrade-objectstack-to-latest-again
2 parents d25a2a7 + 43746b8 commit 2c39775

25 files changed

Lines changed: 103 additions & 100 deletions

File tree

ROADMAP.md

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
> Created: 2026-02-08 | Last Updated: 2026-02-14 | Status: **Active**
44
> Current Version: **4.2.1** (all packages aligned)
5-
> Runtime: `@objectstack/cli` v3.0.3+ (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
6-
> @objectstack Platform: **v3.0.3+**
5+
> Runtime: `@objectstack/cli` v3.0.4 (Kernel pattern) — `@objectql/server` removed, `packages/runtime/` removed.
6+
> @objectstack Platform: **v3.0.4**
77
88
---
99

@@ -26,7 +26,7 @@
2626
- [Q3 — Edge Runtime & Offline Sync](#q3--edge-runtime--offline-sync)
2727
- [Part A: Edge Runtime Support](#part-a-edge-runtime-support)
2828
- [Part B: Offline-First Sync Protocol](#part-b-offline-first-sync-protocol)
29-
- [Immediate Next Steps (Post v3.0.3 Upgrade)](#immediate-next-steps-post-v303-upgrade)
29+
- [Immediate Next Steps (Post v3.0.4 Upgrade)](#immediate-next-steps-post-v304-upgrade)
3030
- [Q4 — Plugin Marketplace & Stabilization](#q4--plugin-marketplace--stabilization)
3131
- [Package Matrix](#package-matrix)
3232
- [Removed Packages](#removed-packages)
@@ -63,7 +63,7 @@ ObjectQL is the **Standard Protocol for AI Software Generation** — a universal
6363

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

736736
---
737737

738-
## Immediate Next Steps (Post v3.0.3 Upgrade)
738+
## Immediate Next Steps (Post v3.0.4 Upgrade)
739739

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

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

744-
| # | Task | Priority | Description |
745-
|---|------|----------|-------------|
746-
| 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. |
747-
| 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. |
748-
| 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`. |
749-
| 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. |
750-
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | Release patch with `@objectstack` v3.0.3 compatibility via Changesets. |
744+
| # | Task | Priority | Status | Description |
745+
|---|------|----------|--------|-------------|
746+
| 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). |
747+
| 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. |
748+
| 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. |
749+
| 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. |
750+
| 5 | Bump `@objectql/*` packages to **4.3.0** | Low | 🟡 Next | Release patch with `@objectstack` v3.0.4 compatibility via Changesets. |
751+
| 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. |
752+
| 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. |
751753

752754
---
753755

@@ -834,12 +836,13 @@ Standardize third-party plugin distribution.
834836

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

845848
---
@@ -884,7 +887,7 @@ Standardize third-party plugin distribution.
884887

885888
- **`@objectql/types`** correctly has ZERO production dependencies (pure types)
886889
- **`@objectql/core`** depends on `plugin-formula` and `plugin-validator` — tight coupling noted
887-
- All `@objectstack/*` packages are at **v3.0.3+** — aligned (Zod v4)
890+
- All `@objectstack/*` packages are at **v3.0.4** — aligned (Zod v4)
888891
- **`mingo`** (used in memory driver) is the only non-standard query engine dependency
889892
- **`knex`** is shared across `driver-sql`, `driver-pg-wasm`, `driver-sqlite-wasm`
890893

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
"@objectql/protocol-graphql": "workspace:*",
3636
"@objectql/protocol-json-rpc": "workspace:*",
3737
"@objectql/protocol-odata-v4": "workspace:*",
38-
"@objectstack/cli": "^3.0.3",
39-
"@objectstack/core": "^3.0.3",
40-
"@objectstack/plugin-auth": "^3.0.3",
41-
"@objectstack/plugin-hono-server": "^3.0.3",
38+
"@objectstack/cli": "^3.0.4",
39+
"@objectstack/core": "^3.0.4",
40+
"@objectstack/plugin-auth": "^3.0.4",
41+
"@objectstack/plugin-hono-server": "^3.0.4",
4242
"@types/js-yaml": "^4.0.9",
4343
"@types/node": "^20.10.0",
4444
"@types/supertest": "^6.0.3",
@@ -61,7 +61,7 @@
6161
"version": "4.2.0",
6262
"dependencies": {
6363
"@objectql/protocol-json-rpc": "workspace:*",
64-
"@objectstack/studio": "^3.0.3",
64+
"@objectstack/studio": "^3.0.4",
6565
"build": "^0.1.4"
6666
}
6767
}

packages/drivers/excel/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"dependencies": {
3030
"@objectql/driver-memory": "workspace:*",
3131
"@objectql/types": "workspace:*",
32-
"@objectstack/spec": "^3.0.3",
32+
"@objectstack/spec": "^3.0.4",
3333
"exceljs": "^4.4.0",
3434
"zod": "^4.3.6"
3535
},

packages/drivers/fs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"dependencies": {
3535
"@objectql/driver-memory": "workspace:*",
3636
"@objectql/types": "workspace:*",
37-
"@objectstack/spec": "^3.0.3",
37+
"@objectstack/spec": "^3.0.4",
3838
"zod": "^4.3.6"
3939
},
4040
"devDependencies": {

packages/drivers/memory/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"dependencies": {
3030
"@objectql/types": "workspace:*",
31-
"@objectstack/spec": "^3.0.3",
31+
"@objectstack/spec": "^3.0.4",
3232
"mingo": "^7.1.1",
3333
"zod": "^4.3.6"
3434
},

packages/drivers/mongo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"dependencies": {
3030
"@objectql/types": "workspace:*",
31-
"@objectstack/spec": "^3.0.3",
31+
"@objectstack/spec": "^3.0.4",
3232
"mongodb": "^5.9.2"
3333
},
3434
"devDependencies": {

packages/drivers/pg-wasm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"@electric-sql/pglite": "^0.1.5",
3535
"@objectql/driver-sql": "workspace:*",
3636
"@objectql/types": "workspace:*",
37-
"@objectstack/spec": "^3.0.3",
37+
"@objectstack/spec": "^3.0.4",
3838
"knex": "^3.1.0",
3939
"nanoid": "^3.3.11",
4040
"zod": "^4.3.6"

packages/drivers/redis/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
},
2828
"dependencies": {
2929
"@objectql/types": "workspace:*",
30-
"@objectstack/spec": "^3.0.3",
30+
"@objectstack/spec": "^3.0.4",
3131
"redis": "^4.6.0",
3232
"zod": "^4.3.6"
3333
},

packages/drivers/sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
},
3939
"dependencies": {
4040
"@objectql/types": "workspace:*",
41-
"@objectstack/spec": "^3.0.3",
41+
"@objectstack/spec": "^3.0.4",
4242
"zod": "^4.3.6"
4343
},
4444
"devDependencies": {

packages/drivers/sql/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
},
3131
"dependencies": {
3232
"@objectql/types": "workspace:*",
33-
"@objectstack/spec": "^3.0.3",
33+
"@objectstack/spec": "^3.0.4",
3434
"knex": "^3.1.0",
3535
"nanoid": "^3.3.11",
3636
"zod": "^4.3.6"

0 commit comments

Comments
 (0)