pingdotgg / pingdotgg/t3code

[Bug]: iOS 1.0.3 hides async questions while Settle is blocked

Open
#10,192 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

The iOS app says this thread cannot be settled, but it does not show the question that needs an answer. Opening the same thread on desktop shows the question.

What happened
  1. In T3 Code 1.0.3 on iOS 27, the agent asked a free-text question through request_user_input_async, with no suggested answers.
  2. No question card appeared on the phone.
  3. Tapping Settle failed. The user reported "can't settle thread"; the full error text was not captured.
  4. The question appeared on desktop. The user later confirmed it was gone there.

We have not confirmed whether Settle succeeded afterward. The desktop/server version and the phone's OTA update ID were not collected.

Why this can happen

The older mobile parser drops questions with no suggested answers. The server can still keep the question open and block Settle. The phone then provides no visible way to answer it.

A test using the real parsers confirmed that the 1.0.3-era code drops a valid question with options: [] and allowCustomAnswer: true, while current main keeps it. This used a synthetic question, not this phone's captured traffic. The thread's saved request state was not inspected.

The source fix exists, but delivery remains unclear

#9512 merged September 4 and fixes this behavior. Another copy of that parser change on main would not update an already-installed app.

T3 delivers OTA updates only to apps with matching native runtimes. This prevents an update from using native features absent from the installed app.

The August 11 release job reported version 1.0.3 and published an iOS update for runtime ea03028…. The September 5 update containing #9512 targeted b857bf5…. The US App Store still listed 1.0.3 when checked September 5.

This suggests a delivery mismatch. It does not establish this phone's runtime or rule out a separate backport.

Can maintainers confirm whether 1.0.3 needs a compatible backport or a newer App Store release? A question that blocks Settle needs to be visible and answerable, or the app needs a clear recovery action.

How to verify

In a temporary thread, ask a free-text async question without suggested answers. Confirm that iOS displays it, accepts an answer, clears the pending request, and allows Settle once the agent finishes. Compare with desktop on the same server. Record the OTA runtime as well as the app version.

Desktop provided access to the hidden question in this case. Related reports #9873 and #5454 concern stuck question panels; here the question never appeared on mobile.

Prepared with GPT-6 in Codex from the user's observations and source/release checks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/mobile/src/lib/threadActivity.ts and the parser change in #9512. Reproduce a free-text async question with options: [] on iOS and compare it with desktop, recording the app version and OTA runtime. Done means the question is visible and answerable, the pending request clears, and Settle works on a compatible release.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, typescript
Domain
mobile, release
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.