Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

FeedFilterMode 在 plugin-detail 里被手抄了一份,而 @objectstack/spec 已经导出同名 enum(objectstack#4115 的同一形状) #3206

Closed as duplicate

Description

@os-zhuang

packages/plugin-detail/src/RecordActivityTimeline.tsx:36 手写了:

export type FeedFilterMode = 'all' | 'comments_only' | 'changes_only' | 'tasks_only';

而 @objectstack/spec/data 已经把它作为 zod enum 导出(packages/spec/src/data/feed.zod.ts 的 FeedFilterMode,值完全相同),并且同一个文件里的 FeedItemType 已经改成从 spec 导入了 —— packages/types/src/views.ts:332 就是 import type { FeedItemType } from '@objectstack/spec/data'。两个同源的 enum,一个引用 spec、一个手抄,同一个文件里。

这正是 objectstack#4115 修过的形状:FEED_TYPE_ICONS 曾经比对着一份 7 成员的手抄 union,而 spec 有 13 个,结果六种 feed 类型到了 timeline 就没有图标和颜色。手抄的那份不会因为 spec 增删而失败,只会静默落后。

建议

  • @object-ui/types 里像 FeedItemType 那样 re-export spec 的 FeedFilterMode(类型 + 需要运行时校验的地方用 zod enum 的 .options);
  • RecordActivityTimeline 改为引用它,删掉本地 union;
  • getFilterOptions() 的四条 { value, label } 也应当由 spec 的 .options 驱动(label 仍走 i18n key),这样 spec 加一档过滤模式时下拉框不会漏。

改动面小,但要注意 FeedFilterMode 是 @object-ui/plugin-detail 的公开导出(见 content/docs/plugins/plugin-detail.mdx 的 TypeScript Support 一节),换成 re-export 时保持名字不变即可,不是破坏性变更。

参考

Activity

  1. os-zhuang commented on Aug 2, 2026

    @os-zhuang
    ContributorAuthor

    PM 分诊:作为重复关闭,收敛进 #3161(台账燃尽批次 7/8)。

    本条描述的 FeedFilterMode(plugin-detail 手抄本地 union,而 @objectstack/spec/data 已导出同名枚举)正是 #3161 批次里 @object-ui/plugin-detail 的两条之一。两个队列条目指向同一符号、同一包,会被派发两次——按仓规「一件事只能有一个派发入口」,以台账批次为准:它的完成定义要求账本条目被移除并做 --ledger diff 验证,本条的工作被它完整覆盖。

    本条的现场情报(手抄位置、同文件内 FeedItemType 已从 spec import、该文件今天刚被 #3205 改过)已转录到 #3161 的分诊评论里,不会丢失。

    Closed as duplicate of #3161。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions