You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Agents - "Role" RHP can´t be resized during workspace agent creation. #105217
Version Number: 9.5.24-0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#104573 Email or phone of affected tester (no customers):ibellicotest+3215@gmail.com Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Windows 11 / Chrome App Component: Other
Action Performed:
Prerequisite: ResizableRHP beta enabled on "Troubleshoot"
Open the staging.new.expensify.com website.
Navigate to "Workspaces" > Workspace > "Members"
Click on "Invite Member" > Select any member > "Next"
Hover the RHP´s left edge.
When a green line shows, drag the edge left and resize the RHP.
Click on "Role" and hover over the RHP´s left edge again.
Note that RHP can still be resized.
Navigate to "Agents" on workspace menu > "New Agent" > "Build custom agent"
Hover over RHP´s edge
Note that it can be resized.
Click on "Role" and hover over the edge again.
Note that RHP can´t be resized on "Role" page.
Expected Result:
RHP should still be resizable on "Role" page during workspace agent creation, as it is on "Role" RHP during member invite process.
Actual Result:
RHP is not resizable on "Role" page during workspace agent creation.
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Recommendation: demote. Do not revert. This is a gap in a new beta feature, not a regression. The agent "Role" field was never resizable, and it only shows up for users with the resizableRHP beta.
Root cause: the two "Role" pages are built differently.
Invite member → Role is a real RHP screen. It renders inside RightModalNavigator, which draws the drag handle (RightModalNavigator.tsx:608).
[Resizable RHP] Basic drag logic made stacked right-docked modals match the saved RHP width (BaseModal.tsx:256-259). It did not give them a drag handle. The modal opens at the right width, covers the RHP's handle, and can't be dragged.
Preferred: in BaseModal, render RHPResizeHandle when isStackedOnRHP && isResizableSingleRHP. This covers every right-docked picker opened from the RHP.
Narrower: turn the agent Role picker into its own RHP screen, like the invite flow's Role page. Other pickers would keep the gap.
Investigation details
Why not revert: reverting [Resizable RHP] Basic drag logic would not make the agent Role page resizable. It would only remove resizing everywhere else.
Not agent-specific: any ValuePicker or right-docked modal opened from the RHP should behave the same. Examples include WorkspaceNewRoomPage, WorkspaceCreateTaxPage, and ChronosScheduleOOOPage.
Turns out the Role screen in Build custom agent flow is not really a screen 😅 It's a modal that looks like RHP. I'd say we want the handle to appear on anything that looks like RHP, but could you please confirm @expensify/design? 🙏
Just out of curiosity, why is this the case? The Role screen in the Member invite flow seems to be an RHP, so why is this one different?
There are two patterns in the app, and it's not very clear which should be used and when. Generally, all form fields open modals, but there are edge cases
The invite page's Role was a modal but it lost the data on refresh, so we (someone) rewrote it to the regular RHP which works fine and stays on screen after the refresh.
I wonder if there should be any guides on when and how to use them cc @JS00001
Anyway, I'll try to make the right-docked modals work with the handle
Activity
applause-bot commentedon Oct 28, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/f1d699a801b3cdd9e973c0cc0196713239af8a11d0fc97572dbc82984d103375
melvin-bot commentedon Oct 28, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #104573
melvin-bot commentedon Oct 28, 2026
@JS00001 @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #104573
melvin-bot commentedon Oct 28, 2026
@war-in you have been assigned to this deploy blocker because you authored the offending PR: #104573
melvin-bot commentedon Oct 28, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 28, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
MelvinBot commentedon Oct 28, 2026
Deploy Blocker Analysis
Recommendation: demote. Do not revert. This is a gap in a new beta feature, not a regression. The agent "Role" field was never resizable, and it only shows up for users with the
resizableRHPbeta.Root cause: the two "Role" pages are built differently.
RightModalNavigator, which draws the drag handle (RightModalNavigator.tsx:608).ValuePickerfield (DynamicAddAgentPage.tsx:302-313). It opensValueSelectorModal, a separate right-docked modal on top of the RHP (ValueSelectorModal.tsx:31-38).[Resizable RHP] Basic drag logic made stacked right-docked modals match the saved RHP width (BaseModal.tsx:256-259). It did not give them a drag handle. The modal opens at the right width, covers the RHP's handle, and can't be dragged.
Recommended fix (follow-up under Allow RHP modals to be resized):
BaseModal, renderRHPResizeHandlewhenisStackedOnRHP && isResizableSingleRHP. This covers every right-docked picker opened from the RHP.Investigation details
ValuePickeror right-docked modal opened from the RHP should behave the same. Examples includeWorkspaceNewRoomPage,WorkspaceCreateTaxPage, andChronosScheduleOOOPage.@linhvovan29546] Create company agents added the Role field using the standard picker. It is not at fault.Next Steps: a person needs to decide whether to remove
DeployBlockerCash. Reply with@MelvinBot <your feedback>to refine this analysis.view run
war-in commentedon Oct 28, 2026
It's definitely not a blocker, because the feature is behind the beta. @JS00001 can we demote it?
I'll prepare a followup PR with a fix later
JS00001 commentedon Oct 28, 2026
demoting, lets fix in a follow up
war-in commentedon Oct 28, 2026
Turns out the
Rolescreen inBuild custom agentflow is not really a screen 😅 It's a modal that looks like RHP. I'd say we want the handle to appear on anything that looks like RHP, but could you please confirm @expensify/design? 🙏dannymcclain commentedon Oct 28, 2026
Yeah I would expect it to behave the same as all the rest.
Just out of curiosity, why is this the case? The Role screen in the Member invite flow seems to be an RHP, so why is this one different?
war-in commentedon Oct 28, 2026
There are two patterns in the app, and it's not very clear which should be used and when. Generally, all form fields open modals, but there are edge cases
The invite page's
Rolewas a modal but it lost the data on refresh, so we (someone) rewrote it to the regular RHP which works fine and stays on screen after the refresh.I wonder if there should be any guides on when and how to use them cc @JS00001
Anyway, I'll try to make the right-docked modals work with the handle
shawnborton commentedon Oct 28, 2026
Big agree!