Sub-issue C of #7675, split by the triage seat (session session_01GiG1DfMysjbbFLZErAo93G, 2026-08-12) carrying the maintainer ruling of 2026-08-12 (comment 5261744983 on #7675). This is the retirement half, and it is the upstream of the ordering chain — the two consumer-shrink cards are Blocked-by: this one.
Ruling carried (verbatim, binding — not re-adjudicable)
退役(3 个):export / import(无此 feature)与 permission_change(权限对象的写入已以 create/update 行入账,语义重复行不再造)从 enum、两个 list view、两个 dashboard widget、console ACTION_OPTIONS 中一并摘除;按 ADR-0087 登记退役。
原则记录:空 widget + 永远查不到东西的过滤器是可见产品缺陷;审计面宁窄勿谎。
Routing correction, verified against origin/main (this supersedes the seat table on #7675)
The identity seat's split-request table placed the enum in packages/spec. Measured false: the action enum lives at packages/plugins/plugin-audit/src/objects/sys-audit-log.object.ts:101, and spec's own CHANGELOG records "the sys_audit_log object definition in plugin-audit is the row-shape source of truth". git grep over packages/spec finds no audit action enum. There is no domain:spec member in this split; this card routes domain:identity because plugin-audit is an identity-lane package.
Scope (this repo, this card)
- Remove
export, import, permission_change from the action enum (sys-audit-log.object.ts:101).
- Narrow the
auth_events list view filter (sys-audit-log.object.ts:65) from ['login','logout','permission_change'] to ['login','logout']. The config_changes view stays (it becomes truthful via sub-issue B).
- Regenerate
plugin-audit's generated translation artifacts (os-regen discipline — do not hand-edit).
- ADR-0087 retirement registration for the three values.
Consumer-fixture flag (named, per the fixture-triage rule)
packages/services/service-analytics/src/__tests__/raw-sql-object-routing.test.ts:149,210 seeds rows with action: 'permission_change'. Run the service-analytics tests and update those fixtures in this PR — a seeded value the enum no longer accepts must not linger as a green-looking lie.
Downstream (⛔ not this card)
- Widgets in
packages/platform-objects → sub-issue D (domain:metadata), Blocked-by this card.
- Console
ACTION_OPTIONS + HistoryTimeline badge maps → objectui sub-issue, Blocked-by this card.
- Note: sub-issue A may also touch
plugin-audit — same-lane serialization; do not run A and C in flight together.
Size/model suggestion: M, opus.
Sub-issue C of #7675, split by the triage seat (session
session_01GiG1DfMysjbbFLZErAo93G, 2026-08-12) carrying the maintainer ruling of 2026-08-12 (comment 5261744983 on #7675). This is the retirement half, and it is the upstream of the ordering chain — the two consumer-shrink cards areBlocked-by:this one.Ruling carried (verbatim, binding — not re-adjudicable)
Routing correction, verified against
origin/main(this supersedes the seat table on #7675)The identity seat's split-request table placed the enum in
packages/spec. Measured false: the action enum lives atpackages/plugins/plugin-audit/src/objects/sys-audit-log.object.ts:101, and spec's own CHANGELOG records "thesys_audit_logobject definition inplugin-auditis the row-shape source of truth".git grepoverpackages/specfinds no audit action enum. There is nodomain:specmember in this split; this card routesdomain:identitybecauseplugin-auditis an identity-lane package.Scope (this repo, this card)
export,import,permission_changefrom the action enum (sys-audit-log.object.ts:101).auth_eventslist view filter (sys-audit-log.object.ts:65) from['login','logout','permission_change']to['login','logout']. Theconfig_changesview stays (it becomes truthful via sub-issue B).plugin-audit's generated translation artifacts (os-regen discipline — do not hand-edit).Consumer-fixture flag (named, per the fixture-triage rule)
packages/services/service-analytics/src/__tests__/raw-sql-object-routing.test.ts:149,210seeds rows withaction: 'permission_change'. Run the service-analytics tests and update those fixtures in this PR — a seeded value the enum no longer accepts must not linger as a green-looking lie.Downstream (⛔ not this card)
packages/platform-objects→ sub-issue D (domain:metadata), Blocked-by this card.ACTION_OPTIONS+HistoryTimelinebadge maps → objectui sub-issue, Blocked-by this card.plugin-audit— same-lane serialization; do not run A and C in flight together.Size/model suggestion: M,
opus.