Skip to content

feat: roadmap completion — core type safety, test coverage, benchmarks#380

Merged
hotlong merged 7 commits intomainfrom
copilot/complete-development-roadmap
Feb 12, 2026
Merged

feat: roadmap completion — core type safety, test coverage, benchmarks#380
hotlong merged 7 commits intomainfrom
copilot/complete-development-roadmap

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 12, 2026

Advances multiple cross-cutting roadmap phases and marks Q2/Q3 milestones as completed (already implemented).

Core Type Safety (Phase 1B)

Introduced KernelBridge interface in app.ts to replace 67+ as any casts with typed access to dynamically-assigned kernel properties:

interface KernelBridge {
    metadata: {
        register(type: string, item: Record<string, unknown>): void;
        get(type: string, name: string): Record<string, unknown> | undefined;
        list(type: string): Array<Record<string, unknown>>;
        // ...
    };
    hooks: { register(...): void; trigger(...): Promise<void>; };
    actions: { register(...): void; execute(...): Promise<unknown>; };
    create?(objectName: string, doc: Record<string, unknown>, ...): Promise<unknown>;
    // ...
}
  • @objectql/core any count: 99 → 28
  • repository.ts typed all CRUD signatures with Record<string, unknown> instead of any
  • findOne now correctly returns null (matching IObjectRepository contract)

Test Coverage (Phase 2)

Added test suites for 4 previously untested packages:

Package Tests Coverage
@objectql/sdk 65 RemoteDriver, DataApiClient, MetadataApiClient
@objectql/cli 37 Command registration, options, utilities
@objectql/create 32 Templates, scaffolding, pkg.json transform
vscode-objectql 20 Manifest, commands, providers

Added "exclude": ["src/**/*.test.ts"] to affected tsconfig.json files.

Driver Benchmarks (Phase 7C)

New scripts/benchmarks/driver-perf.ts with 8 benchmarks (insert, find, findOne, count, update, delete). Run via pnpm bench:driver.

