Skip to content

Releases

v3.0.0

Choose a tag to compare

@hiylo hiylo released this 22 Sep 00:40

StarBurst v3.0.0 - Release Notes

Released 2026-09-21. The Test Intelligence roadmap begins, plus major client increments:
project overview, battery optimization, lifecycle-aware polling, E2E test suite, a rounded Cartoon
style, and a refined Flame theme.

Highlights

  • Project Overview — a new entry in the chat top-bar ⋮ menu. Scans the session's project
    directory and shows file/line statistics by type (code/comment/blank), the largest files, and
    Git repository info (branch, commit count, last commit, modified files and diffstat). Shell-side
    scanning uses find | xargs wc -c + an awk line-classifier with C-style and #-style comment
    detection.
  • Cartoon style: rounded display font + icon treatments — headings and labels switch to a
    bundled Baloo 2 family (SIL OFL, 3 weights, Latin-only, ~268KB) and icons gain two wrappers
    (CartoonInkIcon inked glyph, CartoonStickerIcon tilted hard-shadowed chip);
    body* text, code and Chinese prose stay on the system font / monospace. OFL notice ships at
    assets/licenses/Baloo2-OFL.txt.
  • Cartoon style: MaterialTheme.shapes ramp — the whole shape scale is swapped while Cartoon
    style is on, so M3 components that never took an adaptive shape (cards, snackbars, outlined text
    fields, chips, FABs, dropdown menus) round out too.
  • Session list: batch compact — a Compress action in the multi-select top bar summarizes every
    selected session at once (each using its own model, falling back to the server default) to reduce
    context, mirroring the single-session Compact menu item.
  • Battery optimization — WakeLock now held only when a session is actively running (busy/retry),
    not during idle background; WS ping interval 20s→60s; release builds no longer persist INFO logs
    to SQLite; backgroundWakeLock default changed to false.
  • Lifecycle-aware polling — all background polling (chat status, log tail, server management,
    session list, workbench) now suspends when the app is in the background via
    launchWhileStarted (repeatOnLifecycle), resuming on return.
  • Top bar token usage — the chat top-bar subtitle now shows cumulative session token usage
    (total input + output), distinct from the input bar's budget ring (current context fill).
  • Flame theme — retuned to a vivid passionate red: primary #FF1744 (Red A400),
    secondary #FF6D00 (Orange A700), tertiary #D50000 (Red A700).
  • E2E test suite — 5 Maestro flows (smoke, add-server-connect, session-list, settings,
    workbench) with a batch runner (scripts/run-e2e.sh) and .secrets-allowlist.
  • Model name truncation — long model names no longer push the budget ring off-screen;
    truncated at 24 chars with surrogate-pair-safe ellipsis.

Changed

  • Top bar subtitle shows cumulative token usage (total input + output) and cost, distinct from the
    input bar budget ring (current context occupancy / effective window).
  • Flame theme palette retuned for a more vivid red.
  • Settings → Appearance → Cartoon style description mentions the rounded heading font and the
    ink-outlined icons (both locales).
  • Largest Kotlin sources split by responsibility; no file exceeds the 1500-line hard cap.
  • CI runs JVM unit tests on every push/PR (./gradlew test on JDK 17) + gitleaks + file-size guard.
  • Session loading parallelized: child-session BFS, git state, and initial diff run concurrently.
  • Unread status is now push-driven (removed 10s polling fallback).

Added

  • Project Overview (file/line stats + Git repository info) in the chat ⋮ menu.
  • Cartoon style rounded display font (Baloo 2, OFL), inked/sticker icon wrappers, and a
    MaterialTheme.shapes ramp.
  • Session list multi-select Compress (batch compact).
  • Prompt & session templates, session timeline, custom system prompt + context budget.
  • File diff viewer, in-editor AI actions, on-device code assist (MNN).
  • Service log live tail, bookmark tags & groups, encrypted backup & restore.
  • Token usage card, notification quick actions (RemoteInput).
  • E2E test infrastructure (5 Maestro flows + batch runner).
  • Lifecycle-aware polling utility (launchWhileStarted).

