Repository navigation
fix(mobile): restore message times, file access and assistant controls - #3638
Merged
bobleer merged 4 commits intoOct 31, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix mobile conversation details across Android, iOS, HarmonyOS and mobile-web:
Type and Areas
Type: bug fix / UI
Areas: native mobile, mobile-web, shared Kotlin presentation, remote file projection and Core host wiring.
Motivation / Impact
Routine tool failures should not dominate a successful conversation. Messages need visible times, temporary output such as
/tmp/wxqr/qr.pngmust remain accessible, and assistant creation should use its dedicated mode. File access keeps the selected session/workspace/provider identity and never falls back to controller-local files. The file behavior requires an updated Desktop/CLI host; older hosts retain their existing explicit errors.Verification
Passed locally before moving the unchanged patch to a clean worktree on current
upstream/main::core-feature:jvmTestwith filtersWorkspaceCatalogTest,RemoteSidebarPresentationTest,ConversationPresentationTest,ToolRowPresentationTest,SessionRecordReplicaTest: 47 tests; debug XCFramework generation.:app:assembleDebug,:app:assembleDebugAndroidTest, and:app:connectedDebugAndroidTestforChatMessageBubbleTest,ToolStatusRowTest: 24 tests each at compact and wide emulator sizes.node --test src/mobile-web/tests/runtime-file-download.test.mjs src/mobile-web/tests/mobile-chat-regressions-browser.test.mjs src/mobile-web/tests/background-delivery-browser.test.mjs: 6 tests, including 390/768/1280px browser layouts.assembleHap, workspace-catalog and host-text-retranslator Node tests.Testing/run-pure-swift-tests.shand complete app Swift type-check. Native iOS UI execution is blocked locally by an installed SDK/simulator-runtime mismatch.cargo test --locked -p openbitfun-services-integrations --no-default-features --features remote-connect --lib remote_connect::file_projection::tests: 6 tests.cargo test --locked -p openbitfun-core --no-default-features --features remote-connect,git --lib service_agent_runtime::tests::controller_file_reads_support_absolute_and_relative_paths_outside_workspace: passed.pnpm run theme:color-audit:all,pnpm run mobile:ui:check,pnpm run harmony:architecture, andgit diff --check.Known local baseline failures: mobile architecture has pre-existing findings in
ClientBuildContractTest,AccountUiState, andConversationModels; HarmonyOS's full LocalTest command reports 8 unrelated resource/i18n/login assertion failures even though hvigor returns success. The changed tool-collapse cases pass. The touched fixture now explicitly rejects an unused rollback call instead of missing the required interface method.Additional review verification in the isolated worktree: mobile-web type-check, the expanded transcript/browser regressions, theme color audit, and GitHub configuration tests pass. The transcript and background-delivery browser suites now run in CI. Settled failed/cancelled read tools and failed/error/cancelled/rejected subagent task cards no longer appear to be continuously running. The added task-card cases also passed the browser suite, TypeScript check and all 28 theme audit surfaces.
Reviewer Notes
Latest main and related open PR diffs were checked before implementing. Related work on legacy assistant identity (#3428), CLI peer file surfaces (#3492), and mobile session model selection (#3544) does not cover these paths.
Remote coverage uses host-stream fixtures, local filesystem IO, and a simulated remote provider with a same-path controller file. No live SSH, relay, Peer Device, or Detached Dispatch connection was exercised. No persisted or wire schema changes and no user data migration are required.
Checklist