Skip to content

Fix doubly-prefixed FQN for ObjectOS system objects#1200

Merged
xuyushun441-sys merged 1 commit intomainfrom
copilot/fix-sys-sys-object-issues
Apr 20, 2026
Merged

Fix doubly-prefixed FQN for ObjectOS system objects#1200
xuyushun441-sys merged 1 commit intomainfrom
copilot/fix-sys-sys-object-issues

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 20, 2026

ObjectOS system objects were registering under FQNs like sys__sys_object, sys__sys_view, sys__sys_metadata — the sys_ prefix was applied twice because each definition hard-coded it into name while the owning manifest also declared namespace: 'sys', and SchemaRegistry.computeFQN concatenates both as {namespace}__{name}.

Changes

  • packages/objectos/src/objects/*.ts — Drop the sys_ prefix from name so the short name matches the convention used by plugin-auth, plugin-security, and @objectstack/metadata:
    • SysObject.name: sys_objectobject (FQN sys__object)
    • SysView.name: sys_viewview (FQN sys__view)
    • SysAgent.name: sys_agentagent (FQN sys__agent)
    • SysTool.name: sys_tooltool (FQN sys__tool)
    • SysFlow.name: sys_flowflow (FQN sys__flow)
    • SysMetadata.name: sys_metadatametadata
  • packages/objectos/src/registry.ts — Remove SysMetadata from the auto-registered SystemObjects catalog to avoid an ownership collision on sys__metadata, which is already owned by @objectstack/metadata. SysMetadata remains exported for direct import. Record keys updated to the new short names and TSDoc explicitly warns against hard-coding sys_ into name.
  • packages/metadata/src/plugin.ts — Debug log now reports FQNs (sys__object, …) rather than bare short names, which are ambiguous post-fix.
  • Tests / docssys-metadata.object.test.ts, packages/objectos/README.md, and CHANGELOG.md updated.

Before / after

// Before: FQN = sys__sys_object
export const SysObject = ObjectSchema.create({
  name: 'sys_object',
  namespace: 'sys',
  ...
});

// After: FQN = sys__object
export const SysObject = ObjectSchema.create({
  name: 'object',
  namespace: 'sys',
  ...
});

Notes for reviewers

  • SysMetadata and @objectstack/metadata's SysMetadataObject model the same envelope with divergent field sets. This PR preserves the status quo (metadata package is the owner) and defers reconciliation. If SysMetadata is meant to supersede it, that should be a separate, explicit migration.
  • No callers reference the old sys__sys_* FQNs; plugin-auth, plugin-security, plugin-audit, and http-dispatcher already use correctly-formed FQNs (sys__user, sys__role, sys__audit_log, sys__environment, …).

…etc.)

Agent-Logs-Url: https://github.com/objectstack-ai/framework/sessions/169d203f-a9cc-4a0b-9869-a45448e64d44

Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 20, 2026

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

Project Deployment Actions Updated (UTC)
objectstack-demo Ready Ready Preview, Comment Apr 20, 2026 2:55pm
spec Ready Ready Preview, Comment Apr 20, 2026 2:55pm

Request Review

@xuyushun441-sys xuyushun441-sys marked this pull request as ready for review April 20, 2026 14:55
@xuyushun441-sys xuyushun441-sys merged commit ca10858 into main Apr 20, 2026
3 checks passed
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.

2 participants