Security

  • SSH host-key verification (known_hosts TOFU).
  • Server config encrypted at rest (Android Keystore AES-GCM) with legacy plaintext migration.
  • Passwords removed from Intents/PendingIntents.
  • WebView hardening (no mixed content, external links in browser, HTTP-auth host check).
  • Install script pinned to a release tag with a randomized backend token.
  • Required backend bumped to 2.0.1 — one-click install now pulls install.sh from the v2.0.1
    tag, which verifies the downloaded binary against the release's SHA256SUMS (mismatch aborts and
    deletes the partial file). v2.0.0 also fixes the artifact-name break that made installs from
    v1.0.0/v1.1.0 404 (startburst-backend-* → starburst-backend-*) and restores the missing
    windows-amd64.exe + SHA256SUMS assets.

Fixed

  • Long model names no longer push the budget ring off-screen (truncated at 24 chars).
  • Hilt 2.51→2.52: fixed debug crash (StarBurstApp_GeneratedInjector NoClassDefFoundError) and
    release R8 missing class.
  • Server connection hang on "connecting" — blocking work moved outside the connection lock.
  • Connection state desync — flags now reconcile atomically.
  • MnnLlm/MnnAsr native access serialized under one lock (use-after-free guard).
  • ASR recorder stops on ViewModel clear (no leaked microphone).
  • Parent sessions showed as idle while their sub-agent children were still running (session list
    and workbench). Child-session push events are no longer dropped — only the "reply ready"
    notification is suppressed, matching the official Web UI / TUI — the list aggregates child
    busy/retry onto the parent, and a monotonic guard stops a stale lagging idle push from
    overwriting the aggregated state.

Engineering

  • Unit tests (261 cases) + Compose instrumentation (2 cases) + Maestro E2E (5 flows) all green.
  • File-size CI guard (scripts/check-file-size.sh, 1500-line hard cap).
  • Single-file governance: largest sources split into same-package extension files.

Install and verify

# Verify the APK
sha256sum app-release-v3.0.0.apk
# Expected: 9c99e4ecca34c2eb1f11647f21d6bb62513d562dae6a1959ee0a4b0e08b145e9

# Install (overwrite an existing installation)
adb install -r app-release-v3.0.0.apk

Backend pairing

This version requires starburst-backend >= 2.0.1 (BackendGate.REQUIRED_BACKEND_VERSION).

  • Backend v2.0.0: Test Intelligence becomes the third main capability; the artifact name is
    corrected from startburst-backend-* to starburst-backend-* -- the already-published assets of
    v1.0.0 / v1.1.0 still use the old name, so install.sh returns 404 for them.
  • Backend v2.0.1: install.sh verifies the download against SHA-256 (mismatch deletes the
    artifact and exits).

The app's one-click install pulls install.sh from the v2.0.1 tag, so verification is applied
automatically.

curl -fsSL https://raw.githubusercontent.com/hiylo/starburst-backend/v2.0.1/scripts/install.sh \
  | sudo env STARBURST_DEFAULT_TOKEN=<your-token> bash -- --port 18880 --version 2.0.1

v2.0.0

Choose a tag to compare

@hiylo hiylo released this 16 Sep 07:12

StarBurst v2.0.0 - Release Notes

This release adds the AI workbench (a live dashboard of all agent activity), a full backend
mirror for consistent state and push notifications, and a batch of chat / workbench / dialog
polish and fixes.

