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
[Bug] UI Bug in mobile view on google pixel 6 #60864
There is text overflow when i use the opencode tunnel remote and open it on my android pixel 6 (in brave browser) then i see that on the bottom right text is overlayed
Thanks for the report and the screenshot! I could reproduce this.
I rendered the subagent session's status line from the current dev code (bf544cd) at Pixel 6 width (412px) in a mobile Chromium viewport. The line ("✓ Done · 4m 12s · Surveyor · Anthropic / …") doesn't fit, and the extra text, mostly the model name, runs underneath the Main session button, just like in your screenshot. The screenshots below show it. The script below reproduces it against the repo's component stories and measures 30–47px of overlap.
The component is the same in the latest release (2.2.5) and on dev, so it still happens on the latest code. It only seems to affect the subagent status line at the bottom of a child session on narrow screens.
Reproduction script (subagent-bar-mobile.mjs)
// Reproduces #60864: the subagent status line overlaps the "Main session" button on a phone-width viewport.// Setup: in a checkout of anomalyco/opencode (dev), run `bun install`, then// cd packages/stories && bun run dev --port 6006 --host 127.0.0.1// and in another shell: npm i playwright && npx playwright install chromium && node subagent-bar-mobile.mjsimport{chromium}from"playwright"constbase=process.env.STORIES_URL??"http://127.0.0.1:6006"constout=process.env.OUT_DIR??"/workspace/repro"conststories=["app-current-session-surface--child-session-done","app-current-session-surface--child-session"]constbrowser=awaitchromium.launch()// Pixel 6 CSS viewport: 412 x 915, DPR 2.625constpage=awaitbrowser.newPage({viewport: {width: 412,height: 915},deviceScaleFactor: 2.625,isMobile: true,hasTouch: true})letoverlapped=falsefor(constidofstories){awaitpage.goto(`${base}/?id=${id}`)constbar=page.locator('[data-component="subagent-bar"]')awaitbar.waitFor({timeout: 60_000})awaitpage.waitForTimeout(500)constinfo=awaitbar.evaluate((el)=>{consttext=el.querySelector(":scope > div.flex-1")constbutton=el.querySelector("button")constt=text.getBoundingClientRect()constb=button.getBoundingClientRect()// The rightmost edge of any text inside the text container.constcontentRight=Math.max(...[...text.querySelectorAll("span")].map((s)=>s.getBoundingClientRect().right))return{barWidth: el.getBoundingClientRect().width,textBox: [t.left,t.right],
contentRight,buttonBox: [b.left,b.right],scrollWidth: text.scrollWidth,clientWidth: text.clientWidth,overlapPx: contentRight-b.left,}})console.log(id,JSON.stringify(info))if(info.overlapPx>0)overlapped=trueawaitbar.screenshot({path: `${out}/${id}-bar.png`})awaitpage.screenshot({path: `${out}/${id}.png`})}awaitbrowser.close()console.log(overlapped ? "REPRODUCED: status text runs under the Main session button" : "no overlap")
I prepared a fix for this on Antonio-Faure:subagent-bar-mobile: hide the provider/slash/variant below sm, let the model name take the remaining width and truncate, and keep the status/elapsed/agent visible.
Activity
opencodejr commentedon Oct 31, 2026
Thanks for the report and the screenshot! I could reproduce this.
I rendered the subagent session's status line from the current
devcode (bf544cd) at Pixel 6 width (412px) in a mobile Chromium viewport. The line ("✓ Done · 4m 12s · Surveyor · Anthropic / …") doesn't fit, and the extra text, mostly the model name, runs underneath the Main session button, just like in your screenshot. The screenshots below show it. The script below reproduces it against the repo's component stories and measures 30–47px of overlap.The component is the same in the latest release (2.2.5) and on
dev, so it still happens on the latest code. It only seems to affect the subagent status line at the bottom of a child session on narrow screens.Reproduction script (subagent-bar-mobile.mjs)
Run it:
bun subagent-bar-mobile.mjsAntonio-Faure commentedon Oct 31, 2026
I prepared a fix for this on
Antonio-Faure:subagent-bar-mobile: hide the provider/slash/variant belowsm, let the model name take the remaining width and truncate, and keep the status/elapsed/agent visible.The new 412×915 component test fails on
devwith 30px of overlap and passes with the change (8px clearance). Compare: https://github.com/anomalyco/opencode/compare/dev...Antonio-Faure:subagent-bar-mobile?expand=1