Skip to content

[PM seat] domain:identity — 🟢 os-zhuang #6022

Description

@claude

Single-writer seat post for the domain:identity execution lane. Index entry: #4604.

🟢 ACTIVE

范围 | Scope

packages/plugins/plugin-auth · plugin-security · plugin-sharing · plugin-audit.
packages/spec semantic surfaces transfer to the domain:spec seat.

当前 PM | Current PM

  • GitHub account: os-zhuang
  • Session: session_01PEVB6w7D7uCszR9Mw1BL73
  • Took over: 2026-08-12T13:45Z via /pm-dispatch identity; maintainer-confirmed at ~13:47Z (「前任刚交接完,你可以接手了」). The 13:45Z audit comment recorded it as a unilateral liveness call and was corrected in a follow-up — the measured facts were unchanged by the confirmation.
  • Predecessor: huangyiirene / session_01D6Qi9sYxhaRwj7TYiD5MWg, last output 11:43Z, no de-registration comment.

继承台账 | Ledger (re-measured from labels, 2026-08-12T15:05Z)

Whole-lane read in one query (labels: [domain:identity], minimal fields), states intersected locally — ⛔ never one query per pm-state, which is structurally blind to the others.

bucket count cards
pm:dispatched 3 (batch full) #7807 target:v17 (plugin-sharing) · #8049 target:v17 (plugin-auth) · #7809 (plugin-security) — all dev-in-flight, dispatched 14:29–15:03Z
pm:queue (unassigned) 5 #8053 target:v17 · #7994 · #7858 · #7795 · #7675
finding 5 in-lane #8060 (CRM positions) · #8019 (change-email old mailbox) · #7988 (read-scope disclosure on CRUD) · #7881 (rethrowAsBetterAuthError) · #7826 (sys_session retention). Plus #8074, filed by this seat, awaiting triage grading and not yet domain-labelled.
needs-user-decision 0
pm:blocked 0
pm:on-hold 4 #6736 · #3653 · #3002 · #1883 — ⛔ do not dispatch, ⛔ do not nag

MERGED this shift (this seat): 3 — all landing-verified by content on origin/main including negative space:

card PR landed negative space verified
#7861 target:v17 #7974 object.zod.ts contract text untouched
#7735 #8017 user.deleteUser still unconfigured (zero occurrences); ledger row disabled
#8023 target:v17 #8072 8c767f5f0 owner_only_deletes floor intact; unit_and_subordinates untouched (#7807's defect confirmed still live)

Release board (target:v17) on this lane: 3#8053 (queued, package undetermined) · #8049 (in flight) · #7807 (in flight).

热文件串行队 | Hot-file serial queue

package ordered cards note
plugin-sharing #7807 (in flight) → #7858#7795 all three land here; #7858/#7795 wait for #7807 MERGED, ⛔ not armed
plugin-auth #8049 (in flight) → #7994 #7994 is ruled (Option B: map twoFactor/jwks/deviceCode, retire the three #7770 exemptions)
plugin-security #7809 (in flight) #8023 cleared this package at 15:00Z
plugin-audit #7675 ⛔ blocked on a triage split, not on this lane
undetermined #8053 ⚠️ target:v17 and could land in either plugin-security or plugin-auth. Read it fully to fix the package before claiming — guessing costs a serialization breach.

常设承诺 | Standing commitments

  1. Drive the three in-flight cards to MERGED, verifying landing content on origin/main each time — the queue squashes, so merge-base --is-ancestor never fires.
  2. Serialized cards dispatch on MERGED, not on armed, and their file surfaces are re-verified on the merged ref first — the merge that closes the predecessor is the one most likely to have moved them. ([finding] The bulk AST write path passes opCtx.operation raw, so purge / transfer / restore derive no row scope while update / delete now do (#7665 asymmetry) #7809's anchors drifted twice for exactly this reason.)
  3. audit-log-browser: 4 of 10 declared sys_audit_log actions have no writer anywhere (login/logout/permission_change/config_change/export/import never materialize) #7675 is blocked on a triage split spanning three seats and two repos; re-surfaced 13:49Z because the session that first requested it had died. ⛔ Do not split it from this seat — domain:* has one producer. ⛔ Do not dispatch the plugin-auth half alone: it would take the spec-enum-vs-consumer ordering decision by accident.
  4. Findings stay held; this seat adds measured evidence or files disagreement — grading is the triage seat's single channel.
  5. packages/spec semantic surfaces transfer to the spec seat. The error-code ledger is the registration surface a new code mechanically requires and was accepted in-bounds on fix(sharing): publicSharing.eligibility is declared-but-unenforced — a draft or internal record mints a public share link and is served anonymously #7861 with a cross-seat declaration — that precedent is narrow and ⛔ does not extend to object.zod.ts contract text.

说明 | Notes

Predecessor ops notes are preserved in the body revisions of 2026-08-11T17:13Z and 20:15Z. The load-bearing ones, plus this shift's:

Metadata

Metadata

Assignees

Labels

pm:seatPM seat registry issue - single-writer body, index = this label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions