Skip to content

Fix deleted service labels in channel details - #3689

Merged
AbigailDeng merged 1 commit into
feat/2026-08-04_workflow-activity-vnextfrom
fix/2026-09-29_hide-deleted-channel-services
Sep 29, 2026
Merged

AbigailDeng merged 1 commit into
feat/2026-08-04_workflow-activity-vnextfrom
fix/2026-09-29_hide-deleted-channel-services

Conversation

@AbigailDeng

Copy link
Copy Markdown
Contributor

Problem and behavior

A deleted NyxID UserService can remain in a channel's saved authorization IDs. Channel details previously rendered that unresolved ID as a service label. After a successful account inventory read, details now show only saved services still present in that inventory, joined by exact UserService ID. Existing inactive services and services outside the current login grants retain their names.

Initial loading no longer flashes raw IDs. If every saved service is absent, the localized empty state says “No services to display” without claiming that saved authorization was revoked. Failed inventory reads preserve saved IDs and any cached names with the existing retry action; a successful retry applies the inventory filter. This includes failure when an older cached inventory exists. The change only affects presentation and does not mutate authorization or introduce automatic refresh.

Scope and regression coverage

  • Update ChannelAuthorizedServices, its English/Chinese empty-state messages, and the channel detail feature contract.
  • Correct the existing deleted-service expectation and retry assertions.
  • Add three component integration cases for delayed loading, all saved services absent, and refresh failure with cached names. Existing route coverage continues to verify inactive services, exact ID matching, no automatic refresh, and safe caching.
  • Preserve the existing compact, wrapping service-label layout and shared loading/retry controls.

Local verification

All commands ran from the repository root unless noted.

  • Scope analysis: python3 /Users/abigaildeng/.codex/skills/frontend-incremental-pr/scripts/frontend_change_scope.py --repo . --base origin/feat/2026-08-04_workflow-activity-vnext — five task files identified.
  • Dependency preflight: pnpm --dir apps/aevatar-console-web exec jest --listTests --runInBand --findRelatedTests src/pages/workflow-activity-vnext/channels/ChannelAuthorizedServices.tsx — selected seven files. Rejected automatic execution because the aggregate index.test.tsx includes unrelated Workflow/Activity domains. Locale catalogs were excluded from dependency discovery because of their broad import fan-out.
  • Changed and directly related tests: pnpm --dir apps/aevatar-console-web exec jest --runInBand --runTestsByPath src/pages/workflow-activity-vnext/channels/ChannelAuthorizedServices.test.tsx src/pages/workflow-activity-vnext/channels/ChannelsPage.test.tsx src/locales/catalog.test.ts — 3 suites, 19 tests passed.
  • Changed-file static checks: pnpm --dir apps/aevatar-console-web exec biome check src/pages/workflow-activity-vnext/channels/ChannelAuthorizedServices.tsx src/pages/workflow-activity-vnext/channels/ChannelAuthorizedServices.test.tsx src/locales/channelMessages.en-US.ts src/locales/channelMessages.zh-CN.ts — passed for all four files after applying Biome formatting to the two component/test files.
  • Test stability guard: PATH="/opt/homebrew/opt/python@3.12/libexec/bin:$PATH" bash tools/ci/test_stability_guards.sh — passed. The initial default-Python invocation encountered the existing guard's Python 3.10+ type syntax on macOS Python 3.9; rerunning with installed Python 3.12 completed all checks.
  • git diff --check and git diff --cached --check — passed.
  • Full frontend suite, full typecheck, and production build are delegated to GitHub CI under the personal local-validation policy. No repository-native affected typecheck target exists. Live browser/deployment verification was not run for this rendering fix.

Design baseline

Design baseline:
  apps/aevatar-console-web/docs/design-baselines/workflow-activity-vnext/
Primary design:
  aevatar-workflow-activity-vnext.excalidraw
Design SHA-256:
  30e74d7b410ae72c4c91432355436679033679c54c10b1702908435b001577de
Contract specification:
  apps/aevatar-console-web/docs/superpowers/specs/
  2026-08-04-workflow-activity-vnext-design.md
User paths:
  apps/aevatar-console-web/docs/superpowers/specs/
  2026-08-04-workflow-activity-vnext-user-paths.md
Authentication and localization:
  Existing Aevatar login, callback, session, returnTo, and Umi locale logic.
Production data source:
  Real APIs and API-acknowledged user actions only; mocks remain test-only.
Baseline integrity:
  Design assets unchanged; baseline regeneration/verification is not required.

@AbigailDeng
AbigailDeng merged commit 46ce8bd into feat/2026-08-04_workflow-activity-vnext Sep 29, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant