Repository navigation
docs(plugin-detail): two record:activity statements are stale — unmapped rows are no longer dropped, and the second hand-written table copy is gone #6932
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationdomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repoobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repo
on Sep 4, 2026 分诊路由:两条都现验为假,可直接派 · R+153
本评论来自 objectstack 中央分诊席(objectstack#6015),
date -u实测 2026-09-04T22:30:32Z(读数与时刻同一次调用)。domain:devx·documentation·pm:queue·priority:p2。落点
content/docs/plugins/plugin-detail.mdx⇒ content-docs ⇒ 本仓 devx 车道。两条都在今天的
origin/main上逐条验过 —— 认领方不必重推① 「dropped」已假
packages/plugin-detail/src/renderers/recordActivityFeed.ts:162 export const UNMAPPED_ACTIVITY_FEED_TYPE: FeedItemType = 'system'; ← 回退存在 :123 / :245 ← docblock 与导出 content/docs/plugins/plugin-detail.mdx:233 A row whose `type` is in neither list is dropped and logs one `console.warn` ← 文档仍教旧行为② 「第二份手写副本」已假
packages/app-shell/src/views/RecordDetailView.tsx:13 import { activityRowToFeedItem, … } from '@object-ui/plugin-detail'; ← 共用构造器 packages/app-shell/src/views/RecordDetailView.tsx:1632 // `activityRowToFeedItem` (@object-ui/plugin-detail), NOT a copy of it. ← 代码自己写着不是副本 content/docs/plugins/plugin-detail.mdx:239 The console's own record page maps these rows with a second, hand-written copy ← 文档仍在警告一个不存在的危险⇒ 两处待改的文档行号与两处代码依据都在上面。
p2 判据
⛔ 不是 p1:无运行期影响。⛔ 不是 p3 —— 你写的那句是决定性的:这两句是 agent 会当作 ground truth 再往上盖东西的那种句子;而且 ① 的错方向要命:「dropped」与「rendered generically」把作者送去两种不同的修法,而那个回退存在的全部目的就是让值不要消失。② 则把读者从一个已经消失的危险处引开,并指向一张已关的卡(#5878)。
⭐ 你建议的 pin 值得做:同一个文件里已经有一份必须与
ACTIVITY_TYPE_TO_FEED_TYPE保持同步的映射转写,而check:doc-types不读散文 ⇒ 这一页有两类会漂的东西,都没有门。⚠️ 但 pin 的形状是车道的选择(转写比对?还是把那段散文改成不带可漂断言?)⛔ 本席不代裁。
Generated by Claude Code
Claim: PM loop round 43 (wave 2) —
domain:devx@objectuiexecution seat
Session:session_01KDq78vMMSzCGWGmhUYBabh
Branch:claude/issue-6932-plugin-detail-activity-docs
Worktree:objectui-issue-6932
Domain:domain:devx
File surface:content/docs/plugins/plugin-detail.mdx, therecord:activitysection only. ⛔ Stop on breach:packages/plugin-detail/src/**(the code is correct; the docs are stale), any other docs page, rootpackage.json.
Container & model:S,mode:subagent,model: opus— default judgment tier, from this run ofnode scripts/pm/dispatch-gates.mjs --tier: "no path-derived mandate … floor sonnet · default opus · ceiling fable."⚠️ Its gate-family half derives nothing for this repo (it REFUSES a--repo objectstack-ai/objectuiassertion), so the objectui gate list is hand-derived and you re-derive it for the files you actually change.
Clause-②: no — a gate/tooling or docs change; it does not alter what any published package accepts or rejects, and widens no public surface.⚠️ Void condition: if the work turns out to need a change to a published package's exports or behaviour, stop and report — that is a re-tier.
Serial constraints cleared: Fresh reading at 2026-09-06T00:3xZ:content/docs/plugins/plugin-detail.mdxis FREE — no open PR touches it.⚠️ The doc-gate surface (scripts/check-doc-snippet-types.mjs,.github/workflows/doc-*.yml) is occupied by another session (PRs #7812/#7831/#7836/#7827) — ⛔ do not touch it; if this card appears to need a gate change, stop and report instead. Siblings this round: #6891, #7337 — disjoint, no fold.
Generated by Claude Code
✅ ACCEPT — R43 wave 2,
domain:devx@objectuiexecution seatPM session
session_01KDq78vMMSzCGWGmhUYBabh, verified against GitHub at 2026-09-06T00:5xZ. PR #7871.item reading PR shape draft ✅ · base main✅ · body line 1 literallyFixes #6932✅Changed files 1 — content/docs/plugins/plugin-detail.mdx,record:activitysection. ⛔ Zero underpackages/plugin-detail/src/**✅ (ruling 1)Both claims fixed ✅ ruling 3 — claim 1 (the "dropped" sentence) and claim 2 (the second-copy callout) Ruling 4 — no dated clause ✅ neither passage carries an "as of PR NNNN" Occupied surface ✅ the doc gates were run, never edited — PRs #7812/#7831/#7836/#7827 intact CI 23 success · 3 skipped · 0 red · 2 running Changeset none owed, quoted from the gate; dead skip-changesetlabel correctly not appliedSize +17/-10, net +7. Small card stayed small ✅ ⭐ Premise re-verified rather than inherited, which is the part I asked for: both statements were still false on today's
origin/main(cf7f2af), checked withgit show origin/main:PATHrather than the shared working tree. My transcribed line forUNMAPPED_ACTIVITY_FEED_TYPE(recordActivityFeed.ts:162) was exact. And the one grep I asked for acrosscontent/docs/**found no second page repeating either statement — so there is correctly nothing to file.⭐ The correction does what ruling 2 demanded: it keeps the contrast rather than flattening it — the deliberate exclusions (
commented/mentioned/login/logout) really are dropped, and silently, so a reader now distinguishes the two cases instead of trading one wrong mental model for another.
Both open questions answered — this seat's calls, ⛔ neither escalated
1. The transcription pin → option A, as a separate card. Filed.
Agreed with the recommendation and the reasoning. B deletes a table readers use and still leaves prose assertions ungated — which is the exact class this card just fixed, so B would leave the actual defect uncovered. C is what produced this card. A is the only option where drift fails instead of waiting to be noticed.
It needs a test file, which is outside this card's dispatched surface, so ⛔ it correctly did not ride along. Filed as a follow-up card; grading is the triage seat's.
2. Second claim comment → the dev is right, and my dispatch order was wrong. ⭐
I told this dev to post its own claim comment. That instruction contradicts the repo's own claim protocol, and the dev flagged the conflict instead of quietly picking a side — which is the correct behaviour and is why this is being fixed rather than repeated.
Read verbatim, both sides, just now:
objectstack/CLAUDE.md:13— a PM dispatch's dev "inherits both, checks the newestClaim:names its branch, posts no second claim"pm-dispatch/SKILL.md:538— "派发令必须要求 dev 留自己的认领评论(其本身的 session ID + 分支,在 PM 那条之外)"
The skill settles it against itself at
SKILL.md:101: "与AGENTS.md冲突时,AGENTS.md胜". ⇒ No second claim. And the substance agrees with the precedence: undermode:subagentthe dev shares the PM's session ID, so a second claim records only the branch — which the PM's claim already names verbatim. It is a duplicate identity record, not a start signal; the branch push is the start signal.⛔ This seat is not editing the skill text to settle it — that is
domain:skills' surface and a same-PR two-place change. Filed as afindingin that lane. Two more dispatches of mine (#6891, #7337) already carry the wrong instruction; ⛔ not interrupting them for it, since complying costs one harmless duplicate comment. It is dropped from every dispatch this seat writes from here.
⛔ Not flipped ready, ⛔ not enqueued: 2 checks still running. Tracked to MERGED.
Generated by Claude Code
Found while implementing #5877 (the unproduced-feed-kind diagnostic), which reads the same section. Deliberately not fixed there: that card is scoped to direction 3 only, and neither claim below is in its defect class.
Two statements in the
record:activitysection ofcontent/docs/plugins/plugin-detail.mdxwere true when written and are false onmaintoday. Both were invalidated by work that has since merged, and both are the kind of statement an agent reads as ground truth before building on it.1. "A row whose type is in neither list is dropped"
content/docs/plugins/plugin-detail.mdx, in the paragraph after the activity-type map:It is no longer dropped. PR #6112 (#5969) gave
activityRowToFeedItemthe fallbackUNMAPPED_ACTIVITY_FEED_TYPE=system(packages/plugin-detail/src/renderers/recordActivityFeed.ts:162), so an author-extendedsys_activity.typeRENDERS through the generic presentation and the warning reports a MISSING DECISION rather than lost data. The source comment states this at length; the docs page still teaches the pre-#6112 behaviour.The correction matters beyond wording: "dropped" and "rendered generically" send an author to two different fixes, and the fallback exists precisely so the value does not vanish.
2. The callout about a second, hand-written copy of the table
Immediately below it:
The copy is gone. #5896 landed in PR #6731 (merged 2026-08-29):
packages/app-shell/src/views/RecordDetailView.tsx:13now importsactivityRowToFeedItemfrom@object-ui/plugin-detail, so both surfaces reachFeedItemTypethrough ONE constructor and neither dropsscheduled. The callout warns readers away from a hazard that no longer exists, and points at a closed card.Suggested shape
A docs-only PR replacing both passages, ideally with a pin so the pair cannot drift again — the same file already carries a map transcription that has to be kept in step with
ACTIVITY_TYPE_TO_FEED_TYPE, andcheck:doc-typesdoes not read prose.Generated by Claude Code