Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… retrospective Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
|
能否彻底删除 @objectql/core ,直接使用 @objectstack/objectql @copilot |
技术上可以,但需要较大范围的重构。当前 1. Bridge class ( 2. Plugin orchestrator ( 3. Schema utilities ( 当前依赖规模: 9 个 package.json + 17 个 TypeScript 文件有 如要彻底删除,需要:
建议作为单独的 issue 跟踪此工作(对应 v5.0 计划),不在本文档 PR 中实施。 |
There was a problem hiding this comment.
Pull request overview
Updates DESIGN_CORE_REFACTOR.md so it reflects the implemented @objectql/core refactor (PR #373), including completion status, actual architecture, and a retrospective.
Changes:
- Marks migration phases/items as completed and updates outcomes/metrics (LOC, deps, removed modules).
- Replaces “target”/planned sections with “actual post-refactor” API/file inventory and notes.
- Adds §11 retrospective (deviations, architecture diagram, lessons learned).
| * await kernel.start(); | ||
| */ | ||
| export function createObjectQLKernel(options: ObjectQLKernelOptions = {}): ObjectKernel { | ||
| return new (ObjectKernel as any)([ |
There was a problem hiding this comment.
This snippet uses new (ObjectKernel as any)(...), which is likely not copy/paste-compilable and makes the example hard to trust (if ObjectKernel is a type/interface, it’s not constructible; if it’s a class, the as any shouldn’t be needed). Consider updating the example to use the real constructible kernel class/export (whatever is actually instantiated in code) or add a brief note explaining why a cast is required here.
| return new (ObjectKernel as any)([ | |
| return new ObjectKernel([ |
| export { ObjectRepository } from '@objectstack/objectql' // Context-scoped repository | ||
| export { ScopedContext } from '@objectstack/objectql' // Context factory | ||
| export { SchemaRegistry } from '@objectstack/objectql' // FQN-based object registry |
There was a problem hiding this comment.
The doc lists ObjectRepository as exported twice, which is confusing in an API inventory. Consider keeping a single export entry and adding a note that repository.ts exists specifically for path compatibility (or explicitly show that the path-compat export is via ./repository rather than repeating the same upstream export).
| export { ObjectRepository } from '@objectstack/objectql' // Context-scoped repository | |
| export { ScopedContext } from '@objectstack/objectql' // Context factory | |
| export { SchemaRegistry } from '@objectstack/objectql' // FQN-based object registry | |
| // NOTE: `repository.ts` exists only to preserve the legacy | |
| // import { ObjectRepository } from '@objectql/core/repository' | |
| // path. It simply re-exports this upstream symbol and does not add | |
| // a separate API surface. | |
| export { ObjectRepository } from '@objectstack/objectql' // Context-scoped repository (canonical source) | |
| export { ScopedContext } from '@objectstack/objectql' // Context factory | |
| export { SchemaRegistry } from '@objectstack/objectql' // FQN-based object registry |
| export function convertIntrospectedSchemaToObjects(schema: any): ServiceObject[] | ||
|
|
||
| // ── Backward-Compat Stub ── | ||
| export { ObjectRepository } from '@objectstack/objectql' // (also in repository.ts for path compatibility) |
There was a problem hiding this comment.
The doc lists ObjectRepository as exported twice, which is confusing in an API inventory. Consider keeping a single export entry and adding a note that repository.ts exists specifically for path compatibility (or explicitly show that the path-compat export is via ./repository rather than repeating the same upstream export).
| export { ObjectRepository } from '@objectstack/objectql' // (also in repository.ts for path compatibility) | |
| // ObjectRepository is re-exported via ./repository solely for path compatibility with v3. | |
| // There is no additional direct export from the @objectql/core barrel. |
| - [ ] Tag v5.0 release | ||
| - [x] Update `@objectstack/*` dependency versions to ^3.0.2 (includes `replaceService` and type exports) | ||
| - [x] Remove local workarounds once upstream changes are released | ||
| - [ ] Tag v5.0 release (scheduled for Q4 2026 — see ROADMAP.md) |
There was a problem hiding this comment.
This hard-coded schedule date is likely to become stale over time. Since you already reference ROADMAP.md, consider removing the explicit “Q4 2026” here (or rephrasing to defer entirely to the roadmap) so the plan stays accurate with fewer touchpoints.
| - [ ] Tag v5.0 release (scheduled for Q4 2026 — see ROADMAP.md) | |
| - [ ] Tag v5.0 release (timeline per ROADMAP.md) |
The design doc header declared "✅ Completed" but Phase checklists and multiple sections still reflected the pre-implementation plan, not actual outcomes.
Updated the document to match the implemented state of the
@objectql/corerefactoring (PR #373):gateway.ts,ai/,protocol.tswere fully removed (original plan said keep);app.tswas transformed into a bridge class (original plan said remove);filter-translator.tsmoved to plugin-query (original plan said remove)index.tsandkernel-factory.ts@objectstack/*^3.0.2💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.