Releases: Abhiram86/errand
Release list
Errand v0.7.4
Release v0.7.4: P12 reliability, lifecycle, security, and performance hardening across background engine transports, shell safety, bounded database queries, browser lifecycle, conversation persistence, OTA SHA-256 validation, and memory/sandbox limits.
Highlights
- Background Engine Transports & Cancellation (P12.1): Headless background engine now handles native non-UI intents (alarms, timers, calendar, broadcasts) and location queries; mid-run cross-isolate cancellation terminates runs promptly via durable database polling; per-task wake-lock renewals prevent timeout during queued batches.
- Shell Safety & Headless Correctness (P12.2): Closed static shell bypass vectors for
$VARcommand positions andenvprefixes with fail-closed safety categorization; serialized same-batchsave_reportexecutions; corrected unread counts to terminal, actually-notified runs only. - Scheduler UI & Query Bounds (P12.3): Replaced unbounded database watches with 400-row SQL LIMIT queries; unread badge powered by exact
COUNT(*)query; task tabs receive latest-log-only per row; synchronous scratch scanning offloaded to a background isolate. - Browser Lifecycle & Robust Navigation (P12.4): Deduplicated DOM click dispatching; load waiters complete immediately on close/stop without 15-second hangs; safe back navigation on active turns; safe headless disposal without notifying disposed change listeners; HTTP error pages (4xx/5xx) snapshot and load with status code.
- Fast Startup & Persistence Serialization (P12.5): Extracted
CoalescingWriterto serialize overlapping conversation persistence; message sends and voice input gate on fast settings core without waiting for live model catalog sync. - OTA Verification, API Guards & CI (P12.6): Added SHA-256 integrity validation and streaming timeouts for APK downloads; guarded Android API-26 calls (
startForegroundService,getHintText,setColorized) for API 24/25 compatibility; separated notification permission request codes; added Lite flavor boundary tests and GitHub Actions CI. - Bounded Memory & Untrusted Input (P12.7): 30MB aggregate per-turn media budget on content parts; byte-bounded (64MB) true LRU document cache with in-flight parse deduplication; byte-bounded (8MB) PDF unit cache; streaming raw byte cap (5MB) & inactivity timeout for webfetch; sandboxed HTML report previews with external browser link opening.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.7.4-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.4-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.4-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.7.4-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.4-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.4-lite-x86_64.apk: Emulators / x86_64 devices
Errand v0.7.3
Release v0.7.3: Drift-free recurring scheduling, headless streaming runner, termination safeguards, and modular architecture.
Highlights
- Drift-Free Recurring Scheduling: Recurring tasks now calculate execution anchors against a fixed time cadence grid (
start_at + N * repeat_after), completely eliminating cumulative scheduling drift. - Headless Streaming Runner: Autonomous background tasks run via a robust streaming path with a 5-attempt retry budget, partial forward-progress preservation, and automated redial backoff.
- Notify on Fresh Kill: Gracefully detects and handles external task termination, ensuring final statuses are cleanly logged without ghost notifications.
- Manage Tasks UI & Performance: Sleek borderless card design, schema v8 database indexing for instant dashboard loading, and granular sub-minute countdown timers.
- Component Decomposition: Restructured large UI and tool files into clean, maintainable modular packages (
lib/widgets/tasks/,model_picker_dialog.dart,browser_scripts.dart,intent_docs.dart).
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.7.3-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.3-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.3-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.7.3-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.3-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.3-lite-x86_64.apk: Emulators / x86_64 devices
Errand v0.7.2
Release v0.7.2: Scheduler correctness fixes — stuck statuses, ghost notifications, and delete safety.
Highlights
- Fixed tasks stuck on "running" after completion: background-run writes are invisible to the foreground database streams, so an already-open Manage Tasks screen kept showing stale statuses. The screen now forces a refresh every time the app resumes — what you see is always current.
- Fixed ghost notifications for deleted tasks: deleting a task now stops its in-flight run first, then cancels its alarm and posted notification before removing it. A deleted task can no longer "complete" after deletion.
- Fixed cancels being overwritten: a cancel issued while a background run is in flight is now honored instead of overwritten by the finishing run — no more completion notifications for cancelled tasks.
- Safer mid-run races: deleting between a run's claim and its log entry no longer crashes the run; transient database failures mark the task failed visibly instead of dying silently.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.7.2-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.2-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.2-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.7.2-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.2-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.2-lite-x86_64.apk: Emulators / x86_64 devices
Errand v0.7.1
Release v0.7.1: Faster cold starts, bulletproof boot recovery, and smarter task reports.
Highlights
- Faster startup & notification taps: The UI now paints before settings load and alarm rescheduling run, cutting cold notification-tap to first useful row to around a second. Notification taps deep-link straight into the unread view with duplicate-screen guards.
- Reboot-proof alarms: Native boot receiver restores alarms by reading the scheduler table directly (no Flutter engine needed), with a retry JobService, QUICKBOOT support, and re-registration when exact-alarm permission changes.
- Runner-owned task reports: New headless-only
save_reporttool — the model supplies content, deterministic code owns the sandboxed timestamped path. Includes final-answer fallback and keep-newest-10 pruning so scratch can't grow unbounded. - Per-task model & provider overrides: Pin any task to a specific model/provider from the Manage Tasks sheet; overrides persist across recurring runs.
- Tappable chat links: Web links open externally;
file://links the agent drops open in the in-app Markdown/HTML preview or your preferred viewer, sandboxed to the workspace. - Copy tables that paste as tables: Assistant tables now copy as Markdown plus rich HTML for Notes, Docs, and Notion.
- Unread reminders & storage footer: Compact top banner for unseen results, plus a session-scoped scratch storage summary in Manage Tasks.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.7.1-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.1-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.1-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.7.1-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.1-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.1-lite-x86_64.apk: Emulators / x86_64 devices
v0.7.0
Release v0.7.0: Autonomous Background Task Scheduler, Manage Tasks Screen, and Output Report Engine.
Highlights
- Autonomous Background Tasks: Schedule one-off and recurring agent tasks that execute headlessly via native Android
AlarmManagerwithout keeping the app open. - Manage Tasks Screen: Full-screen dashboard to monitor tasks, inspect execution logs, filter by active/completed/failed/unread status, and preview output reports.
- Headless Report Collection: Background agent writes reports directly to
.scratch/task-$taskId.*(HTML dashboards or Markdown) with in-app preview and automatic relocation. - Task Toast Service: Global, decoupled toast notifications with dedicated icons and direct "View" actions across all screens.
- Exact Alarm & Notification Routing: Native exact-alarm permission guidance and notification taps linking directly to unread task logs.
- Clamped Markdown Tables: Assistant message tables with horizontal scrolling, cell truncation, and quick table copying.
- Per-Task Model Overrides: Set custom models and providers per scheduled task with persistence across recurring runs.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.7.0-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.0-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.0-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.7.0-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.7.0-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.7.0-lite-x86_64.apk: Emulators / x86_64 devices
v0.6.4
Release v0.6.4: Hardened OTA update prompts, session-scoped dismissal, and manual sidebar check.
Highlights
- Session-Scoped Dismissal: Dismissing an update banner now only snoozes it for the active session, reappearing on next app launch.
- Manual Sidebar Check: Added an action in the sidebar to check for updates on demand, bypassing session snoozing.
- Harden Post-Install State: Fixed OTA state reconciliation so previous install prompts do not persist after updating.
- Clear User Feedback: Informative toasts for check status, incompatible device APKs, and install errors.
- Accurate Release Notes: Release notes are strictly tag-verified against the installed version.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
Errand-v0.6.4-full-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.6.4-full-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.6.4-full-x86_64.apk: Emulators / x86_64 devices
Lite Flavor (No Accessibility Service)
Errand-v0.6.4-lite-arm64-v8a.apk: Modern Android devices (recommended)Errand-v0.6.4-lite-armeabi-v7a.apk: 32-bit ARM devicesErrand-v0.6.4-lite-x86_64.apk: Emulators / x86_64 devices
v0.6.3
Release v0.6.3: Interactive bash safety modal, mid-stream LLM retry, Google OAuth support, overflow-free browser toolbar, and live model auto-selection on API config.
Highlights
• Interactive Bash Safety Confirmation Modal:
• Destructive commands (e.g. rm, rm -rf, bulk moves/deletions) trigger an interactive safety modal floating over the composer with three choices:
• Accept: Executes the command once.
• Deny: Gracefully cancels execution with clear tool feedback to the agent.
• Trust: Grants session-scoped trust for the active conversation, persisting in memory only until conversation switch or app restart.
• Mid-Stream LLM Streaming Resilience:
• Added automated mid-stream retry budget for network drops and socket timeouts during active streaming.
• Performs clean buffer reset (onReset) to prevent corrupted output, displays a subtle in-flight UI retry indicator, and enforces a 3-attempt limit before alerting.
• In-App Browser Google OAuth & Multi-Window Support:
• Sanitized WebView User-Agent headers by stripping ; wv and Version/4.0, resolving Google/GitHub 403: disallowed_useragent blocks.
• Full multi-window popup support via dedicated OAuthPopupDialog that automatically closes upon completing authentication.
• Direct "Open in external browser" toolbar button for external Chrome fallback.
• Overflow-Free Browser Toolbar:
• Relocated reload/stop button directly inside the address bar, matching modern mobile browser conventions (Chrome/Safari).
• Compacted button tap targets (shrinkWrap), completely eliminating horizontal header overflow in preview and full-screen modes on narrow screens.
• Auto-Selection of Newest Live Models on API Configuration:
• Automatically selects the newest live model from the sorted catalog whenever a provider API key is configured or refreshed, eliminating stale offline preset fallbacks.
• Release Notes Dialog Layout Polish:
• Enhanced visual spacing between title, header, and list items, with top-aligned checkmark icons for multi-line release notes.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
• Errand-v0.6.3-full-arm64-v8a.apk: Most modern Android devices (recommended)
• Errand-v0.6.3-full-armeabi-v7a.apk: Older 32-bit ARM devices
• Errand-v0.6.3-full-x86_64.apk: Android emulators and x86_64 devices
Lite Flavor (No Accessibility Service)
• Errand-v0.6.3-lite-arm64-v8a.apk: Most modern Android devices (recommended)
• Errand-v0.6.3-lite-armeabi-v7a.apk: Older 32-bit ARM devices
• Errand-v0.6.3-lite-x86_64.apk: Android emulators and x86_64 devices
v0.6.2
Release v0.6.2: Filesystem output hygiene, default Documents/Errand working directory, and automatic scratch cache directory creation.
Highlights
• Filesystem Output Hygiene & Working Directory:
• Default working directory shifted from device storage root (/storage/emulated/0) to Documents/Errand (/storage/emulated/0/Documents/Errand) to keep user storage organized and prevent root pollution.
• Dedicated Scratch Directory: Added automatic creation and management of Documents/Errand/.scratch for ephemeral, temporary, or scratch code and text files.
• System Prompt Refinement: System prompts explicitly guide file creation and bash execution towards Documents/Errand and .scratch directories.
• Filesystem tools and command runners default execution working directory to Documents/Errand.
• OTA Updates:
• Version bump to 0.6.2 to enable seamless background OTA updates from v0.6.0 and v0.6.1 releases.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
• Errand-v0.6.2-full-arm64-v8a.apk: Most modern Android devices (recommended)
• Errand-v0.6.2-full-armeabi-v7a.apk: Older 32-bit ARM devices
• Errand-v0.6.2-full-x86_64.apk: Android emulators and x86_64 devices
Lite Flavor (No Accessibility Service)
• Errand-v0.6.2-lite-arm64-v8a.apk: Most modern Android devices (recommended)
• Errand-v0.6.2-lite-armeabi-v7a.apk: Older 32-bit ARM devices
• Errand-v0.6.2-lite-x86_64.apk: Android emulators and x86_64 devices
v0.6.1
Release v0.6.1: In-app background OTA update system with post-update release notes, dynamic provider defaults & release date sorting, unified options modal sheet, and animated composer glow.
Highlights
• In-App Background OTA Update System:
• Background update checks against GitHub Releases (/repos/Abhiram86/errand/releases/latest) running on a periodic 2-hour cadence with zero delay to app launch and onboarding.
• Smart Asset Matching: Automatically detects app flavor (full vs lite) and device architecture (arm64-v8a, armeabi-v7a, x86_64) to fetch the exact matching release APK.
• Centered Update Pill: Sleek floating pill widget displayed directly below the model picker bar in chat, featuring real-time download progress and one-tap install.
• Safety & Integrity: Install action is automatically disabled while the agent is executing a turn (busy) to avoid interrupting workflows. Downloads stream to a .tmp file and verify total byte size integrity against GitHub asset headers before atomic rename.
• Cache & TTL: Downloaded APKs are cached locally with a 2-day TTL, automatically re-downloading if stale or corrupted. Stale APK files are automatically cleaned up once the update is installed.
• Post-Update Release Notes: Automatically detects the first launch after an update (safely suppressed on fresh/first installs). Parses GitHub release changelogs into clean bullet points presented in a dedicated release notes sheet.
• Manual Release Notes Action: Added a subtle gray release notes button in the chat sidebar header to inspect release highlights anytime.
• Model Catalog & Dynamic Provider Defaults:
• Dynamic Provider Default: When no model is selected yet, defaults to any configured provider (e.g., Groq, NVIDIA, Custom) rather than defaulting to OpenRouter.
• Sort by Release Date: Collects updated_at / release dates from models.dev and sorts available models newest-to-oldest, defaulting to the newest available model.
• Dynamic Vision Modality Resolution (models.dev): Schema-driven modality detection from models.dev (modalities.input / architecture.modality), dynamically verifying vision capabilities before attempting visual inputs.
• UI / UX Refinements:
• Animated Glowing Composer Border: Ambient multi-color sweep gradient border (kBubbleUser blue → kMuted gray → kDarkBg black) rotating around the composer while the assistant is processing a turn, with zero idle battery overhead.
• Unified Options Modal Sheet: Replaced ad-hoc action menus with a compact, reusable modal sheet (visualDensity: -3, 14px typography, 18px icons, 75% max screen height cap, scrollable) across chat options and message bubble actions.
• Message Options & Retry: Tap or long-press on user messages to edit, copy, or retry queries.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
• Errand-v0.6.1-full-arm64-v8a.apk (~26.7 MB): Most modern Android devices (recommended)
• Errand-v0.6.1-full-armeabi-v7a.apk (~24.8 MB): Older 32-bit ARM devices
• Errand-v0.6.1-full-x86_64.apk (~28.4 MB): Android emulators and x86_64 devices
Lite Flavor (No Accessibility Service)
• Errand-v0.6.1-lite-arm64-v8a.apk (~26.7 MB): Most modern Android devices (recommended)
• Errand-v0.6.1-lite-armeabi-v7a.apk (~24.8 MB): Older 32-bit ARM devices
• Errand-v0.6.1-lite-x86_64.apk (~28.3 MB): Android emulators and x86_64 devices
v0.6.0
Release v0.6.0: Embedded browser agent tools, responsive morphing UI, structured cross-conversation memory, and tool hierarchy alignment.
Highlights
• Autonomous In-App Web Agent (browser tool):
• Built-in web navigation based on flutter_inappwebview with direct DOM JS interaction, accessibility tree snapshots ([e1], [e2]), visual screenshot fallback for multimodal models, and text extraction.
• Fully operational on both Full and Lite flavors without requiring Android accessibility permissions.
• Streamlined unified tool actions: open, snapshot, act, screenshot, extract_text, close, back, forward, and reload.
• Responsive Morphing Browser UI (BrowserWidget):
• Interactive browser container with smooth morphing across a compact dock bar (50px), floating preview card, and full-screen view.
• Adaptive Preview Zoom: Automatically renders pages at 0.80 zoom in preview mode to maximize visible content and readability of headings/inputs, restoring to 1.0 in full-screen mode.
• Floating full-screen controls with custom URL display, reload/stop, back/forward, zoom toggle, and minimize/close actions.
• Composer Focus Isolation:
• Browser preview card compacts to the 50px dock bar only when the Errand chat composer is actively focused, ensuring the preview card remains open while typing into web inputs and forms.
• Structured Persistent Memory Subsystem (memory tool, Schema v5):
• Drift schema v5 migration adding the memories table for long-term cross-conversation recall of user preferences, device context, and guidelines.
• Tool actions: save, recall, update, delete, and list.
• Automatic passive knowledge digest injected into the system prompt.
• Dedicated Memory Management screen in Settings for inspecting, editing, manually adding, or purging memories.
• Tool Hierarchy & Native Action Disambiguation:
• System prompt refined with a clear hierarchy: Intent screen_act (accessibility).
• Renamed native accessibility tool to screen_act for explicit clarity and disambiguation from web browser actions (backwards-compatibility aliasing preserved).
• Merged extract_text directly into the browser tool group.
• Provider Catalog Enhancement:
• Added NVIDIA preset to the provider catalog for high-performance inference options.
Downloads (Split per ABI)
Full Flavor (with Accessibility Service)
• Errand-v0.6.0-full-arm64-v8a.apk (~26.7 MB): Most modern Android devices (recommended)
• Errand-v0.6.0-full-armeabi-v7a.apk (~24.8 MB): Older 32-bit ARM devices
• Errand-v0.6.0-full-x86_64.apk (~28.3 MB): Android emulators and x86_64 devices
Lite Flavor (No Accessibility Service)
• Errand-v0.6.0-lite-arm64-v8a.apk (~26.7 MB): Most modern Android devices (recommended)
• Errand-v0.6.0-lite-armeabi-v7a.apk (~24.8 MB): Older 32-bit ARM devices
• Errand-v0.6.0-lite-x86_64.apk (~28.3 MB): Android emulators and x86_64 devices