feat(web): reveal exact agent in onboarding - #2181
Conversation
yuezengwu
left a comment
There was a problem hiding this comment.
Reviewed exact head 0934b5bc5cdb2e829e1d184ade8f47fd8021d6a6.
Goal and core changes: this replaces the generic personal-agent onboarding finale with a shared exact-agent arrival for Admin and Invitee paths. The mounted payoff resolves one active managed agent, shows its avatar/identicon and display name, and passes that same object into kickoff while the existing readiness, tree-binding, scan-fix, orientation, and completion branches remain behind the shared surface.
No blockers found. The diff preserves the durable onboarding boundary: this remains one value-first launch screen, keeps repository/provider/Context Tree readiness out of the copy, and does not change kickoff identity or idempotency. There are no core data-structure or database changes in this PR.
Diff-only review; I did not rerun tests or QA.
baixiaohang
left a comment
There was a problem hiding this comment.
Recommendation: approve
- Rationale: The payoff now reveals one resolved personal agent and reuses that same target for kickoff while preserving the existing onboarding launch boundaries.
Risk level: C
- Path baseline:
packages/web/**only -> C. - Semantic lift: none; the change does not alter subscriptions, WebSocket parsing, or shared data-layer semantics.
PR summary
- Author / repo: Gandy2025 / agent-team-foundation/first-tree
- Problem: Admins and invitees currently reach a generic onboarding finale that does not show which personal agent they are about to meet.
- Approach: Resolve one active managed agent per mounted payoff screen, render that agent's name and avatar/identicon through one shared arrival surface, and pass the same object into the existing kickoff branches.
- Impacted modules: Web onboarding start-chat UI, copy, preview fixtures, and regression tests.
Review findings
- ✅ The focus/reconnect refetch controls and mount-scoped query key keep the revealed identity stable, and every Admin/Invitee kickoff branch receives that resolved object.
- ✅ The repository, provider, and Context Tree readiness differences remain behind the shared surface; scan-fix, orientation, tree-binding, and completion calls retain their prior semantics.
⚠️ Non-blocking:ManagedAgentdoes not currently carryavatarColorToken, so a resumed agent with a manager-selected identicon color can appear with its UUID-derived hue here and switch back to the configured hue in Chat. Consider threading the canonical color token through this identity source in a follow-up. [packages/web/src/pages/onboarding/steps/step-start-chat.tsx:118]
Action taken
- Approved exact head
0934b5bc5cdb2e829e1d184ade8f47fd8021d6a6. - Diff-only review; I did not rerun tests or QA. All reported GitHub checks were passing when approval was submitted.
…-arrival # Conflicts: # packages/web/src/pages/__tests__/web-dom-interactions.test.tsx
|
Synced the latest The only conflict was in Exact-head validation:
No dedicated Mobile route, page, navigation, or feature gate was added; 320px remains a generic Web narrow-viewport robustness check only. Please re-review exact head |
baixiaohang
left a comment
There was a problem hiding this comment.
Recommendation: approve
- Rationale: The latest head only syncs current
main; its single conflict resolution preserves both this PR's exact-agent arrival coverage andmain's new setup-prompt boundary assertions.
Risk level: C
- Path baseline: the PR diff remains limited to
packages/web/**. - Semantic lift: none.
PR summary
- Author / repo: Gandy2025 / agent-team-foundation/first-tree
- Problem: The personal-agent onboarding payoff does not currently reveal the exact agent the user is about to meet.
- Approach: Resolve one active managed agent per mounted payoff screen, render its identity through a shared Admin/Invitee arrival, and pass that same object into the existing kickoff paths.
- Impacted modules: Web onboarding start-chat UI, copy, previews, and regression tests.
Review findings
- ✅ The eight previously reviewed PR files outside the conflicted DOM suite are byte-for-byte unchanged from approved head
0934b5bc5cdb2e829e1d184ade8f47fd8021d6a6. - ✅ The conflict resolution adds the five
View setup promptabsence assertions introduced onmainwhile retaining the Agent Arrival copy, CTA, and kickoff assertions from this branch. ⚠️ The prior non-blockingavatarColorTokenobservation remains unchanged; the sync neither introduces nor worsens it.
Action taken
- Approved exact head
1c0fcb9f0d089a6b8102a0c90ebfc8dd4c9827b5. - Incremental diff-only review; I did not rerun tests or QA. New-head GitHub checks were still running when this review was submitted.
yuezengwu
left a comment
There was a problem hiding this comment.
Re-reviewed exact head 1c0fcb9f0d089a6b8102a0c90ebfc8dd4c9827b5 after syncing current main.
The core implementation is unchanged from the previously approved head. I inspected the merge parents, current PR diff, combined conflict diff, and the resolved test file. The only conflict resolution preserves the Agent Arrival text, CTA, and kickoff assertions from this PR while also retaining the five new View setup prompt absence assertions from main.
No blockers found. The PR remains limited to the same nine Web onboarding UI/test files, preserves the durable value-first start-chat and readiness boundaries, and introduces no core data-structure or database changes.
Incremental diff-only review; I did not rerun tests or QA.
|
Merged after exact-head approvals and green CI. The first
|
Summary
Validation
pnpm checkpnpm typecheck(includes the Web production build)pnpm testProduct boundary
This remains the value-first start-chat payoff. It does not change Team-agent quick start, External BYO Context, kickoff kinds or idempotency, first-Chat orientation, onboarding completion/resume semantics, or capability ownership. Repo, Context Tree, and provider readiness remain outside the arrival copy.
The implementation follows the durable onboarding constraints in
system/cloud/onboarding.md.Review