[iOS][Visualize] Labels and progress bar are invisible while the slider thumb renders
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
The same native Visualize response renders its text and progress bar in the desktop app, but the iOS Remote view shows only the slider thumb. Ordinary assistant text outside the visualization is readable.
This was reproduced on September 9, 2026, in a fresh task explicitly invoking the official Visualize plugin. On the actual iPhone, dragging the thumb moved it, but the visualization label, percentage, slider track, progress bar and status text remained absent. The desktop view of the same task shows those elements.
Environment and provenance
- Desktop app installed on the host: 26.901.51231, build 8109.
- Official bundled plugin:
visualize@openai-bundled1.0.29. - Client: ChatGPT on iPhone, viewing a local Codex task through Remote.
- The user reports an up-to-date iOS/client; exact iOS and mobile app build numbers have not been captured.
- Both screenshots show a light appearance, but exact app/OS theme settings have not been captured.
The installed Visualize skill, renderer, stylesheet, HTML helper and other payload assets were byte-compared with the signed desktop app bundle and matched. A separately named temporary local fallback was removed before the fresh synthetic task was created. The task's execution record confirms that it read the official bundled skill.
Reproduction
- Create a fresh local Codex task and explicitly invoke the bundled Visualize plugin.
- Use the fragment below and return the documented native visualization content reference.
- Open the same completed task in the desktop app and in the iPhone Remote client.
- Compare the label, percentage, slider track, progress bar and status text.
- Drag the slider on the iPhone.
<div id="visualize-demo">
<div class="viz-controls">
<label class="form-label" for="demo-level">Signal strength <output id="demo-value" class="tabular-nums">40%</output>
<input id="demo-level" class="form-range" type="range" min="0" max="100" value="40" step="1">
</label>
</div>
<div id="demo-meter" class="progress" role="progressbar" aria-label="Signal strength" aria-valuemin="0" aria-valuemax="100" aria-valuenow="40">
<div id="demo-fill" class="progress-bar" style="width:40%"></div>
</div>
<div class="viz-row" aria-live="polite"><span id="demo-status">Signal strength: 40%</span></div>
</div>
<script>
(() => {
const root = document.getElementById('visualize-demo');
const slider = root.querySelector('#demo-level');
const value = root.querySelector('#demo-value');
const meter = root.querySelector('#demo-meter');
const fill = root.querySelector('#demo-fill');
const status = root.querySelector('#demo-status');
slider.addEventListener('input', () => {
const percent = slider.value + '%';
value.textContent = percent;
fill.style.width = percent;
meter.setAttribute('aria-valuenow', slider.value);
status.textContent = 'Signal strength: ' + percent;
});
})();
</script>
Expected and actual
Expected: the native mobile visualization displays the label, current percentage, slider track, progress fill and live status, with readable contrast.
Actual on iPhone: only the slider thumb is visible inside the visualization. It can move, but the surrounding visualization text and tracks remain absent. Native desktop rendering of the same task shows all of these elements. This is an actual-device comparison, not responsive desktop emulation.
The fragment has no custom stylesheet, external library, network call or host follow-up API. Its initial labels are static HTML, so dynamically inserted labels alone cannot explain this reproduction. Theme token propagation, mobile host styling and text/paint behavior remain hypotheses; the exact failing component has not been identified.
Related reports
- #37913 concerns raw Visualize content-reference syntax being displayed instead of a visualization. This report differs: the native visualization partially renders and the control responds to dragging.
- #36234 concerns native plugin materialization on desktop. It does not establish the cause of this mobile rendering failure.
A repository search did not find an exact duplicate of this partial-rendering symptom. Screenshots containing personal sidebar content or host paths are intentionally omitted; the reproduction above contains only synthetic data. Please route this to the mobile Visualize/Remote rendering owners. Thank you.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the bundled Visualize fragment in a fresh local Codex task, then compare its desktop rendering with the iPhone Remote client while dragging the slider. Start by tracing the mobile Visualize/Remote rendering path; the failing component is not identified in the report. Done means the label, percentage, slider track, progress fill, and live status are visible and readable on iPhone while remaining interactive.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- html, ios, javascript, rust
- Domain
- frontend, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100