Highlights

  • AI workbench — a dashboard of all agent activity on the connected server:
    • Live event stream (push-driven with polling fallback, localized text, heartbeat /
      high-frequency filtering, local timezone).
    • Per-session aggregation with the latest event and status ordering.
    • Decision panel per session: latest AI reply, pending questions with one-tap answers,
      quick-reply composer with voice input, and a jump-into-full-session action.
  • Backend full mirror — when a starburst-backend is reachable, the app routes through its
    /api/opencode/* mirror (Bearer token) for consistent state and faster pushes, with automatic
    fallback to a direct connection. Over SSH, the backend port (18880) is forwarded alongside the
    OpenCode port so pushes work through the tunnel.
  • Event collection & push — the backend records session events (/api/events) and pushes them
    live over /api/ws; the app turns completion / question / permission / error events into
    heads-up notifications (sound + vibration), even while the session is open.

Fixes

  • Chat list jumped to the oldest message when loading earlier messages; the list now uses reverse
    layout so the reading position is preserved.
  • Sending a message or stopping only cleared pending questions locally; they are now rejected on
    the server so they stay gone after re-entering the session.
  • In the workbench, tapping a question option sent it as a normal message instead of answering the
    question; options are now submitted as question answers.
  • The keyboard could cover bottom fields and confirm/cancel buttons in dialogs; dialogs now lift
    above the IME and text fields expose Next/Done keyboard actions.
  • SSH-tunnel deployments could not reach the backend (push notifications never fired); the backend
    port is now forwarded too.
  • R8 shrinking stripped JSch JCE classes, breaking SSH tunnels in release builds; keep rules now
    preserve them.

Changed

  • Session status colors are now distinct: busy/processing shows blue while new messages stay green.

See CHANGELOG.md for the full list.

v1.4.0

Choose a tag to compare

@hiylo hiylo released this 14 Sep 01:51

StarBurst v1.4.0 - Release Notes

This release adds server management screens (automation rules / API tokens / audit log), a
full AGENTS.md workflow, fork-branch navigation, quick prompt templates, and continues the
project rename to StarBurst.

Highlights

  • Server management — three new screens under server settings:
    • Automation rules — scheduled / git / webhook triggered agent tasks with
      natural-language AI generation (/api/rules/generate) and execution history.
    • API tokens — create / revoke backend access tokens (plaintext shown once).
    • Audit log — recent authenticated API actions.
  • AGENTS.md workflow — from the chat menu, detect a project's AGENTS.md, then generate
    (no file), improve (AI enhancement), modify by instruction (natural-language), or
    edit manually, and save it back to the project root. Generation shows an animated status
    indicator, and failures offer a "Continue" retry.
  • Continue on failure — when the agent aborts or a retry fails, the error message now offers a
    "Continue" action that resumes the session.
  • Fork branch navigation — a branch bar lets you jump between a session and its forked child
    sessions, and back to the parent.
  • Re-copy share link — already-shared sessions can copy the share URL again from the menu.
  • Quick prompt templates — one-tap presets (code review / generate tests / explain code / fix
    bug) fill the composer, handy on mobile.

Changed

  • Renamed to StarBurst — application id org.hiylo.starburst, app label StarBurst, new
    signing keystore.
  • Server-side ASR preferred — voice input now prefers the backend streaming engine and falls
    back to the on-device MNN model.
  • "Suggestion service" → "LLM service" — the provider setting reflects its broader role.
  • Source-code split — ChatScreen / NavGraph / OpenCodeApi broken into per-concern files.

Fixes

  • AGENTS.md empty-file detection (the server returns 200 + empty content for missing files).
  • AGENTS.md editor layout pushing the save button off-screen.
  • Stats / audit / rules / tokens endpoints now accept the app token.

Version

  • versionName: 1.4.0
  • versionCode: 6

v1.3.0

Choose a tag to compare

@hiylo hiylo released this 13 Sep 06:47

OpenCode v1.3.0 - Release Notes

This release adds theme schemes, backend-first suggestions, a Task Center backed by
opencode-backend, a home-screen Widget, bookmarks and full-text search, server-side ASR, and a
one-click backend installer — plus a major native-memory fix.

Highlights

  • Theme schemes — three full cartoon color schemes (Candy / Ocean / Sunset) that recolor the
    whole app (surfaces, containers, secondary/tertiary), plus five extra accent colors in a
    wrap-around palette.
  • Backend-first suggestions — next-step suggestions now try the backend-configured LLM first,
    then the app's external provider, then the on-device MNN model; the suggestion area shows its
    source (server / cloud / on-device / fallback).
  • Task Center — background tasks, batch runs and archives via opencode-backend, with AI plan
    breakdown (streaming), scheduling (immediate / delayed / at-time / cron), dependency
    blocking/unblocking, and finished-task purge.
  • Home-screen Widget & App Shortcuts — session/server/task snapshots with deep links (open
    session / connect server / new session / search / task center), plus long-press shortcuts.
  • Bookmarks & full-text search — message bookmarks and cross-session full-text search, both
    scoped to the current server (entry lives in the session-list top bar).
  • Backend detection & one-click install — the server settings page probes /api/health; when
    the backend is missing and SSH is configured, one tap installs it over SSH and re-verifies.
  • Server-side ASR — streaming speech recognition via the backend engine as a fallback when the
    on-device model isn't available.

Fixes

  • Native memory blow-up (~790MB) — removed the unconditional MNN model preload on chat open;
    the model now loads on demand (native heap ~790MB → ~21MB).
  • Voice-input echo duplication and late correction writes after send.
  • Multi-line input height and the fixed-size send button.
  • SSE stall self-healing (busy-period REST fallback polling).
  • Skills page SKILL.md font sizing.

Version

  • versionName: 1.3.0
  • versionCode: 5

v1.2.0

Choose a tag to compare

@hiylo hiylo released this 10 Sep 05:39

OpenCode v1.2.0 - Release Notes

This release adds on-device voice input, global search, a much richer session list, and SSH
tunnelling, together with a batch of session-list and archive fixes.

Highlights

  • On-device voice input — an on-device MNN sherpa-mnn streaming Zipformer (bilingual zh/en,
    int8)
    model downloaded from ModelScope with per-file SHA-256 verification. Hold-to-talk with
    release-to-fill, slide-up-to-cancel, and a live volume waveform; the mic appears after the model
    is downloaded in Settings.
  • Global search — cross-server, cross-project aggregation of root sessions, searchable by
    title/directory/project/branch and filterable by time.
  • Session list — one-tap multi-server switching, pinned-session drag-to-reorder, search time
    filter, and a compact layout that reuses the chat compact-mode toggle.
  • SSH tunnel & health monitoring — optional SSH tunnel (JSch local port-forwarding) to connect
    and restart the opencode service remotely, plus connection health (latency / heartbeat / status).
  • Chat — custom Slash commands, quote-reply, and session export (Markdown / JSON).

Fixes

  • Status flicker / stuck conversation: status polling no longer clobbers a live busy state; idle
    reconciliation only happens when disconnected.
  • Foldable two-pane back navigation now pops back to the parent session.
  • Session list no longer misses sessions from other projects (cross-project root-session endpoint +
    authoritative snapshot).
  • Archiving/unarchiving now takes effect via the nested time.archived field.
  • Opening/creating a session no longer wipes the other sessions from the list.
  • Voice model download entry (and the chat mic) now appears; fixed the bundled ASR JNI's MNN
    dependency.

Version

  • versionName: 1.2.0
  • versionCode: 4

v1.1.0

Choose a tag to compare

@hiylo hiylo released this 08 Sep 12:49

Server & provider management, workspace file editing, a richer Git experience, and chat summaries. See CHANGELOG.md.

v1.0.1

Choose a tag to compare

@hiylo hiylo released this 07 Sep 23:25

This release adds a built-in Git experience and polishes the visual design.

Highlights

  • Git page — open the connected project's Git from the chat menu (shown when the project is a repository): branch/status, change list with per-file diffs (including untracked files), and commit history with per-commit file changes.
  • Git operations — commit, push/pull (with remote picker for multiple remotes), switch branch, and create a branch, via a persistent terminal session.
  • AI commit messages — generate commit messages from the recent commit style using the configured cloud LLM, falling back to the on-device model.
  • ModelScope model downloads — the on-device model now downloads from ModelScope (fast in mainland China) with per-file SHA-256 verification; auto-extracted from APK assets when bundled.
  • Design alignment — colored session status badges and semantic status colors.

Fixes

  • Bundled on-device model was never used at runtime.
  • Git misreported "not a repository"; PTY commands could be lost or time out.

See CHANGELOG.md for the full list.

v1.0.0

Choose a tag to compare

@hiylo hiylo released this 07 Sep 17:08

OpenCode v1.0.0 - Release Notes

Initial release of the OpenCode Android client.

Highlights

  • Native Material 3 chat interface with markdown, code blocks, and syntax highlighting
  • Real-time message streaming with auto-scroll
  • On-device suggestions — next-step prompts generated fully offline via a bundled MNN model,
    with optional external OpenAI-compatible LLM provider and silent fallback
  • Workspace file browser with previews and downloads
  • Full-screen terminal mode with PTY over WebSocket
  • Session management with search, favorites, categorize, fork, share, export, and delete
  • Completed-but-unread sessions pinned to the top of the session list
  • Multi-server support with stable reconnection
  • Adaptive two-pane layout on foldables and tablets
  • Theme, dynamic color, AMOLED, and notification controls
  • Secure in-app updates verified by SHA-256 and signing certificate

Version

  • versionName: 1.0.0
  • versionCode: 1