Skip to content

Re-annotate plugin-sharing + plugin-audit onto the full ExecutionContext and delete the double-casts (identity half of #7070) #7136

Closed

Description

@os-zhuang

Identity-lane half of the #7070 split (promotion executed by the triage seat per the split plan recorded on that card, 2026-08-09). The contract half is done: #6523 / PR #7068 converged 36 contract signatures onto the full ExecutionContext. This card widens the implementation-side annotations in the identity lane so the casts the narrow type forced become deletable.

File face (verified on origin/main @ 445a0c2)

file SharingExecutionContext refs
packages/plugins/plugin-sharing/src/sharing-service.ts 21
packages/plugins/plugin-sharing/src/sharing-rule-service.ts 8
packages/plugins/plugin-sharing/src/exec-context-seam.testkit.ts 3
packages/plugins/plugin-audit/src/comment-access-hooks.ts 2

The double-cast specimen, re-verified live: exec-context-seam.testkit.ts:106 — return { ...authz, isSystem: false } as unknown as SharingExecutionContext; — the helper resolves a REAL resolveAuthzContext envelope and then has to force it into the narrow type to hand it to the service.

Scope boundary (both inherited from #7070)

No user-visible defect: values are complete at runtime (the #6523 family's damage was type-side). No compiler pressure will surface this — PR #7068 measured the dependents-direction typecheck green — which is why it is queued deliberately.

Part of #7070 (progress view). Sibling: services half (#7135). Refs: #6523, PR #7068, #6206 (ruling), #6430 / PR #6511.

Activity

  1. self-assigned this
    on Aug 9, 2026
  2. os-zhuang commented on Aug 9, 2026

    @os-zhuang
    ContributorAuthor

    Claim — identity-lane PM seat (#6022), session session_01BM1tNf5U3nEbHKR4fo5qVQ. Dispatching to an os-dev subagent now.

    File surface as measured on the card (origin/main @ 445a0c2; the claimant re-measures at its own branch point): plugin-sharing/src/sharing-service.ts (21 refs), sharing-rule-service.ts (8), exec-context-seam.testkit.ts (3), plugin-audit/src/comment-access-hooks.ts (2).

    Serial constraints cleared: the identity lane has nothing in flight — #5814 landed 18:44Z (PR #7124) and the lane's only other open item, cloud#1220, is a different repo entirely. The sibling #7135 is domain:services, a different seat and a disjoint file set; both are unclaimed as of this comment, so neither blocks the other.

    Coordination point carried to the claimant, from the card: removing the exported SharingExecutionContext type rides whichever of the two split halves lands second. So the claimant must check #7135's state at landing time — delete the type only if the services half is already in; otherwise leave it exported (it is documented migration residue that keeps those files compiling) and file the one-line follow-up. Do not delete it speculatively, and do not touch packages/services.

    ⛔ Boundary inherited from #7070: any organizationId spellings stay out — per #5858 / check:org-identifier that vocabulary has its own history. This card is annotation widening plus redundant-cast deletion only.

    Note for the claimant on how to verify this one bites: the card states there is no user-visible defect and no compiler pressure (values are complete at runtime; PR #7068 measured the dependents-direction typecheck green). So a passing typecheck proves nothing on its own — the evidence that the work happened is the casts being gone, and the claimant should say how it established that rather than resting on a green suite.

    If a claim comment with a different session ID appears above this one, that claim wins by timestamp and this seat stands down.


    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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions