Skip to content

Phones: uploads finish, island never stale, pick a thread from it, select message text - #44

Merged
i2cjak merged 1 commit into
mainfrom
backplane/fix-stuck-uploads-dynamic-island
Oct 3, 2026
Merged

i2cjak merged 1 commit into
mainfrom
backplane/fix-stuck-uploads-dynamic-island

Conversation

@i2cjak

@i2cjak i2cjak commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator
  • Uploads: over several hubs the phone named the thread "|", so the
    hub's answer never cleared the spinner (set under the hub's own id) and the
    file never joined the composer. The client reads the answer's thread as the
    hub's id (Att.local) and both apps send the plain id.
  • Island: the hub pushed the Live Activity only when a turn completed or
    failed, so a Stop, archive, delete, start or recovery left it showing
    threads working. Now a stopped turn sends TurnEnded "stopped" (no alert),
    every other step that moves a turn ends with IslandSync, a busy hub pushes
    hourly, and every update carries a stale date the widget dims. The phone's
    own island leaves archived and deleted threads out.
  • Expanded island and lock screen: each thread is a row that opens it; a tap
    with several working opens a picker in the app (Android: a button per
    thread in the expanded notification, and the same picker).
  • Messages: long press offers Copy (whole) and Select Text (any part).

Tests: scripts/check.sh equivalent (every file --check-only, PROOF.bend: All terms check), scripts/test.sh, test/attach_test.bend (new qualified-thread cases), APK build, iOS sim build.

🤖 Generated with Claude Code

… a thread from it, selecting message text

- Uploads: over several hubs the phone named the thread "<hub>|<id>", so the
  hub's answer never cleared the spinner (set under the hub's own id) and the
  file never joined the composer. The client reads the answer's thread as the
  hub's id (Att.local) and both apps send the plain id.
- Island: the hub pushed the Live Activity only when a turn completed or
  failed, so a Stop, archive, delete, start or recovery left it showing
  threads working. Now a stopped turn sends TurnEnded "stopped" (no alert),
  every other step that moves a turn ends with IslandSync, a busy hub pushes
  hourly, and every update carries a stale date the widget dims. The phone's
  own island leaves archived and deleted threads out.
- Expanded island and lock screen: each thread is a row that opens it; a tap
  with several working opens a picker in the app (Android: a button per
  thread in the expanded notification, and the same picker).
- Messages: long press offers Copy (whole) and Select Text (any part).

Co-Authored-By: Claude <[email protected]>
@i2cjak
i2cjak merged commit aa0f306 into main Oct 3, 2026
2 checks passed
Snaiderbg pushed a commit to Snaiderbg/Backplane that referenced this pull request Oct 9, 2026
…cations

Push: say why a phone gets no pushes when APNs is not set up
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant