Redesign Account as the authoritative identity surface - #3237
Merged
AbigailDeng merged 2 commits intoAug 6, 2026
Merged
Conversation
AbigailDeng
force-pushed
the
fix/2026-08-06_account-identity-surface
branch
from
August 6, 2026 06:00
fc0bd8f to
27713e5
Compare
AbigailDeng
merged commit Aug 6, 2026
aa86b23
into
feat/2026-08-04_workflow-activity-vnext
13 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 solution
Account settings previously presented a flat subset of authentication data while the vNext shell independently rendered browser-stored identity. That could expose stale or contradictory principal state and did not distinguish session health, optional profile absence, authorization denial, or transient load failure.
This change makes
GET /api/auth/methe Account authority, derives a typed identity presentation once, and passes that same principal to the shell account control. Account now shows profile, workspace context, localized absolute and relative expiry, and explicit Active / Expiring soon / Expired / Invalid states. Expired and invalid sessions receive direct sign-in recovery. Support identifiers and claims remain collapsed, individually copyable, secondary, and secret-free.Impact paths
ConsoleAuthActionsoptional authoritative-principal contractBackend contract dependency
The current
GET /api/auth/mecontract does not provide a typed field-visibility reason. A successful response with a missing optional value is therefore rendered asNot provided; the frontend does not inferHidden by policy.The account service also does not provide a typed product-capability summary. Product access remains honestly labeled
Not loadedwith an explanatory note, while403is rendered asUnauthorizedand transient request failures remainNot loadedwith Retry. A backend contract extension is required before policy-hidden fields or detailed capability states can be rendered authoritatively.Local verification
python3 /Users/abigaildeng/.codex/skills/frontend-incremental-pr/scripts/frontend_change_scope.py --repo . --base origin/feat/2026-08-04_workflow-activity-vnextselected 3 Jest files and 12 static-check files.pnpm --dir apps/aevatar-console-web jest --selectProjects jsdom --runTestsByPath src/pages/workflow-activity-vnext/settings/accountIdentity.test.ts src/pages/workflow-activity-vnext/index.test.tsx src/shared/ui/ConsoleHeaderActions.test.tsx --runInBandpassed 3 suites and 86 tests.pnpm exec biome lint <12 analyzer-selected files>passed, 12 files checked with no fixes.bash tools/ci/test_stability_guards.shpassed.python3 apps/aevatar-console-web/docs/design-baselines/workflow-activity-vnext/verify-baseline.pypassed; 17/17 frames, byte-identical generator output.git diff origin/feat/2026-08-04_workflow-activity-vnext...HEAD --checkpassed.Visual verification
The local vNext Account route was opened at
/scopes/scope-alpha/workflow-activity-vnext/settings?section=account. The isolated worktree correctly preserved the sanitized return URL but stopped at the existing NyxID configuration gate becauseNYXID_BASE_URLwas not configured. No credential or authentication bypass was used. Automated integration tests cover the Account UI state families.Design declaration
Closes #3227
Post-rebase CI follow-up verification
pnpm exec jest src/pages/workflow-activity-vnext/index.test.tsx src/pages/workflow-activity-vnext/settings/accountIdentity.test.ts src/shared/ui/ConsoleHeaderActions.test.tsx src/locales/catalog.test.ts src/locales/hardcodedCopyAudit.test.ts --runInBand- passed 5 suites and 107 tests.pnpm exec biome checkon all 14 analyzer-selected frontend files - passed.git diff --check- passed.