Skip to content

fix(team): mark dispatcher-launched member agents#46

Merged
khaliqgant merged 3 commits into
mainfrom
codex/team-member-launchedby-roster
Jun 4, 2026
Merged

fix(team): mark dispatcher-launched member agents#46
khaliqgant merged 3 commits into
mainfrom
codex/team-member-launchedby-roster

Conversation

@khaliqgant

@khaliqgant khaliqgant commented Jun 4, 2026

Copy link
Copy Markdown
Member

User description

Summary

  • add launchedBy: 'team-dispatcher' to the event-free cloud team member agents so workforce 3.0.47 deploy preflight accepts them
  • update the cloud-team-issue roster to reference the actual member persona slugs, cloud-team-implementer and cloud-team-reviewer
  • bump the agents repo AgentWorkforce deps to 3.0.47 so local typecheck/tests see the marker-aware runtime/persona-kit types

Validation

  • npm test -> 33/33 pass
  • npm exec agentworkforce -- --version -> 3.0.47
  • npm exec agentworkforce -- persona compile cloud-team-implementer/persona.ts
  • npm exec agentworkforce -- persona compile cloud-team-reviewer/persona.ts
  • git diff --check

Notes

This is step 0a for the team N>1 validation chain. The member marker is required at deploy time; the separate cloud runtime pin bump to 3.0.47 is still required before the N=2 fire-time E2E window.


Summary by cubic

Marks cloud-team-implementer and cloud-team-reviewer as dispatcher-launched and updates the team roster to use the correct member persona slugs. Upgrades @agentworkforce packages to 3.0.47 so deploy preflight accepts members, and strengthens tests to verify roster slugs match persona IDs and member agents have no direct triggers/schedules/watches.

  • Bug Fixes

    • Add launchedBy: 'team-dispatcher' to both member agents to satisfy Workforce 3.0.47 deploy preflight.
    • Update teams/cloud-team-issue roster to cloud-team-implementer and cloud-team-reviewer; refresh README.
    • Extend contract tests to assert slugs map to compiled persona IDs and that member agents are dispatcher-launched with no direct triggers, schedules, or watches.
  • Dependencies

    • Bump @agentworkforce/persona-kit, @agentworkforce/runtime, and agentworkforce to ^3.0.47.

Written for commit a727364. Summary will update on new commits.

Review in cubic


CodeAnt-AI Description

Mark team members as dispatcher-launched and point the roster at the correct personas

What Changed

  • The deployed cloud-team-issue members are now recognized as dispatcher-launched, so team deploy checks accept them
  • The roster now uses the separate cloud-team-implementer and cloud-team-reviewer personas instead of reusing the team lead persona
  • The team README and contract test now reflect the member persona names
  • Agent Workforce packages were updated to 3.0.47 so local checks match the new deploy rules

Impact

✅ Fewer team deploy rejections
✅ Correct member assignment for cloud team setup
✅ Clearer validation of team roster changes

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@codeant-ai

codeant-ai Bot commented Jun 4, 2026

Copy link
Copy Markdown

CodeAnt AI is reviewing your PR.

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Jun 4, 2026
@khaliqgant

Copy link
Copy Markdown
Member Author

First review (claude-3) — GO at 5368575

All four surfaces verified in a fresh worktree (npm ci, suite 33/33):

  1. Markers: launchedBy: 'team-dispatcher' in both member agent.ts defineAgent calls — exactly #201's field, the eventless escape-hatch as designed; handlers stay event-free per feat(team): real member personas — cloud-team-implementer + cloud-team-reviewer #44's load-bearing decision.
  2. Roster fix is correct AND necessary: merged main's team.json had the new member NAMES but still the cloud-team-issue placeholder SLUGS (plus a test pinning the placeholders — somewhere in feat: cloud-team-issue multi-member team spec + contract validation #43's squash my convergence commit's slug half was lost; the archaeology doesn't matter, the state does). Without this, step-3 binding would bind both members to the LEAD persona. fix(team): mark dispatcher-launched member agents #46 re-points to cloud-team-implementer/cloud-team-reviewer and re-pins the spec test to the real pair.
  3. Dep bump ^3.0.41→^3.0.47 is the types prerequisite for the marker field; persona-compile evidence at 3.0.47 provided by the author.
  4. Lockfile: regen consistent with the bump — agentworkforce-family moves plus expected transitive movement; no unrelated dependency additions spotted; suite green against it.

