Repository navigation
Conversation
Accept an http(s):// Portal URL as the Android device for run, ping, and the device subcommands. The framework then uses AndroidPortalHttpDriver with the Portal auth token (MOBILERUN_DEVICE_TOKEN or device.auth_token) and skips ADB serial resolution, Portal auto-setup, and keyboard cleanup. External agents still need an ADB device. Device date is now optional when the driver cannot report it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The warning suggested the nonexistent mobilerun[phoenix] extra and ran its two install lines together. Phoenix tracing dependencies ship with Mobilerun, so suggest a reinstall instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lock patched releases of banks, idna, mcp, multidict, nltk, opentelemetry, pydantic-settings, setuptools, tinytag, and authlib. Bump the Black dev pin and lint action to 26.10.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ories Upgrade dependencies with remaining advisories
Fix Phoenix tracing install hint
Persistent MCP connections were opened in the tool-call task and closed from agent finalization, which anyio rejects with "Attempted to exit cancel scope in a different task". Each connection now runs in its own task that enters and exits the transport. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Phoenix handler imports its OpenTelemetry dependencies lazily, so a missing package raised ModuleNotFoundError and aborted the run instead of showing the reinstall hint. Catch import failures from handler creation as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GPT-6 Luna answers the XML tool-call protocol with announcements only and never emits a <function_calls> block, so direct-mode tasks ran out of steps. OpenAI API and ChatGPT OAuth models now receive FastAgent tools as Responses API function tools and get tool results back as function_call_output items. Other providers keep the XML protocol, and fast_agent.tool_calling: xml restores it for OpenAI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A timed-out get_ui_tree means the device side is still busy with the request we abandoned. Portal and the mobilerun-ios portal (WDA) serve state one request at a time, so the old 7-attempt schedule queued six more reads behind a stuck app: up to ~4 minutes of `device ui --ios` with nothing printed for the first 30s (DROID-305, mobilerun#484). - Timeouts (TimeoutError, httpx.ReadTimeout) now get one retry, preceded by the recovery callback; other errors keep the full backoff schedule and late recovery. Connect timeouts are not treated as a busy device. - Log "Waiting for the UI state from the device..." at INFO once when a fetch runs past 3s. - `mobilerun device ui` sends INFO progress to stderr when no handler is configured, so the notice is visible and stdout stays the tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
grok-4.7 answers the XML protocol with announcements only on most tasks, like GPT-6 Luna. xAI's Responses API accepts the same function tools, so the XAI provider and xAI OAuth now use native tool calling as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tries fix(state): retry timed-out state reads once and say when we are waiting
Streamed Anthropic responses never reported usage: the LlamaIndex adapter only yields content deltas, so the usage on message_start and message_delta never reached the caller and every step logged "Could not get usage: 'usage'". MobilerunAnthropic now records that usage from the SDK stream and yields a final chunk carrying it. MiniMax streams carry no usage unless stream_options.include_usage is sent, so MiniMax profiles now request it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The extra usage chunk came after LlamaIndex's callback wrapper had already ended the event with the last content chunk, so track_usage() still recorded zero tokens. Usage is now written onto the last yielded chunk while the stream finishes, before the wrapper reads it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
deepseek-flash often wrote its own tool-call markup inside the XML block, so FastAgent had to ask it to retry. DeepSeek now receives the tools as Chat Completions function definitions. The tool choice stays auto because DeepSeek thinking mode rejects a required tool call. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use native tool calling in FastAgent for OpenAI and xAI models
…epseek Use native tool calling for DeepSeek models
Timeouts from the Portal HTTP driver have no message, so failed actions read "Failed to swipe: ". Error descriptions now fall back to the error type. State reads on a driver without an ADB device no longer run or report accessibility recovery, which needs ADB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(android): connect over Portal HTTP without ADB
Record token usage for streamed Anthropic and MiniMax responses
Close MCP connections in the task that opened them
…warning Show Phoenix reinstall hint when handler imports fail
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): 0.7.2
lutz-grex
approved these changes
Oct 25, 2026
|
Docs PR opened: https://github.com/droidrun/mobilerun-docs/pull/166 The docs now cover FastAgent's new tool_calling setting and no longer say FastAgent always uses XML tool calls. |
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.
Promote all of
developtomainfor the Mobilerun 0.7.2 release.fast_agent.tool_calling: auto|xmlsetting.Validation
developat25c3e58has exactly the validated release tree62603cc.[anthropic]extra resolves to Mobilerun 0.7.2 without conflicts.pingpassed, the gpt-6.1-sol smoke completed, and claude-sonnet-5 completed a Settings task with no usage warnings.0.6.19-0.7.2→ 0.7.27) must merge before the tag.Merge with Create a merge commit. After approval and merge, verify
mainmatches the tested tree, push the annotated tagv0.7.2, and create the GitHub Release after PyPI succeeds.🤖 Generated with Claude Code