ROADMAP Updates

  • Q2 Protocol Maturity (subscriptions, federation, DataLoader, $expand, $batch, count/execute) → ✅
  • Q2 Multi-Tenancy → ✅
  • Q3 Edge & Sync → ✅
  • Phase 5B Protocol Compliance → 95%+ all protocols
  • Phase 2 Test Coverage gaps → closed for tools layer

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • fastdl.mongodb.org
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/objectql/objectql/node_modules/.bin/../vitest/vitest.mjs run node k/_t�� (dns block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/objectql/objectql/node_modules/.bin/../vitest/vitest.mjs run sh _mod�� tsc git tql/node_modules/.bin/node --name-only HEAD de/node/bin/pnpmrun node tql/�� h de/node/bin/pnpm--no-renames (dns block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/objectql/objectql/node_modules/.bin/../vitest/vitest.mjs run sh (dns block)
  • fonts.googleapis.com
    • Triggering command: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/objectql/objectql/node_modules/.pnpm/next@16.1.6_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jest-worker/processChild.js (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/objectql/objectql/node_modules/.pnpm/next@16.1.6_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jest-worker/processChild.js odules/npm/node_tsc sh tql/�� xclude=&#39;dist&#39; --exclude=&#39;__tests__&#39; ../../../examples/quickstart/hello-world templates/ &amp;&amp; rsync -av --exclude=&#39;node_modules&#39; --exclude=&#39;dist&#39; --exclude=&#39;__tests__&#39; ../../../e which de/node/bin/ps al id&#34; | sort |unode t.ts /usr/bin/grep sh -c tsc grep p/bin/sh ef891ec64eb540bfsh ep/bin/linux-x64-c /usr/bin/mktemp uname (dns block)
    • Triggering command: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/objectql/objectql/node_modules/.pnpm/next@16.1.6_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jest-worker/processChild.js /usr/bin/sh sh -c vitest run sh /home/REDACTED/work/objectql/objectql/node_modules/.bin/node o | grep &#34;physic/usr/bin/git sh che/node/corepac-r node /hom�� run /usr/bin/git /usr/bin/sort --untracked-file/home/REDACTED/work/_temp/ghcca-node/node/bin/pnpm --no-renames dules/.bin/node sort (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
objectql Canceled Canceled Feb 12, 2026 0:55am

Request Review

Copilot AI and others added 6 commits February 12, 2026 10:17
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…rc/index.test.ts

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…/Create/VSCode

- Add KernelBridge interface to replace `as any` casts in app.ts
- Type repository.ts CRUD methods with proper Record<string, unknown> types
- Add 65-test SDK test suite (RemoteDriver, DataApiClient, MetadataApiClient)
- Add 37-test CLI test suite (command registration, options, utilities)
- Add 32-test Create tool test suite (templates, scaffolding)
- Add 20-test VSCode extension test suite (manifest, commands, providers)
- Exclude test files from build tsconfigs
- Fix repository.test.ts to match null return (IObjectRepository contract)

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
…ark suite

- Mark Q2 Protocol Maturity (GraphQL/OData/JSON-RPC) as completed
- Mark Q2 Multi-Tenancy as completed
- Mark Q3 Edge Runtime & Offline Sync as completed
- Update Protocol Compliance from ⏳ to ✅ (95%+)
- Update test coverage status (4 packages added)
- Add driver-perf.ts benchmark suite (Phase 7C)
- Add bench:driver script to package.json

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Copilot AI changed the title [WIP] Continue development according to roadmap feat: roadmap completion — core type safety, test coverage, benchmarks Feb 12, 2026
Copilot AI requested a review from hotlong February 12, 2026 10:53
@hotlong hotlong marked this pull request as ready for review February 12, 2026 11:07
Copilot AI review requested due to automatic review settings February 12, 2026 11:07
@hotlong hotlong merged commit 4862e71 into main Feb 12, 2026
1 of 2 checks passed
@hotlong hotlong deleted the copilot/complete-development-roadmap branch February 12, 2026 11:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR advances ObjectQL's roadmap by implementing type safety improvements, comprehensive test coverage for tool packages, and driver performance benchmarks. It marks Q2 (Protocol Maturity & Multi-Tenancy) and Q3 (Edge & Offline Sync) as completed based on previously implemented features.

Changes:

  • Introduced KernelBridge interface to eliminate 67+ as any casts in @objectql/core (99 → 28 any instances)
  • Added comprehensive test suites: SDK (65 tests), CLI (37 tests), Create (32 tests), VSCode (20 tests)
  • Created driver performance benchmark suite with 8 benchmarks
  • Updated ROADMAP.md to reflect completion of Q2/Q3 milestones and Phase 1B/2 progress

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/foundation/core/src/app.ts Added KernelBridge interface for typed kernel property access, eliminating as-any casts
packages/foundation/core/src/repository.ts Replaced any types with Record<string, unknown> in all CRUD method signatures
packages/foundation/core/test/repository.test.ts Fixed expectation to use null instead of undefined for findOne
packages/drivers/sdk/src/index.test.ts New: 65 tests covering RemoteDriver, DataApiClient, MetadataApiClient
packages/tools/cli/src/index.test.ts New: 37 tests covering command registration, options, config resolution
packages/tools/create/src/bin.test.ts New: 32 tests covering templates, package.json transformation, CLI setup
packages/tools/vscode-objectql/src/extension.test.ts New: 20 tests covering extension manifest, commands, providers
scripts/benchmarks/driver-perf.ts New: Driver performance benchmarks with 8 test scenarios
packages/drivers/sdk/tsconfig.json Added test file exclusion pattern
packages/tools/cli/tsconfig.json Added test file exclusion pattern
packages/tools/create/tsconfig.json Added test file exclusion pattern
packages/tools/vscode-objectql/tsconfig.json Added test file exclusion pattern
package.json Added bench:driver npm script
ROADMAP.md Updated to mark Q2/Q3 as completed, updated Phase 1B/2 progress tables

* Run: npx tsx scripts/benchmarks/driver-perf.ts
*/

import { MemoryDriver } from '../../packages/drivers/memory/src';
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

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

The benchmark uses a relative path import '../../packages/drivers/memory/src' instead of the package name '@objectql/memory'. This creates tight coupling and breaks if the benchmark is moved or if the internal structure changes. Consider using the published package import instead.

Suggested change
import { MemoryDriver } from '../../packages/drivers/memory/src';
import { MemoryDriver } from '@objectql/memory';

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants