Skip to content

persona-kit parseCapabilities drops cloud-only capabilities (teamSolve) → breaks cloud team-launch (cloud#1732) #182

Closed

Description

@khaliqgant

persona-kit parseCapabilities silently drops cloud-only capabilities (e.g. teamSolve) → breaks cloud team-launch

Tracking: AgentWorkforce/cloud#1732 (team-N=1 milestone, two-angle root-cause-locked).

Problem

packages/persona-kit/src/parse.ts parseCapabilities destructures ONLY {review, issueClaim, conflictAutofix, pullRequest} and drops every other capability key. Cloud defines a cloud-only capability teamSolve (CapabilityName = "review" | "conflictAutofix" | "teamSolve"); persona-kit doesn't know it, so it is silently stripped at parse.

Because the CLI runs this parse client-side before upload (@agentworkforce/deploy deploy.ts POSTs preflight.persona = parsePersonaSpec(json), preflight.ts:50), the cloud deployments endpoint never receives teamSolve → the persisted persona spec lacks it → cloud's isTeamLaunchN1 gate is permanently false → cloud-team-issue team-launch silently no-ops. (Verified live + by two independent code-reads; cloud#1732.)

Fix

parseCapabilities must preserve declared capabilities it doesn't recognize — pass-through unknown keys (preferred; persona-kit is platform-agnostic and shouldn't drop consumer-defined caps) OR add teamSolve to the known set. This single change fixes both the CLI preflight and the cloud-side parse.

⚠️ Publish chain (non-obvious — required for the fix to reach prod)

Published agentworkforce@3.0.41 → @agentworkforce/deploy pins @agentworkforce/persona-kit@3.0.41 EXACT (the workspace:* resolves to a pinned version at publish). So publishing persona-kit alone does NOT reach npx agentworkforce@3.0.41. Required:

  1. Fix parseCapabilities + test → publish persona-kit 3.0.42.
  2. Bump @agentworkforce/deploy + agentworkforce (CLI) persona-kit deps → publish agentworkforce 3.0.42.
  3. Redeploy: npx -p agentworkforce@3.0.42 deploy personas/cloud-team-issue/persona.json --mode cloud --on-exists update.
  4. Verify (cloud #1724 TEMP-DIAG, kept live): live diag maxTeamMembers=1 + new latestVersion=3 + isTeamLaunchN1=true → spawn = milestone.

⚠️ Test discipline (load-bearing)

The test MUST assert parseCapabilities({ teamSolve: { enabled: true, maxMembers: 1 } }) PRESERVES teamSolve (RED pre-fix). Do NOT inject teamSolve downstream of the parse — that test-models-wrong-input flaw green-washed two cloud-side attempts (cloud#1719, #1729).

🤖 Generated with Claude Code

Activity

  1. khaliqgant commented on Jun 3, 2026

    @khaliqgant
    MemberAuthor

    ✅ FIXED & PROVEN LIVE — 2026-06-03

    Resolved by #183 (fix(persona-kit): preserve declared capabilities), merged to main @ cfbfa698.

    parseCapabilities now passes through every declared capability key instead of destructuring only the four known ones — so cloud-only capabilities like teamSolve survive the parse (CLI preflight and cloud-side). Value-validation is preserved (parseCapabilityValue per key, arrays rejected), ProactiveCapabilities gained an index signature, and a direct-parser RED-pre test asserts parseCapabilities({teamSolve}) output preserves it.

    Published lockstep 3.0.42 (persona-kit + @agentworkforce/cli + agentworkforce; workspace:* → EXACT at publish), then redeployed the cloud consumer (cloud-team-issue). Live dispatcher diag post-redeploy:

    latestVersion:  3      (was 2 — new version persisted with teamSolve)
    latestSpecHash: 7e3ec165…39bbaa   (≠ baseline 0afb61cd…150d51)
    maxTeamMembers: 1      (was null — the gate now reads teamSolve.maxMembers)
    isTeamLaunchN1: true   (was false)
    

    End-to-end proven on prod: parser → upload bundle → cloud persist → dispatcher gate. Closing as resolved. (Cloud tracking issue AgentWorkforce/cloud#1732 also closed.)

  2. khaliqgant commented on Jun 3, 2026

    @khaliqgant
    MemberAuthor

    ⚠️ Mechanism correction (fix is real; "#183 end-to-end alone" was incomplete)

    The proven-live verdict stands (teamSolve in persisted v3, maxTeamMembers=1, gate TRUE on prod). But the live green currently relies on #183 + the cloud-side re-attach (cloud#1729) together:

    • The CLI preflight (persona-kit 3.0.42 / this fix) delivers teamSolve to cloud ✅.
    • The cloud worker re-parses with its own bundled persona-kit, still ^3.0.38 (pre-fix(persona-kit): preserve declared capabilities #183), which re-strips teamSolve. cloud#1729's re-attach rescues it.

    So this persona-kit fix is correct and necessary, but the cloud consumer must bump its bundled @agentworkforce/persona-kit to 3.0.42 for the source fix to apply at the cloud-side parse point. Tracked as a cloud-side fast-follow (cloud#1732 thread). Persona-kit issue remains resolved.

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