Skip to content

spec rc.6 vacated WidgetManifest / WidgetSource — the Runtime… prefixes may be reclaimed #4164

Description

@yinlianghui

Recorded from the @objectstack/spec 17.0.0-rc.6 bump in objectstack#7100. Observation-class: nothing a user hits, no defect — an unlock that would otherwise be forgotten.

@object-ui/types carries RuntimeWidgetManifest and RuntimeWidgetSource under prefixes added purely to avoid colliding with spec exports of the same bare names (the objectui#3074 lesson, pinned in packages/types/src/__tests__/page-nav-misc-spec-parity.test.ts).

rc.6 retired the whole widget-manifest vocabulary from @objectstack/spec/ui — WidgetManifest, WidgetSource, WidgetProperty, WidgetEvent, WidgetLifecycle and their …Schema / …Parsed twins. The tripwire in that test fired exactly as designed, for the second time (objectui#3363 was the first, and reclaimed GestureType / GestureConfig on the same signal).

The reclaim is available, not required, so objectstack#7100's PR did not take it: both names are exported, so renaming them is a cross-package change with its own review, and that card is a global_nav retirement. What that PR did instead was move the two rows into the "spec no longer owns" list, so the vacancy stays pinned — if the spec ever re-publishes either name while objectui holds it, that becomes a live collision and the test goes red.

Whoever picks this up: the precedent to follow is objectui#3363's reclaim, and the reason a reclaim can be declined is written beside PWAOfflineConfig in the same file (there the name has a second claimant, so the prefix is still load-bearing — check that neither of these two does before renaming).

Activity

  1. os-zhuang commented on Aug 11, 2026

    @os-zhuang
    Contributor

    Findings triage (first grading): held (finding kept).

    Premise verified @ objectui origin/main b42558a: the reclaim is genuinely available and genuinely untaken — RuntimeWidgetManifest / RuntimeWidgetSource still exported (packages/types/src/index.ts:1219-1220), and the parity test still carries both rows in the vacancy-pinning "spec no longer owns" section (page-nav-misc-spec-parity.test.ts:564-565) with their rationale entries at :646-647. The pin does exactly what the card says: if spec ever re-publishes either bare name while objectui holds it, the test goes red — so the vacancy cannot be silently lost while this card waits.

    Why held rather than queued: the reclaim is available, not required — a cross-package rename with its own review, zero user-facing effect, against a deep pm:queue backlog. The card + the pinned vacancy together already guarantee the unlock is not forgotten, which was the filing's stated purpose. Restart condition: the next deliberate naming/parity sweep in @object-ui/types, or any PR that touches these exports anyway — follow the objectui#3363 precedent and check neither name has a second claimant (the PWAOfflineConfig note in the same file) before renaming.

    Dup check: no other card tracks this reclaim (probes: RuntimeWidgetManifest / WidgetSource reclaim across open issues/PRs; objectui#3363 is the closed precedent, objectstack#7100 the source bump).

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


    Generated by Claude Code

  2. os-zhuang commented on Aug 11, 2026

    @os-zhuang
    Contributor

    Findings triage (re-verify @ origin/main f812de6): HOLD — RuntimeWidgetManifest / RuntimeWidgetSource still exported (packages/types/src/index.ts:1227-1228, drifted a few lines from the 03:08Z anchor, content unchanged); reclaim still available-not-required, vacancy still pinned by the parity tripwire. Restart conditions from the first grade stand. finding stands.

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


    Generated by Claude Code

  3. claude commented on Aug 11, 2026

    @claude
    Contributor

    Findings cadence re-check @ origin/main 90e792e: HOLD (finding stays). packages/types/src/widget.ts:54/:80 still carries RuntimeWidgetManifest / RuntimeWidgetSource with the objectstack#4115 rename comments; no reclaim has happened. Rename-back is optional polish gated on nothing — stays an observation.

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


    Generated by Claude Code

  4. added theissue type on Aug 17, 2026
  5. os-zhuang commented on Aug 17, 2026

    @os-zhuang
    Contributor

    Findings state conversion (batch 3): closing not planned, type Task.

    Grading history: held twice with restart condition "the next deliberate naming sweep" — a human-intent event, not a machine-checkable predicate, so pm:on-hold has no legal exit here. Closing per the maintainer's 2026-08-16 direction (work not planned for development closes rather than holds).

    Nothing is lost by closing: the vacancy is pinned IN-REPO — page-nav-misc-spec-parity.test.ts carries both names in the "spec no longer owns" list and goes red if spec ever re-publishes them — and the reclaim recipe (objectui#3363 precedent; check the PWAOfflineConfig second-claimant note before renaming) is recorded on this card. Reopen is free when someone runs a naming sweep; the tripwire cannot be silently lost either way. Maintainer may veto.

    本评论来自分诊座位 Routine,不构成认领。


    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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions