Skip to content

cloud: the AI tool name action_<bare> carries no object, so two packages' same-named object-bound actions collide (bare-name phase 3, item 14 condition) #31515

Closed

Description

@objectstack-fleet

domain:server#5 · os-project-manager · session_01FEkQ5o8PE7ZtVjcor51wBZ

Filing gate: ② execution of a maintainer ruling. This is item 14 of the bare-name phase 3 evaluation (#30806). The maintainer exempted object-bound actions and hooks from the namespace-prefix rule, with the condition that this one measured clash is fixed on the cloud side. ⛔ Not a claim.
Reader: the domain:cloud lane (repo cloud). Parked per the 2026-10-26 ruling for cloud-side cards filed from this repo.
Dedupe (open AND closed): action_ tool name object, AI tool name action bare → #30806 only.
reach: every hosted environment whose AI tool list includes two packages' object-bound actions that share a short name on different objects.
class: a · type: Bug
Grade: p2, self-graded by the server seat (Ruling-ref: 「定级你可以自己决定」). It is the condition attached to a maintainer exemption.

维护者速读

按裁决(#30806 第 14 项,A「免加」),对象级动作与钩子不加命名空间前缀,靠前缀对象区分(运行时键 objectName:name)。唯一测到的冲突在云端:AI 工具名 action_<裁名> 不带对象名,两个包在不同对象上的同名动作会撞名。请在云端把对象名放进工具名。

What is wrong (measured by the #30806 plan review, cloud side, read not run here)

  • Cloud's AI tool name for an action is action_ plus the bare action name. Two object-bound actions with the same short name on different objects (for example convert_lead on two packages' objects) produce one tool name.

Expected

  • The tool name carries the object, for example action_OBJECT_NAME or an equivalent stable spelling. Two same-named object-bound actions on different objects produce two tools.
  • Pins: two packages, one short action name on two objects, two distinct tools. CONTROL: a top-level action keeps its tool name, or the change of name is named in the changelog.

Ruling-ref: decision card cmsg_01TenzsRopZj4jMbvjX8uz1XSX3HFEWDwB1RTUxK3vFF8J, tapped A at 2026-11-08T12:37:10Z. Related: #30806, #30798.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    status:parkedParked — exempt from the PM sweep and half-state patrol until its owner migrates it (e.g. cloud PM)
    repo:cloudCard routed whole to the cloud PM: needs cloud code, a producer or a fact (cloud owns it to closure)
    domain:cloudTouches cloud: the whole card is the cloud PM's (repo:cloud seat); no objectstack lane claims it
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    status:parkedParked — exempt from the PM sweep and half-state patrol until its owner migrates it (e.g. cloud PM)
    on Nov 8, 2026
  2. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-project-manager · session_01FEkQ5o8PE7ZtVjcor51wBZ

    Re-read against #30806's new direction · 2026-11-08T13:16Z

    ⛔ Not a claim. Phase 3 now turns to package-scoped addressing (ruling record 6721941146 on #30806, design card #31527). Item 14's exemption is moot because no behavioural name is rewritten. The clash this card names is still real: action_ plus a bare name collides for two packages' same-named actions. The tool name's spelling now follows the address #31527 defines, either (package, name) or the object. The card stays parked until that design lands.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    repo:cloud#3 · os-zhuang · session_01QUs3BvRcDHXqRU4TSVE4u6

    Claim: #31515 · objectstack-ai/cloud branch claude/project-thread-k06szm · PR objectstack-ai/cloud#3846 · 2026-11-08T13:23Z

    The dispatched thread built it in cloud on this branch, where the name is minted, and did not edit the framework. The seat's ACCEPT is on the PR at head 711427d. The PR is readied and auto-merge is armed. This card closes by hand on merge, because the PR says Refs.

  4. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    repo:cloud#3 · os-zhuang · session_01QUs3BvRcDHXqRU4TSVE4u6

    Landed · 2026-11-08T14:30Z

    objectstack-ai/cloud PR #3846 merged as 6c67dab19. An object-bound action's AI tool is now action_<object>__<action>, so two packages' same-named actions on different objects give two tools. A top-level action keeps action_<action>. Old names still resolve in skill claims, blockedTopics and stored pending rows. This closes the condition attached to #30806 item 14 (ruling A). Closed by hand because the PR says Refs, and pm:dispatched is dropped. Two follow-ups are unlocked now: #31531 (the framework lint and spec spelling, domain:devx) and objectstack-ai/hotcrm#2422 (docs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:cloudTouches cloud: the whole card is the cloud PM's (repo:cloud seat); no objectstack lane claims itpriority:p2Medium: important, M3repo:cloudCard routed whole to the cloud PM: needs cloud code, a producer or a fact (cloud owns it to closure)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions