Skip to content

feat(spec)!: retire residual feed discovery/dispatcher surface (#3180)#3204

Merged
os-zhuang merged 1 commit into
mainfrom
claude/retire-feed-contracts-n1mcmj
Jul 18, 2026
Merged

feat(spec)!: retire residual feed discovery/dispatcher surface (#3180)#3204
os-zhuang merged 1 commit into
mainfrom
claude/retire-feed-contracts-n1mcmj

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

背景

承接 #1959(已合并)/ ADR-0052 §5 的收尾。feed 后端早已退役,#1959 删掉了 feed 契约 + SDK。本 PR 清掉 discovery/dispatcher 层最后残留的 feed 引用,并修掉一个真 bug:comments 能力因误挂在已删除的 'feed' 服务上,自 #1955 起一直恒为 false

变更内容

@objectstack/spec

  • discovery.zod.ts:删除 WellKnownCapabilitiesSchema.feedApiRoutesSchema.feed(routes.feed)。
  • dispatcher.zod.ts:从 DEFAULT_DISPATCHER_ROUTES 删掉 /api/v1/feed 条目。
  • 更新 discovery.test.ts / dispatcher.test.ts;再生成 content/docs/references/api/discovery.mdx

@objectstack/metadata-protocol

@objectstack/client

  • 删掉内部 feed: '/api/v1/feed' 路由常量(它只为满足已删除的 ApiRoutes.feed 类型而暂留,无任何消费者)。

测试

  • 更新 discovery/dispatcher/client 的能力断言;新增正向用例:注册 sys_comment 对象后 comments 能力为 true

迁移(FROM → TO)

  • discovery.capabilities.feed / discovery.routes.feed 的客户端 → 改用 discovery.capabilities.comments;评论/活动经通用数据 API 操作 sys_comment / sys_activity(/api/v1/data/sys_comment/…)。
  • 这是 discovery 响应形状的 breaking 变更,故 spec 用 minor + changeset 内 FROM→TO 说明(未删任何可著写元数据 key,PROTOCOL_MAJOR 保持 15)。

设计决策(请维护者复核)

comments 的判定我选择「跟踪 sys_comment 对象存在性」而非硬编码 true——理由:sys_comment 由 audit slate(ADR-0052 default-loaded)提供,object-existence 判定最诚实、避免 declared≠enforced。若倾向永远 true 或其它信号,请告知。

验证

  • pnpm turbo run build --filter=!@objectstack/docs —— 71 任务全绿。
  • spec / metadata-protocol / objectql / client / rest 测试 —— 30 任务全绿(objectql 新增 1 条正向用例)。
  • spec 守卫 check:api-surface / check:docs / check:spec-changes / check:skill-refs 全部 in-sync。
  • 全仓 grep 确认无残留 feed 能力/路由引用(capabilities.feeds 复数为对象级开关,不同概念,保留)。

Closes #3180.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HtN5uPoPnFzkSJ2HcwzgtG


Generated by Claude Code

Follow-up to #1959 / ADR-0052 §5. The feed backend was retired long ago;
this removes the last discovery/dispatcher references to it and fixes a
real bug in the comments capability.

- spec: remove WellKnownCapabilitiesSchema.feed and ApiRoutesSchema.feed
  (routes.feed); drop the /api/v1/feed entry from DEFAULT_DISPATCHER_ROUTES.
- metadata-protocol: getDiscovery() no longer emits the always-false feed
  service/capability. Bug fix — the `comments` capability keyed off the
  deleted 'feed' service (permanently false since #1955); it now tracks the
  sys_comment object (always-on audit slate), so declared === enforced.
- client: drop the internal feed route constant (only existed to satisfy the
  now-removed ApiRoutes.feed type; unused).
- tests: update discovery/dispatcher/client capability tests; add positive
  coverage that comments=true when sys_comment is registered.

Comments/activity are served by the generic data API on sys_comment /
sys_activity. Regenerated content/docs/references/api/discovery.mdx.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HtN5uPoPnFzkSJ2HcwzgtG
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 18, 2026 9:37am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/m labels Jul 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 4 package(s): @objectstack/client, @objectstack/metadata-protocol, @objectstack/objectql, @objectstack/spec.

110 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via packages/client, @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/client, @objectstack/spec)
  • content/docs/api/data-flow.mdx (via @objectstack/client)
  • content/docs/api/environment-routing.mdx (via @objectstack/client, @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/client, @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via @objectstack/metadata-protocol, @objectstack/objectql, packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via packages/objectql, @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/migration-from-objectql.mdx (via @objectstack/objectql)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/vercel.mdx (via @objectstack/objectql)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/cli.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/client, @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx (via packages/client)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/client, packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/kernel/services.mdx (via @objectstack/objectql)
  • content/docs/permissions/authentication.mdx (via @objectstack/client, @objectstack/objectql)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/client, @objectstack/objectql, @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/objectql)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/realtime-protocol.mdx (via @objectstack/client)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via packages/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/client, @objectstack/objectql, @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang marked this pull request as ready for review July 18, 2026 11:11
@os-zhuang
os-zhuang merged commit 8abf133 into main Jul 18, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/retire-feed-contracts-n1mcmj branch July 18, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Retire residual feed discovery/dispatcher surface (ADR-0052 §5, follow-up to #1959)

2 participants