fix(channels): edit only label and skill name - #3647
Merged
AbigailDeng merged 2 commits intoSep 16, 2026
Merged
AbigailDeng merged 2 commits into
AbigailDeng merged 2 commits into
Conversation
AbigailDeng
merged commit Sep 16, 2026
3dfb85f
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.
Problem and behavior
The Edit Telegram page currently exposes Skill name and Services, while the requested editing scope is Label and Skill name. This change adds real Label editing and removes the Services picker and its inventory request from the editor. The form keeps the existing centered Aevatar layout and Cancel / Save changes actions.
/api/v1/channel-bots/{botId}with onlylabel; the response must confirm the exact bot identity and new label.authorization_modeandservice_ids, so the backend preserves its current authorization instead of overwriting it with a stale form snapshot.Related to #3617. The status N+1 follow-up in #3643 is separate from this change.
Contract evidence
feature/integrateat6c929a00db3d7636c91bc719478043a5fd331f7c:ChannelCallbackEndpoints.csretainsCurrentServiceSelection(registration)when the update omits service selection.afdb3ef06a4e14a86d810a14982de3be01252090:backend/src/handlers/channel_bots.rssupports label-only PATCH, validates 1–128 UTF-8 bytes after trimming, and returns the updated bot. No backend changes are needed.Local verification
All frontend commands below ran from
apps/aevatar-console-webunless stated otherwise.Dependency selection preflight selected exactly 7 related suites:
pnpm exec jest --findRelatedTests src/pages/workflow-activity-vnext/channels/ChannelEditPage.tsx src/shared/api/channelBotsApi.ts src/shared/api/channelRuntimeConfigApi.ts --listTests --runInBandExecuted those suites explicitly, including every changed test file: 7 suites, 178 tests passed.
pnpm exec jest --runTestsByPath src/pages/workflow-activity-vnext/index.test.tsx src/pages/workflow-activity-vnext/channels/TelegramConnectionPage.test.tsx src/pages/workflow-activity-vnext/channels/ChannelsPage.test.tsx src/pages/workflow-activity-vnext/channels/ChannelEditPage.test.tsx src/pages/workflow-activity-vnext/channels/ChannelAuthorizedServices.test.tsx src/shared/api/channelBotsApi.test.ts src/shared/api/channelRuntimeConfigApi.test.ts --runInBandTargeted locale checks: 2 suites, 14 tests passed.
pnpm exec jest --runTestsByPath src/locales/catalog.test.ts src/locales/hardcodedCopyAudit.test.ts --runInBandChanged-file static checks: 8 files passed.
pnpm exec biome check src/locales/channelMessages.en-US.ts src/locales/channelMessages.zh-CN.ts src/pages/workflow-activity-vnext/channels/ChannelEditPage.tsx src/pages/workflow-activity-vnext/channels/ChannelEditPage.test.tsx src/shared/api/channelBotsApi.ts src/shared/api/channelBotsApi.test.ts src/shared/api/channelRuntimeConfigApi.ts src/shared/api/channelRuntimeConfigApi.test.tsAdditional checks passed:
Full frontend suite, full lint, typecheck, and production build are delegated to GitHub CI under the personal incremental-validation policy. No reliable repository-native affected typecheck target is available, so local typecheck was skipped.
CI regression fix
CI run
35052548490failed one test in shard 4:AevatarTooltipImportGuard.test.tsreported thatChannelDetailsPage.tsximported Ant Design's Tooltip directly. The other three test shards passed; the aggregate console-web check failed because shard 4 failed.Commit
d09c8a042replaces that direct Tooltip with the existing sharedAevatarTooltipfor the channel-name retry button. It keeps the existing retry action and accessible label while using the shared hover/focus behavior and styles. No test assertion or guard is weakened.The same failure was reproduced locally before the fix. After the fix, the guard and the owning Channels page tests passed: 2 suites, 17 tests.
Dependency preflight selected five suites through the route imports. The owning Channels suite exercises the affected details page, including channel-name reload; the unrelated route-import fanout was excluded. Existing coverage already reproduces the regression, so no duplicate test was added. Static checking passed for the one changed file. Full frontend testing, typecheck, and build remain delegated to GitHub CI.
Design baseline
apps/aevatar-console-web/docs/design-baselines/workflow-activity-vnext/aevatar-workflow-activity-vnext.excalidraw30e74d7b410ae72c4c91432355436679033679c54c10b1702908435b001577dedocs/superpowers/specs/2026-08-04-workflow-activity-vnext-design.mddocs/superpowers/specs/2026-08-04-workflow-activity-vnext-user-paths.md