feat(channels): suggest and select active NyxID account services - #3679
Merged
AbigailDeng merged 5 commits intoSep 29, 2026
Merged
AbigailDeng merged 5 commits into
AbigailDeng merged 5 commits into
Conversation
…y-vnext' into feat/2026-09-28_channel-skill-services # Conflicts: # apps/aevatar-console-web/src/pages/workflow-activity-vnext/channels/ChannelServicePicker.tsx # apps/aevatar-console-web/src/pages/workflow-activity-vnext/channels/connectionStyles.ts
AbigailDeng
merged commit Sep 29, 2026
9842ab8
into
feat/2026-08-04_workflow-activity-vnext
17 checks passed
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.
Selecting a Skill in Channels now shows backend service recommendations, and both Bind and Edit let users choose active services available to their NyxID account even when those services were omitted at login. Remove the Manage service access button, OAuth consent instructions and channel consent-return drafts. For example, an active Firecrawl instance absent from the login token is visible, selectable and submitted by its exact UserService ID.
This console PR targets
feat/2026-08-04_workflow-activity-vnext. Backend discovery is delivered separately in #3683, targetingfeature/integrate. Related issue: #3678.Behavior and contracts
GET /api/skills/service-recommendations?skillName=...; Skill resolution, catalog reads and inference belong to the backend. Evidence remains advisory. Selecting or clearing a Skill does not automatically select services or discard manual choices./api/v1/user-servicesinventory determines activity and account availability. Channel forms no longer intersect it with loginallowed_service_idsorallow_all_services. Recommendations and manual selection use the same exact-instance boundary.feature/integrate, already verifies active UserService instances, account/organization ownership and the independent channel Agent Key scope plan. No backend change is needed for this selection rule. Organization viewer entries denied by NyxID remain unavailable; existing platform-required service rules remain in place.Affected paths: shared Channels inventory/recommendation adapters; shared Bind/Edit form, picker, recommendation and availability components; query keys; English/Chinese messages; focused regression tests. Updated
2026-09-28-channel-service-access.mdand2026-09-28-channel-skill-services.mddocument the final account-inventory semantics. The net PR diff contains only console files.Local verification
42 tests across nine files passed. Biome passed for 17 changed frontend files. Test stability guards and whitespace checks passed.
Dependency preflight selected ten files. The unrelated workflow
index.test.tsxwas excluded; the nine affected Channels/API files ran explicitly. High-fan-out locales and styles were excluded from dependency discovery. Existing consent-return tests were replaced with regressions for the new selection contract; coverage includes empty login grants on both routes, exact-ID saving, Bind completion, unavailable-service cleanup, failed refreshes, reactivation and Skill suggestions outside login consent.From repository root:
From
apps/aevatar-console-web:The actual Biome invocation used this exact list from the scope analyzer via Python subprocess. Full frontend suite, typecheck and production build are delegated to GitHub CI by personal local workflow policy. No repository-native affected typecheck is available. Live authenticated browser/save verification was not run.
Design baseline