Goal
Complete the service-feed retirement (ADR-0052 §5, service deleted in #1955) by removing the now-vestigial feed contracts + protocol surface. sys_comment/sys_activity is the canonical record-collaboration/timeline backend; the feed REST protocol was never mounted (404) and has no implementation.
This is a multi-package refactor (mapped via build-gating). Do it as a focused PR when the repo is quiet — it touches the core IServerProtocol and spec, which everything depends on.
⚠️ Keep — do NOT delete
packages/spec/src/data/feed.zod.ts — its FeedItemType and FeedFilterMode are live, consumed by the record:chatter UI component (packages/spec/src/ui/component.zod.ts → RecordActivityProps/RecordChatterProps). Only the retired-backend types are dead. (Consider later renaming feed→activity, but keep for now.)
Scope (blast radius, build-verified)
spec
- Delete
contracts/feed-service.ts (IFeedService), api/feed-api.zod.ts, data/subscription.zod.ts + their *.test.ts.
- Remove their barrel exports:
contracts/index.ts, api/index.ts, data/index.ts (keep feed.zod).
api/protocol.zod.ts — remove the 4 feed regions: (1) the import type { … } from './feed-api.zod' block, (2) the // Feed Operations z.function() stubs, (3) the // Feed Types export type { … } re-export block, (4) the // Feed (optional) methods on the IServerProtocol interface.
objectql
src/protocol.ts — remove the getFeedService?: () => IFeedService constructor param, requireFeedService(), and the feed method implementations; update constructor call sites that pass getFeedService.
- Delete
src/protocol-feed.test.ts.
client (public SDK breaking change — but the methods called the never-mounted feed REST, so already dead)
src/index.ts — remove the two feed-api type-import blocks (~lines 69-82 and ~3497-3510) and the entire feed = { … } accessor (~150 lines, list/create/update/delete/reactions/pin/star/search/changelog/subscribe).
Verify
pnpm --filter @objectstack/spec build → objectql → client → rest, all green. Then pnpm --filter @objectstack/plugin-audit test etc.
Context
Spun out of the platform-activity work (#1948 trackHistory, #1952 milestones, #1954 sys_attachment→storage, #1955 retire service-feed, #1957 ActivityPointer). I attempted this cleanup but backed out cleanly because (a) the ripple was large and (b) the repo was being concurrently branch-switched mid-refactor — unsafe to push then.
Goal
Complete the
service-feedretirement (ADR-0052 §5, service deleted in #1955) by removing the now-vestigial feed contracts + protocol surface.sys_comment/sys_activityis the canonical record-collaboration/timeline backend; the feed REST protocol was never mounted (404) and has no implementation.This is a multi-package refactor (mapped via build-gating). Do it as a focused PR when the repo is quiet — it touches the core
IServerProtocolandspec, which everything depends on.packages/spec/src/data/feed.zod.ts— itsFeedItemTypeandFeedFilterModeare live, consumed by therecord:chatterUI component (packages/spec/src/ui/component.zod.ts→RecordActivityProps/RecordChatterProps). Only the retired-backend types are dead. (Consider later renaming feed→activity, but keep for now.)Scope (blast radius, build-verified)
spec
contracts/feed-service.ts(IFeedService),api/feed-api.zod.ts,data/subscription.zod.ts+ their*.test.ts.contracts/index.ts,api/index.ts,data/index.ts(keepfeed.zod).api/protocol.zod.ts— remove the 4 feed regions: (1) theimport type { … } from './feed-api.zod'block, (2) the// Feed Operationsz.function()stubs, (3) the// Feed Typesexport type { … }re-export block, (4) the// Feed (optional)methods on theIServerProtocolinterface.objectql
src/protocol.ts— remove thegetFeedService?: () => IFeedServiceconstructor param,requireFeedService(), and the feed method implementations; update constructor call sites that passgetFeedService.src/protocol-feed.test.ts.client (public SDK breaking change — but the methods called the never-mounted feed REST, so already dead)
src/index.ts— remove the two feed-api type-import blocks (~lines 69-82 and ~3497-3510) and the entirefeed = { … }accessor (~150 lines, list/create/update/delete/reactions/pin/star/search/changelog/subscribe).Verify
pnpm --filter @objectstack/spec build→ objectql → client → rest, all green. Thenpnpm --filter @objectstack/plugin-audit testetc.Context
Spun out of the platform-activity work (#1948 trackHistory, #1952 milestones, #1954 sys_attachment→storage, #1955 retire service-feed, #1957 ActivityPointer). I attempted this cleanup but backed out cleanly because (a) the ripple was large and (b) the repo was being concurrently branch-switched mid-refactor — unsafe to push then.