chore: v3.0 release prep — codebase scan, roadmap update, deprecation fixes#636
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Prepares the repo for the v3.0.0 release by updating roadmap/changelog documentation and correcting stale @deprecated notices that referenced already-shipped v2.x removals.
Changes:
- Updated deprecation JSDoc/describe text to target removal in
v3.0.0. - Rewrote
ROADMAP.mdwith updated scan metrics and an expanded Phase 8 deprecation inventory/checklist. - Added an
[Unreleased]section toCHANGELOG.mddocumenting the v3.0 removal plan and scan findings.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/spec/src/ui/action.zod.ts | Updates deprecated location field messaging to v3.0.0 timeline |
| packages/spec/src/kernel/plugin.zod.ts | Updates definePlugin() deprecation notice removal version |
| packages/spec/src/api/errors.zod.ts | Updates deprecation notices for error helper functions |
| packages/runtime/src/index.ts | Updates HttpDispatcher re-export deprecation notice removal version |
| ROADMAP.md | Updates v3.0 roadmap content, metrics snapshot, and deprecation cleanup plan |
| CHANGELOG.md | Adds [Unreleased] notes for v3.0 prep and planned removals |
| /** @deprecated Use createDispatcherPlugin() instead. Will be removed in v3.0.0. */ | ||
| export { HttpDispatcher } from './http-dispatcher.js'; |
There was a problem hiding this comment.
The deprecation notice for HttpDispatcher is updated on the re-export here, but the class-level JSDoc in packages/runtime/src/http-dispatcher.ts still says it "will be removed in v2". To fully fix the stale notice (as described in the PR), update the deprecation text in the class doc as well so the removal target is consistent (v3.0.0).
| ### Current State Snapshot (v2.0.7 — Scanned 2026-02-12) | ||
|
|
||
| | Metric | Value | Target | | ||
| |--------|-------|--------| | ||
| | `z.any()` in spec | 8 (filter operators only) | 8 ✅ | | ||
| | `z.unknown()` in spec | 180 | Stable ✅ | | ||
| | `z.any()` in spec | 9 (8 filter + 1 i18n) | 8 (filter only) | | ||
| | `z.unknown()` in spec | 404 | Stable ✅ | | ||
| | `z.date()` in spec (serialization risk) | 12 (all in filter.zod.ts) | 0 in non-filter schemas ✅ | | ||
| | `.describe()` annotations | 5,671+ | 5,600+ ✅ | | ||
| | Spec test files | 150 / 142 schemas | 100% ✅ | | ||
| | Runtime package test coverage | Sparse | Comprehensive | | ||
| | Adapter implementations | 3 stubs | 3 functional | | ||
| | `.describe()` annotations | 7,095 | 7,000+ ✅ | | ||
| | Spec schema files (`.zod.ts`) | 172 | Stable ✅ | | ||
| | Spec test files | 191 / 172 schemas | 100%+ ✅ | | ||
| | Spec test count | 5,165 | 5,000+ ✅ | | ||
| | Packages (all v2.0.7) | 19 | Unified ✅ | | ||
| | Runtime package test coverage | REST 37, Metadata 45, Adapters 72 | Comprehensive ✅ | | ||
| | Adapter implementations | 3 fully implemented + tested | 3 production-ready ✅ | |
There was a problem hiding this comment.
ROADMAP.md now reports updated scan metrics (191 test files / 5,165 tests), but the Phase 5 section later in the same document still contains older completion counts (e.g., 150 test files / 4,196 tests and 175 / 4,518). This internal inconsistency makes the roadmap harder to trust; update the Phase 5 numbers to match the current scan or clearly label them as historical-at-the-time metrics.
Full codebase scan of v2.0.7 (19 packages, 172 schemas, 191 test files, 5165 tests) to audit legacy issues and update the roadmap for v3.0.
Scan findings
@deprecateditems remaining: 14 in spec, 9 in runtime packagesz.any()outside filter schemas (ui/i18n.zod.ts) — flagged for tighteningz.instanceof(), 7095.describe()annotationsChanges
[Unreleased]entry listing all items scheduled for removal in v3.0.0kernel/plugin.zod.ts(definePlugin)api/errors.zod.ts(createErrorResponse,getHttpStatusForCategory)ui/action.zod.ts(locationfield)runtime/index.ts(HttpDispatcher)✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.