Integrate console with Team Entry Member HTTP API#786
Open
potter-sun wants to merge 4 commits into
Open
Conversation
This reverts commit f8104a3.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Closes #785.
This PR integrates the Aevatar console frontend with the new Team Entry Member backend HTTP API from
2026-05-21-studio-team-entry-member-http-api.md. The key requirement is to honor the backend contract instead of treating entry-member selection as a purely local UI state: mutation endpoints return202 Accepted, the Team read model is eventually consistent, and team invocation is only valid when the selected entry member is bind ready and backed by a published service.Backend API Integration
PUT /api/scopes/{scopeId}/teams/{teamId}/entry-memberto select a team entry member.DELETE /api/scopes/{scopeId}/teams/{teamId}/entry-memberto clear the team entry member.202 Acceptedacknowledgements, not as committed read-model state.POST /api/scopes/{scopeId}/teams/{teamId}/invoke/{endpointId}:stream.entryMemberIdas selection identity only; readiness still comes from member lifecycle andpublishedServiceId.Frontend Behavior
acceptedresult honestly.entryMemberIdbefore opening Team Detail in test mode.testTeam=1deep-linking and a top-level Test Team action.bind_readyand has a non-emptypublishedServiceId.Impact
Frontend only. The console now follows the backend Team Entry Member API semantics end to end across Studio, Team Detail, navigation, and runtime invocation APIs.
Validation
git diff --checknpm --prefix apps/aevatar-console-web run tscnpm --prefix apps/aevatar-console-web run jest -- src/pages/teams/detail.test.tsx src/pages/studio/index.test.tsx src/pages/studio/components/bind/StudioMemberBindPanel.test.tsx src/shared/navigation/teamRoutes.test.ts src/shared/api/runtimeRunsApi.test.ts src/shared/studio/api.test.ts --runInBandbash tools/ci/test_stability_guards.shNotes: Jest still prints existing watchman recrawl and React
act(...)warnings, but all selected suites passed.