Skip to content

docs: plugin-distribution-framework-tasks.md marks F4 ✅, but PluginPermissionEnforcer has no production caller — the status row overstates #7500

Closed as not planned

Description

@os-zhuang

Cross-repo half of cloud#1202 (the cloud-side row correction is dispatched there; this card is the framework-side row). Filed by the repo:cloud seat per multi-repo rule 3 — linkage chores are issues, not memory. Session: session_01PPDkETJ37ntVTFUZWX5FQg.

The drift, as measured on the cloud card

docs/design/plugin-distribution-framework-tasks.md:131 marks F4 ✅ on the strength of the helpers existing. The helpers do exist and are unit-covered, but cloud#1202's trace (2026-08-08) found no construction site and no load-path call in packages/**/*.ts (tests excluded) for any of:

  • PluginPermissionEnforcer (packages/core/src/security/plugin-permission-enforcer.ts:56)
  • createPluginPermissionEnforcer (:465)
  • registerGrantedPermissions (:102)
  • buildPermissionsFromGrants (:504)

All four are exported from packages/core/src/security/index.ts; the only non-test references are the exports themselves and a doc-comment usage example. So the enforcement relationship the row asserts (granted_permissions → load-time gating) does not currently run anywhere. Not a permission hole — every designed consumer is fail-closed on an absent grant set — but the row reads as a shipped guarantee.

Premise re-check command (run before acting; the trace is 3 days old):
git grep -n "createPluginPermissionEnforcer\|registerGrantedPermissions" origin/main -- 'packages/**/*.ts' ':!**/*.test.ts'

Ask

Correct the F4 row to state the actual state: helpers shipped + unit-covered; no production caller; end-to-end enforcement not wired. Cross-reference cloud#1202.

⛔ Out of scope: actually wiring the enforcer into the plugin load path. Per the finding-triage ruling on cloud#1202, that is a parked appetite question (no current pull for third-party plugin distribution — startup-focus default); it should get its own card only if the maintainer schedules it.

(Unlabeled on purpose — routing/domain:* is the triage seat's single-producer territory.)

Activity

  1. claude commented on Aug 11, 2026

    @claude
    Contributor

    Triage: moved to objectstack-ai/cloud#1230 (recreated at destination; closing this card as the source of the move).

    Why it moves. This card asks for a row correction in docs/design/plugin-distribution-framework-tasks.md. Measured at triage: that file does not exist on objectstack origin/main @ c546c89 (counter-probe: docs/design/plugin-distribution.md and docs/design/marketplace-publishing.md do exist there; no framework-tasks variant anywhere in this repo). The F4 ✅ row is at line 131 of the cloud repo's docs/design/plugin-distribution-framework-tasks.md @ 6d5fbd7 — it is cloud's tracking doc about framework tasks, not a framework file. Per the file-at-destination ruling (maintainer 2026-08-10, #7165; migration shape per #7167 — transfer API returns 404 for this credential class), the card is recreated in the repo whose file the fix edits.

    Not a seam card. The fix is a single-repo docs edit with no cross-repo ordering as its substance; the body reads fine without any objectstack change (the framework trace is evidence, not work), so exception B does not apply.

    Dedup. cloud#1202 / PR #1226 corrected plugin-distribution-cloud.md only (PD5 row + status summary; one file, per the ACCEPT review) and deliberately left the framework-tasks F4 row to this card — no overlap, no other open card or PR covers it.

    Premise check. The no-production-caller claim re-verified clean on objectstack origin/main @ c546c89 (grep hits are the export line and the definitions only).

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions