Skip to content

upstream(sync): Mobile UI — upstream 0.5.12–0.5.18 parity - #305

Merged
oscarlehuu merged 2 commits into
mainfrom
devin/issue-277-mobile-upstream-0518-parity
Aug 22, 2026
Merged

upstream(sync): Mobile UI — upstream 0.5.12–0.5.18 parity#305
oscarlehuu merged 2 commits into
mainfrom
devin/issue-277-mobile-upstream-0518-parity

Conversation

@devin-ai-integration

Copy link
Copy Markdown

Summary

Takes upstream Buzz mobile/ wholesale from desktop-v0.5.11desktop-v0.5.18 and re-homes Crew's mobile delta on top of it. Per issue #277's conflict matrix, mobile/ is low-conflict and Crew's fork divergence there is small, so this is a tag-scoped port rather than a per-PR cherry-pick.

Upstream scope landed: compact permalink chips (block#5639), community invites (block#5641), composer input regressions (block#5594), profiles/DMs/sheets polish (block#5401), timeline/composer/emoji work (block#5645, block#5873, block#5874, block#6297), thread tail + iOS channel header (block#6399), device auth for identity export (block#5116), batched observer telemetry unwrap (block#5805), pairing confirmation (block#6018), iOS native emoji picker (block#5853), channel details page (block#6113).

Crew divergence preserved (the only Crew-owned mobile delta that survives):

  • features/channels/agent_activity/** (agent activity line, observer control/models, working-bot providers) and shared/relay/** observer plumbing are kept.
  • AgentActivityLine stays mounted above both composers, now nested inside upstream's new AndroidImeLift composer dock:
AndroidImeLift(child: ... ComposerDockSizeReporter(child: Column(children: [
  ChannelTypingIndicator(...),   // upstream
  AgentActivityLine(...),        // Crew
  ComposeBar(...),               // upstream
])))
  • Upstream moved features/profile/user_cache_provider.dart + user_profile.dartshared/profile/; Crew's agent-activity imports were re-pointed at the new location rather than keeping a duplicate.
  • Channel-first IA (upstream(sync): Guardrail — preserve channel-first IA during 0.5.18 merge #278) is untouched — no Projects rail / Workbench / top-nav Projects concept exists in mobile/ and none was introduced.

docs/crew/upstream-buzz.json is intentionally not bumped here: the pin belongs to the meta sync issue #285 and bumping it from a mobile-only child PR would claim parity this PR does not deliver on its own. docs/crew/STATE.md is updated to record that mobile is now in scope for upstream sync (the earlier "mobile out of scope" decision is superseded); D-026 is unchanged — desktop remains the main office.

Related issue

Fixes #277 (child of #285; guardrails per #278).

Testing

TDD order, evidence attached in the session:

Stage Result
Baseline flutter test on pre-port code 1307 passing
Upstream tests ported, before implementation (RED) 699 passing / 70 failing
After implementation (GREEN) 1575 passing / 0 failing

Mobile checks: flutter analyze → 0 issues; dart format --set-exit-if-changed clean; file-size ratchet clean.

Gates run individually (not just ci — its mobile dart format leg hangs in this env):

  • pnpm --filter buzz check — pass
  • pnpm --filter buzz typecheck — pass
  • pnpm --filter buzz test — pass
  • just test-unit4 pre-existing failures unrelated to this diff: buzz-cli command_inventory_is_stable, subcommand_counts_are_stable, subcommand_names_are_stable and buzz-db migration::tests::embedded_migrator_contains_consolidated_initial_schema. Reproduced identically from a clean main worktree (logs 11-preexisting-main-buzz-cli.log, 12-preexisting-main-buzz-db.log). Everything else passes.
  • just check-compile — N/A, no Rust changes in this diff (just _ensure-sidecar-stubs verified anyway).

UI evidence — full-screen Android emulator (1080x2400, xyz.block.buzz.mobile), clean main build vs. this branch's build:

Before (main / 0.5.11) After (this branch / 0.5.18)
before launch after launch
before pairing code after pairing code

Limitation, stated rather than papered over: every surface this port changes (timeline, composer, emoji picker, thread tail, channel details, invites, pairing confirmation) lives behind device pairing, which needs a paired desktop + live relay that this environment cannot stand up. So the emulator screenshots prove the ported app builds, installs and launches unchanged through the pairing wall, and the 1575-test widget suite (which pumps those exact widgets, including the new upstream ones) is the behavioural evidence for what is behind it.

Link to Devin session: https://app.devin.ai/sessions/51e0224f24344b1ea587ded6909157a3
Requested by: @oscarlehuu

devin-ai-integration Bot and others added 2 commits August 22, 2026 07:19
Ports the upstream mobile test suite from desktop-v0.5.18 ahead of the
implementation so the new timeline, composer, emoji, invites, profile and
channel-details behaviours are covered before the port lands.

Refs #277

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Takes upstream desktop-v0.5.18 mobile wholesale (permalink chips, community
invites, composer/timeline/emoji work, iOS native emoji picker,
jump-to-latest + sticky-date glass, thread tail + iOS channel header, device
auth for identity export, batched observer telemetry, pairing confirmation,
channel details page) and re-homes the Crew agent-activity layer on top:
AgentActivityLine stays mounted above both the channel and thread composers,
now inside upstream's AndroidImeLift dock, and the moved profile providers
(features/profile -> shared/profile) are re-imported.

Fixes #277

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

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.

upstream(sync): Mobile UI — upstream 0.5.12–0.5.18 parity

1 participant