11# ObjectOS Roadmap
22
3- > ** Version** : 7 .0.0
3+ > ** Version** : 8 .0.0
44> ** Date** : February 12, 2026
5- > ** Status** : Phase M — Technical Debt Resolution
5+ > ** Status** : Phase M — Technical Debt Resolution ✅ COMPLETE
66> ** Spec SDK** : ` @objectstack/spec@2.0.7 `
77> ** ObjectUI** : ` @object-ui/*@2.0.0 `
88
@@ -249,28 +249,28 @@ Integrate `@objectos/browser` with the Admin Console for offline-first capabilit
249249
250250| # | Task | TD | Priority | Status |
251251| ---| ------| :--:| :--------:| :------:|
252- | M.1.1 | Rate limiting middleware — sliding-window counter on ` /api/v1/* ` with per-IP/per-user throttling | TD-3 | 🔴 | ⬜ |
253- | M.1.2 | Input sanitization middleware — body size limit, XSS stripping, Zod validation factory | TD-4 | 🔴 | ⬜ |
254- | M.1.3 | WebSocket auth enforcement — token extraction from cookie/protocol header, session verification | TD-5 | 🟡 | ⬜ |
255- | M.1.4 | Mock data tree-shaking — ` DevDataProvider ` , dynamic imports, ` VITE_USE_MOCK_DATA ` env flag | TD-8 | 🟡 | ⬜ |
252+ | M.1.1 | Rate limiting middleware — sliding-window counter on ` /api/v1/* ` with per-IP/per-user throttling | TD-3 | 🔴 | ✅ |
253+ | M.1.2 | Input sanitization middleware — body size limit, XSS stripping, Zod validation factory | TD-4 | 🔴 | ✅ |
254+ | M.1.3 | WebSocket auth enforcement — token extraction from cookie/protocol header, session verification | TD-5 | 🟡 | ✅ |
255+ | M.1.4 | Mock data tree-shaking — ` DevDataProvider ` , dynamic imports, ` VITE_USE_MOCK_DATA ` env flag | TD-8 | 🟡 | ✅ |
256256
257257### M.2 — Infrastructure (v1.1.0 — Target: April 2026)
258258
259259| # | Task | TD | Priority | Status |
260260| ---| ------| :--:| :--------:| :------:|
261- | M.2.1 | Event bus persistence — ` PersistentJobStorage ` backed by SQLite via ` @objectos/storage ` | TD-1 | 🟡 | ⬜ |
262- | M.2.2 | Dead Letter Queue + Replay API — DLQ table , ` replayEvent ()` , admin endpoint | TD-1 | 🟡 | ⬜ |
263- | M.2.3 | Schema migration engine — ` SchemaDiffer ` , ` MigrationGenerator ` , ` MigrationRunner ` | TD-2 | 🟡 | ⬜ |
264- | M.2.4 | ` objectstack migrate ` CLI — up/down/status commands | TD-2 | 🟡 | ⬜ |
265- | M.2.5 | Browser sync E2E tests — 5 Playwright tests covering full sync lifecycle | TD-6 | 🟡 | ⬜ |
261+ | M.2.1 | Event bus persistence — ` PersistentJobStorage ` backed by ` @objectos/storage ` | TD-1 | 🟡 | ✅ |
262+ | M.2.2 | Dead Letter Queue + Replay API — DLQ, ` replayDeadLetter ()` , ` purgeDeadLetters() ` | TD-1 | 🟡 | ✅ |
263+ | M.2.3 | Schema migration engine — ` SchemaDiffer ` , ` MigrationGenerator ` , ` MigrationRunnerImpl ` | TD-2 | 🟡 | ✅ |
264+ | M.2.4 | ` objectstack migrate ` CLI — ` MigrationCLI ` with up/down/status commands | TD-2 | 🟡 | ✅ |
265+ | M.2.5 | Browser sync E2E tests — 5 Playwright specs covering sync lifecycle | TD-6 | 🟡 | ✅ |
266266
267267### M.3 — Platform Hardening (v2.0.0 — Target: September 2026)
268268
269269| # | Task | TD | Priority | Status |
270270| ---| ------| :--:| :--------:| :------:|
271- | M.3.1 | Worker Thread plugin host — Level 1 isolation via ` worker_threads ` | TD-7 | 🟢 | ⬜ |
272- | M.3.2 | Child Process plugin host — Level 2 isolation via ` child_process.fork() ` | TD-7 | 🟢 | ⬜ |
273- | M.3.3 | Plugin watchdog — auto-restart with backoff, resource limit enforcement | TD-7 | 🟢 | ⬜ |
271+ | M.3.1 | Worker Thread plugin host — Level 1 isolation via ` worker_threads ` | TD-7 | 🟢 | ✅ |
272+ | M.3.2 | Child Process plugin host — Level 2 isolation via ` child_process.fork() ` | TD-7 | 🟢 | ✅ |
273+ | M.3.3 | Plugin watchdog — auto-restart with backoff, resource limit enforcement | TD-7 | 🟢 | ✅ |
274274
275275---
276276
@@ -293,33 +293,33 @@ Integrate `@objectos/browser` with the Admin Console for offline-first capabilit
293293
294294### v1.0.1 — Security Hardening (Target: March 2026)
295295
296- - Phase M.1: Critical Security
297- - Rate limiting middleware (TD-3) 🔴
298- - Input sanitization middleware (TD-4) 🔴
299- - WebSocket auth enforcement (TD-5) 🟡
300- - Mock data tree-shaking (TD-8) 🟡
296+ - Phase M.1: Critical Security ✅
297+ - Rate limiting middleware (TD-3) ✅
298+ - Input sanitization middleware (TD-4) ✅
299+ - WebSocket auth enforcement (TD-5) ✅
300+ - Mock data tree-shaking (TD-8) ✅
301301
302302### v1.1.0 — Rich Business UI + Infrastructure (Target: April 2026)
303303
304- - Phase I: Rich Data Experience (inline editing, bulk actions, filters)
305- - Phase J.1-J.2: Visual Flow Editor, Approval Inbox
306- - Phase M.2: Infrastructure
307- - Event bus persistence + DLQ (TD-1) 🟡
308- - Schema migration engine (TD-2) 🟡
309- - Browser sync E2E tests (TD-6) 🟡
304+ - Phase I: Rich Data Experience (inline editing, bulk actions, filters) ✅
305+ - Phase J.1-J.2: Visual Flow Editor, Approval Inbox ✅
306+ - Phase M.2: Infrastructure ✅
307+ - Event bus persistence + DLQ (TD-1) ✅
308+ - Schema migration engine (TD-2) ✅
309+ - Browser sync E2E tests (TD-6) ✅
310310
311311### v1.2.0 — Enterprise Features (Target: June 2026)
312312
313- - Phase J.3-J.6: Full Workflow & Automation UI
314- - Phase K: Offline & Sync
313+ - Phase J.3-J.6: Full Workflow & Automation UI ✅
314+ - Phase K: Offline & Sync ✅
315315- Multi-tenancy data isolation
316316- OpenTelemetry integration
317317
318318### v2.0.0 — Platform (Target: September 2026)
319319
320- - Phase L: Polish & Performance
321- - Phase M.3: Platform Hardening
322- - Plugin isolation (Worker Threads + Child Process) (TD-7) 🟢
320+ - Phase L: Polish & Performance ✅
321+ - Phase M.3: Platform Hardening ✅
322+ - Plugin isolation (Worker Threads + Child Process) (TD-7) ✅
323323- Plugin Marketplace
324324- Dynamic Plugin Loading (Module Federation)
325325- AI Agent Framework
@@ -440,14 +440,14 @@ User Action → React Component → @object-ui/react SchemaRenderer
440440
441441| # | Area | Details | Priority | Phase | Status |
442442| ---| ------| ---------| :--------:| :-----:| :------:|
443- | 1 | Event bus persistence | In-memory only; no DLQ or replay | 🟡 | M.2 | ⬜ |
444- | 2 | Schema migrations | No version-controlled schema evolution | 🟡 | M.2 | ⬜ |
445- | 3 | Rate limiting | Not implemented at HTTP layer | 🔴 | M.1 | ⬜ |
446- | 4 | Input sanitization | Zod schema validation only; no HTTP-level protection | 🔴 | M.1 | ⬜ |
447- | 5 | Realtime auth | WebSocket auth not enforced | 🟡 | M.1 | ⬜ |
448- | 6 | Browser sync E2E | Sync protocol needs E2E testing | 🟡 | M.2 | ⬜ |
449- | 7 | Plugin isolation | Plugins share process | 🟢 | M.3 | ⬜ |
450- | 8 | Mock data dependency | UI relies on mock data when server is down | 🟡 | M.1 | ⬜ |
443+ | 1 | Event bus persistence | ` PersistentJobStorage ` with DLQ and replay | 🟡 | M.2 | ✅ |
444+ | 2 | Schema migrations | ` SchemaDiffer ` + ` MigrationRunnerImpl ` + ` MigrationCLI ` | 🟡 | M.2 | ✅ |
445+ | 3 | Rate limiting | Sliding-window counter on ` /api/v1/* ` | 🔴 | M.1 | ✅ |
446+ | 4 | Input sanitization | Body limit + XSS strip + content-type guard + Zod validate | 🔴 | M.1 | ✅ |
447+ | 5 | Realtime auth | WebSocket auth enforced via cookie/protocol/query token | 🟡 | M.1 | ✅ |
448+ | 6 | Browser sync E2E | 5 Playwright E2E test specs for sync lifecycle | 🟡 | M.2 | ✅ |
449+ | 7 | Plugin isolation | ` WorkerThreadPluginHost ` , ` ChildProcessPluginHost ` , ` PluginWatchdog ` | 🟢 | M.3 | ✅ |
450+ | 8 | Mock data dependency | DevDataProvider + tree-shaking via ` __mocks__/ ` | 🟡 | M.1 | ✅ |
451451
452452---
453453
0 commit comments