Tray shell (tray.vue / tray-navigation.vue) — now simulated as the real right-docked drawer it is, full viewport height with the page dimmed behind it, not a floating card. The top tab row is a vertical rail (icon + label) per your reference, and the drawer is wider (480px) to hold it. Per request, the separate cog-icon Settings tab is gone — on your own profile, "Edit Profile" swaps the Profile tab in place into Change Profile Information (settings.js, avatar_upload.vue) with a "Cancel" to switch back, no tab change. Sign Out sits at the tiny Button variant next to Edit Profile. Includes a real Avatar Picker component (.Avatar Picker, node 23841:9054) the code doesn't visually implement yet. Feed and Community tabs are honest placeholders — not built this pass.
Click a rail item, the avatar, Follow, or Mute directly to cycle their states — the workbench controls stay in sync.
Code reference: src/components/tray/tray-navigation.vue (nav chrome, real i18n copy), src/components/tray_content/settings/settings.js + avatar_upload.vue (Change Profile Information fields/logic), src/components/tray_content/profile/header.vue (permutation logic).
Figma reference: Shared Components file hyDu1jEHR3HQY6ZZgAfURL — Button (node 61:347, exact tiny/base tokens via get_variable_defs), Avatar (node 61:341), Avatar Picker (node 23841:9054: Default/Hover/Uploading/Uploaded/Delete/Error).
"Removed", "Reported", "Unauthorised", and the Avatar Picker's upload-progress/delete-overlay states are documented in the shared library but not yet wired into the current code — included here to show what's available. Feed and Community tabs are placeholders, not built this pass.
Note: merging Settings into an in-place "Edit Profile" view on the Profile tab, and the Sign Out placement/size, are this session's proposed reorganization — tray-navigation.vue still ships a separate Settings tab today.