feat(web): rationalize settings IA into personal-preferences shell with admin rehoming [SPRINT-026]
Settings shell now owns only personal user preferences (appearance, language, layout, AI assistant). All 14 admin/tenant/ops leaves converted to controlled redirects pointing at their canonical owners (Administration, Setup, Ops). Language merged into user-preferences. Identity-providers rehomed from settings to administration as canonical owner. Navigation config updated. 22 new route tests added. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-SETIA-001 - Audit and classify every settings route
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Product Manager, Developer (FE)
|
||||
Task description:
|
||||
@@ -32,12 +32,12 @@ Task description:
|
||||
- Capture whether each leaf is already visible somewhere else in the product, whether it overlaps an existing page, and whether its current label truthfully matches what the page actually does.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Every mounted `/settings/*` route is classified into a single ownership bucket.
|
||||
- [ ] Existing visible entry points outside Settings are identified for admin/setup leaves.
|
||||
- [ ] Duplicate or misleading leaves are called out explicitly before implementation begins.
|
||||
- [x] Every mounted `/settings/*` route is classified into a single ownership bucket.
|
||||
- [x] Existing visible entry points outside Settings are identified for admin/setup leaves.
|
||||
- [x] Duplicate or misleading leaves are called out explicitly before implementation begins.
|
||||
|
||||
### FE-SETIA-002 - Freeze the target IA and backward-compatibility contract
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-001
|
||||
Owners: Product Manager, UX
|
||||
Task description:
|
||||
@@ -45,25 +45,25 @@ Task description:
|
||||
- Decide which current URLs remain as redirects, which URLs are removed entirely, and which labels need to change for operator clarity.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] A final ownership decision exists for each current settings leaf.
|
||||
- [ ] Redirect-vs-removal behavior is defined for every legacy or misleading route.
|
||||
- [ ] The target IA is concise enough to explain in one operator-facing diagram or note.
|
||||
- [x] A final ownership decision exists for each current settings leaf.
|
||||
- [x] Redirect-vs-removal behavior is defined for every legacy or misleading route.
|
||||
- [x] The target IA is concise enough to explain in one operator-facing diagram or note.
|
||||
|
||||
### FE-SETIA-003 - Build the personal-settings shell and navigation model
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-002
|
||||
Owners: UX, Developer (FE)
|
||||
Task description:
|
||||
- Redesign the Settings shell around personal preferences only, with explicit sections such as Appearance, Language, Assistant, and Navigation/Layout.
|
||||
- Replace the current “global sidebar owns navigation” fiction with either an in-page settings nav or a sectioned preferences page that is visibly self-contained and understandable.
|
||||
- Replace the current "global sidebar owns navigation" fiction with either an in-page settings nav or a sectioned preferences page that is visibly self-contained and understandable.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] The Settings shell has a truthful navigation model for personal preferences.
|
||||
- [ ] The shell works on desktop and mobile without relying on hidden URL-only leaves.
|
||||
- [ ] User-menu entry points land in a settings experience that is obviously personal, not administrative.
|
||||
- [x] The Settings shell has a truthful navigation model for personal preferences.
|
||||
- [x] The shell works on desktop and mobile without relying on hidden URL-only leaves.
|
||||
- [x] User-menu entry points land in a settings experience that is obviously personal, not administrative.
|
||||
|
||||
### FE-SETIA-004 - Merge overlapping personal preference leaves
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-003
|
||||
Owners: Developer (FE), UX
|
||||
Task description:
|
||||
@@ -71,12 +71,12 @@ Task description:
|
||||
- Preserve deep-link compatibility with redirects or anchored sections where helpful, but remove duplicate editing surfaces.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Language preferences are owned by the personal settings experience instead of a duplicate page.
|
||||
- [ ] Duplicate personal-preference pages are removed or converted into thin redirects.
|
||||
- [ ] Preference-saving behavior remains intact after the merge.
|
||||
- [x] Language preferences are owned by the personal settings experience instead of a duplicate page.
|
||||
- [x] Duplicate personal-preference pages are removed or converted into thin redirects.
|
||||
- [x] Preference-saving behavior remains intact after the merge.
|
||||
|
||||
### FE-SETIA-005 - Rehome admin, tenant, and operations configuration leaves
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-002
|
||||
Owners: Developer (FE), Product Manager
|
||||
Task description:
|
||||
@@ -84,12 +84,12 @@ Task description:
|
||||
- Ensure these pages are discoverable from the correct Setup/Ops/Admin entry points instead of surviving only as hidden Settings URLs.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Admin/setup leaves no longer present themselves as user settings.
|
||||
- [ ] Canonical owner routes expose visible entry points for the rehomed capabilities.
|
||||
- [ ] Legacy `/settings/*` bookmarks still resolve through controlled redirects where required.
|
||||
- [x] Admin/setup leaves no longer present themselves as user settings.
|
||||
- [x] Canonical owner routes expose visible entry points for the rehomed capabilities.
|
||||
- [x] Legacy `/settings/*` bookmarks still resolve through controlled redirects where required.
|
||||
|
||||
### FE-SETIA-006 - Remove or collapse wrapper and alias-only settings pages
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-005
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
@@ -97,12 +97,12 @@ Task description:
|
||||
- Keep the compatibility surface focused on redirects, not on maintaining duplicate shells with duplicated copy.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Alias-only settings pages are reduced to redirects or removed.
|
||||
- [ ] No standalone wrapper remains if its only action is to link elsewhere.
|
||||
- [ ] Route ownership becomes obvious from the code tree.
|
||||
- [x] Alias-only settings pages are reduced to redirects or removed.
|
||||
- [x] No standalone wrapper remains if its only action is to link elsewhere.
|
||||
- [x] Route ownership becomes obvious from the code tree.
|
||||
|
||||
### FE-SETIA-007 - Add focused route, nav, and UX regression coverage
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-004
|
||||
Owners: Test Automation, Developer (FE)
|
||||
Task description:
|
||||
@@ -110,12 +110,12 @@ Task description:
|
||||
- Include tests that prove hidden pages are now either visible from the right place or intentionally redirected.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Angular route/nav tests cover the new personal settings shell and key redirects.
|
||||
- [ ] Regression coverage exists for at least the current user-menu entry plus representative admin/setup redirects.
|
||||
- [ ] Known IA edge cases are documented in the sprint log or feature note.
|
||||
- [x] Angular route/nav tests cover the new personal settings shell and key redirects.
|
||||
- [x] Regression coverage exists for at least the current user-menu entry plus representative admin/setup redirects.
|
||||
- [x] Known IA edge cases are documented in the sprint log or feature note.
|
||||
|
||||
### FE-SETIA-008 - Sync docs and ship the IA decision
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-SETIA-007
|
||||
Owners: Documentation author, Project Manager
|
||||
Task description:
|
||||
@@ -123,21 +123,23 @@ Task description:
|
||||
- Ensure future dead-code or preservation reviews have a truthful owner map for Settings.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] UI docs reflect the final Settings ownership model.
|
||||
- [ ] UI task/plan docs reference the shipped IA.
|
||||
- [ ] A checked-feature note exists for the implemented settings rationalization.
|
||||
- [x] UI docs reflect the final Settings ownership model.
|
||||
- [x] UI task/plan docs reference the shipped IA.
|
||||
- [x] A checked-feature note exists for the implemented settings rationalization.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created to rationalize Settings into a truthful personal-preferences surface and rehome admin/setup leaves to their canonical owners. | Codex |
|
||||
| 2026-03-08 | All tasks DONE. Audited 20 settings child routes and classified into 3 personal-preference, 11 admin/tenant-config, and 6 ops/wrapper buckets. Settings default changed from Integrations to User Preferences. 14 admin/ops leaves converted to redirects pointing at their canonical owners (administration, setup, ops). Language merged into user-preferences via redirect. Identity-providers rehomed from settings to administration as canonical owner. Navigation config updated. 22 new route tests added. All 35 settings+trust tests pass. Build clean. | Developer (FE) |
|
||||
|
||||
## Decisions & Risks
|
||||
- Current risk: the existing Settings shell mixes user preferences with admin/setup pages, making most leaves either URL-only or misleadingly named.
|
||||
- UX principle: Settings must answer “what can I personalize for myself?” while Setup/Admin answer “what do I configure for the installation or tenant?”
|
||||
- UX principle: Settings must answer "what can I personalize for myself?" while Setup/Admin answer "what do I configure for the installation or tenant?"
|
||||
- Compatibility risk: old bookmarks may point to `/settings/*` admin leaves; mitigate with explicit redirects and route tests instead of duplicate shells.
|
||||
- Decision: `/administration/identity-providers` now loads the component directly instead of redirecting back to `/settings/identity-providers`, breaking the redirect loop.
|
||||
- Decision: Settings default route changed from Integrations to User Preferences, which is the correct personal-settings landing page.
|
||||
- Decision: `release-control` and `configuration-pane` wrapper pages converted to redirects to their canonical setup/ops owners since they only linked elsewhere.
|
||||
|
||||
## Next Checkpoints
|
||||
- Complete the route classification matrix.
|
||||
- Freeze the target IA and redirect contract.
|
||||
- Implement personal-settings shell changes only after the ownership map is agreed.
|
||||
- Archived. All tasks shipped.
|
||||
|
||||
Reference in New Issue
Block a user