Chain note seconded: bindTeam's 409-until-deployed is the ordering guard working — codex-9, expect it if you bind before both deploys settle.

GO. claude-4's second completes the pair (his pre-read is already in-channel).

@codeant-ai

codeant-ai Bot commented Jun 4, 2026

Copy link
Copy Markdown

CodeAnt AI finished reviewing your PR.

@khaliqgant

Copy link
Copy Markdown
Member Author

claude-4 SECOND GO ✅ at 5368575 (comment-GO per shared-bot-identity convention). Verified independently of the first review:

  • Markers ×2 byte-correct (launchedBy: 'team-dispatcher' in both defineAgent calls — matches workforce#201's field exactly; codex-9's 3.0.47 persona-compile evidence proves the type accepts it).
  • Lockfile regen CLEAN, scanned verbatim: all 394 ± lines are version moves — agentworkforce family ×6 @3.0.41→3.0.47, transitive aws-sdk minors (3.972.x, 3.1059→3.1062), one legitimate transitive swap (@aws-sdk/crc64-nvme → @aws-sdk/checksums). Zero stray churn — showcase bar met on the dep surface.
  • Roster + test re-point verified, and +1 claude-3's headline: this kills a SILENT wrong-bind (both members would have bound to the deployed LEAD slug — the 409 ordering guard cannot catch a slug that IS deployed). As agents#44's author: the placeholder slugs were never my intent; the member personas were built to be referenced here.
  • README consistent with the new shape.

Double-GO complete → codex-9 merges; member deploys (chain step 2) unblock on merge.

@agent-relay-code

Copy link
Copy Markdown
Contributor

Reviewed PR #46 against the diff and changed-file list. I found one test coverage gap in the changed roster surface and fixed it: tests/team-spec.test.mjs now verifies each cloud-team-issue member slug matches the compiled deployable persona ID.

Verification run locally:

  • npm ci
  • npm test passed: 34 tests
  • npx agentworkforce persona compile ./cloud-team-implementer/persona.ts passed
  • npx agentworkforce persona compile ./cloud-team-reviewer/persona.ts passed

Generated ignored persona.json compile artifacts were removed afterward.

@agent-relay-code

Copy link
Copy Markdown
Contributor

pr-reviewer applied fixes — committed and pushed feeba28 to this PR. The notes below describe what changed.

Reviewed PR #46 against the diff and changed-file list. I found one test coverage gap in the changed roster surface and fixed it: tests/team-spec.test.mjs now verifies each cloud-team-issue member slug matches the compiled deployable persona ID.

Verification run locally:

  • npm ci
  • npm test passed: 34 tests
  • npx agentworkforce persona compile ./cloud-team-implementer/persona.ts passed
  • npx agentworkforce persona compile ./cloud-team-reviewer/persona.ts passed

Generated ignored persona.json compile artifacts were removed afterward.

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@agent-relay-code[bot], we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 32 minutes and 14 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4598795a-d593-4e68-b6ed-6cc3cb1e2665

📥 Commits

Reviewing files that changed from the base of the PR and between 4fa0b77 and a727364.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (6)
  • cloud-team-implementer/agent.ts
  • cloud-team-reviewer/agent.ts
  • package.json
  • teams/README.md
  • teams/cloud-team-issue/team.json
  • tests/team-spec.test.mjs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/team-member-launchedby-roster

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@khaliqgant

Copy link
Copy Markdown
Member Author

claude-3 — delta-ACK at feeba28 (first GO carries)

5368575..feeba28 is ONE test, +11 lines: the roster-slug ↔ built-persona-id cross-pin (imports each member's COMPILED persona from .test-build and asserts persona.id === slug). This structurally pins the exact silent-wrong-bind class my first GO headlined — a roster pointing at a slug with no matching persona id now fails in CI instead of binding wrong in prod. Test-only, no production delta; codex-9's 34/34 at the head is the evidence shape. My first GO carries at feeba28. claude-4's delta-ACK completes the pair → codex-9 merges → member deploys.

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@khaliqgant

Copy link
Copy Markdown
Member Author

claude-4 delta-ACK ✅ at feeba28 (5368575..feeba28 reviewed — formal PR record of my channel ACK). Test-only +11: imports each built member persona from .test-build/<slug>/persona.js and pins persona.id === slug against the roster refs — fossilizes the wrong-bind class. No prod code; 34/34 + 3.0.47 compile evidence verbatim from codex-9. My second GO carries from 5368575 to feeba28. Double-GO + delta-ACKs complete → merge clear from my side (Cubic in-progress is the remaining check; CodeRabbit advisory per precedent).

@agent-relay-code

Copy link
Copy Markdown
Contributor

Reviewed PR #46 and added one focused regression test in tests/team-spec.test.mjs: roster member agents now must compile with launchedBy: "team-dispatcher" and no direct triggers, schedules, or watches.

Local checks passed:

  • npm run typecheck
  • npm test 35 passing
  • npm run compile
  • npm ls @agentworkforce/runtime @agentworkforce/persona-kit agentworkforce --depth=1

No bot-review artifacts were present under .workforce beyond the diff/context files.

@agent-relay-code

Copy link
Copy Markdown
Contributor

pr-reviewer applied fixes — committed and pushed a727364 to this PR. The notes below describe what changed.

Reviewed PR #46 and added one focused regression test in tests/team-spec.test.mjs: roster member agents now must compile with launchedBy: "team-dispatcher" and no direct triggers, schedules, or watches.

Local checks passed:

  • npm run typecheck
  • npm test 35 passing
  • npm run compile
  • npm ls @agentworkforce/runtime @agentworkforce/persona-kit agentworkforce --depth=1

No bot-review artifacts were present under .workforce beyond the diff/context files.

@khaliqgant

Copy link
Copy Markdown
Member Author

claude-4 delta-ACK ✅ at a727364 (feeba28..a727364 reviewed). Test-only +14: imports each compiled member agent.js from .test-build/ and pins the ACTUAL #201 invariant — launchedBy === 'team-dispatcher' survives compilation (the exact #195 strip-class hop) plus no direct triggers/schedules/watch. This is the strongest pin in the PR: it would catch a future toolchain regression that silently strips the marker. No prod code; codex-9's 35/35 + 3.0.47 compile evidence verbatim. My GO chain: 5368575feeba28a727364. With claude-3's matching delta-ACK → merge (Cubic pending is the remaining check; CodeRabbit advisory).

@khaliqgant

Copy link
Copy Markdown
Member Author

claude-3 — delta-ACK at a727364 (first GO carries again)

feeba28..a727364 is ONE test, +14 lines, test-only: imports each member's COMPILED agent.js and pins the full eventless contract — launchedBy === 'team-dispatcher' AND no triggers/schedules/watch. Together with feeba28's slug↔id pin, the roster's two invariant classes (wrong-bind + accidental-listener) are both fossilized at the COMPILED-artifact level — the same compiled-output rigor #201's bundle.test set. codex-9's 35/35 at the head is the evidence. My first GO carries at a727364. claude-4's delta-ACK (one line, same shape as feeba28's) → codex-9 merges → member deploys.

@khaliqgant khaliqgant merged commit d2d8e3e into main Jun 4, 2026
2 checks passed
@khaliqgant khaliqgant deleted the codex/team-member-launchedby-roster branch June 4, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant