Skip to content

Releases

PhoneBox 0.9.5

Choose a tag to compare

@github-actions github-actions released this 14 Nov 14:43

AMD and Intel graphics cards with no vendor tool, a GPU details widget, internet radio in Now Playing with station
cards, 12-hour times, font size, and 18 community pull requests (thanks to blx10).

Panel

  • 12-hour times: Settings › Display › Time format shows 2:05 PM instead of 14:05 on the clock, world clocks, night
    screen, agenda, Next up, countdown, sunrise/sunset, quota resets and "rules paused until" (#31), or follows the
    phone's own 24-hour setting (#50). 24-hour by default.
  • World clocks with many zones in a narrow widget no longer run their times into each other.
  • Smart Stack: a pause button next to the dots (or a long press on the dots) stops the rotation (#22).
  • GPU details widget: one graphics card in depth (load, VRAM or, for an integrated GPU, its shared memory, power,
    temperature against the card's limit, core and memory clocks, fan, driver and where the data came from). It can show
    the second GPU of a PC, typically the processor's integrated one.
  • New metrics for tiles, gauges and charts: GPU hot spot, GPU power and GPU clock; VRAM is now on tiles and charts, the
    GPU and CPU temperatures on charts. The GPU tile shows the temperature and power of AMD and Intel cards too.
  • Memory & disks shows a bar for every GPU.
  • Font and font size (#42, #44): Settings › Appearance picks a font (original, sans-serif, rounded, condensed, serif,
    monospace) and a size from 50 to 200 %, for the whole panel, a page or one widget. The clock also scales on older
    WebViews without container queries.
  • An outdated Android WebView (older than Chromium 105, which breaks widget scaling) is flagged on the panel and in
    Settings › Phone connection, with how to update it (#45).
  • When the phone has no internet of its own, the weather, air quality, Hacker News, exchange rate and crypto widgets
    fetch through the agent over USB (#38). Only those five HTTPS feeds are allowed; the proxy is not reachable over Wi-Fi.
  • AI quotas / CodexBar: every provider CodexBar reports (Cursor, Copilot, Gemini, z.ai, OpenRouter and more) with
    pace and reset notes (#23); an optional cost overview card with the spend and tokens of the last 30 days and the
    top models (#24, #25), off by default; the widget's provider list offers the providers CodexBar currently reports and
    keeps saved ones that are offline (#26).
  • Internet radio in Now Playing (#17): the station playing on the computer shows as the track, with its play time;
    ⏮ / ⏭ switch stations and ⏯ stops and resumes. Starting a station pauses the music that was playing, and resuming
    that music stops the radio (#29).
  • Radio widget (#20): station cards with logos (from the station's own logo URL, or, if allowed in Settings, looked up
    in public radio directories) or a sliding card row; a tap on a playing station stops it.
  • A tap on a CPU or RAM tile, gauge or chart, or on Memory & disks, opens the Processes page sorted by that resource;
    the Processes widgets show the total CPU and RAM use, and app icons are cached instead of loaded on every refresh (#35).
  • Radio stations can be switched off and put in order in Settings › Control Deck; ⏮ / ⏭ skip switched-off
    stations (#27). Stations can be imported by country from radio-browser.info, and the configured streams checked (#28).

Agent

  • AMD and Intel GPUs (#49). On Windows the agent reads every GPU the way Task Manager does, with no vendor tool: its
    name, load, VRAM and shared memory, temperature, memory clock, power share and driver, through the graphics kernel
    (D3DKMT) and the GPU performance counters. LibreHardwareMonitor's web server, when it runs, adds the hot spot,
    memory temperature, board power, fan and clocks. On Linux, AMD cards come from amdgpu sysfs (load, VRAM, GTT,
    temperatures, power, fan, clocks) and Intel ones show their clock. NVIDIA stays on nvidia-smi, which now also reports
    every card in a multi-GPU PC, the memory clock and the driver version.
  • The state carries pc.gpus, all GPUs with the main one first (a graphics card before an integrated GPU);
    pc.gpu stays the main GPU, so older panels keep working.
  • CodexBar's cost scan (codexbar cost --days 30) runs only while a quota widget shows the cost overview, every
    20 minutes and apart from the usage refresh; its figures expire after an hour without a successful run (#24).
  • Quota rules keep firing on the last known limits while a provider reports an error; providers CodexBar stops
    reporting no longer keep stale limits (#23).
  • macOS and Linux: cover art that arrives late is picked up, and the art of a finished track no longer lingers (#34).
  • Radio streams in HLS (.m3u8) play on Windows, on the chosen output device (#18). On Linux and macOS, sound and
    radio controls play through ffplay, mpv or vlc, whichever is installed (#33).
  • Radio directory imports refuse stream addresses inside a home network (router, nas.lan, 192.168.1.1.nip.io);
    logo downloads and stream checks only connect to public addresses and never follow a redirect from https to http.

PhoneBox 0.9.4

Choose a tag to compare

@github-actions github-actions released this 11 Nov 11:29

A full audit of the agent, the panel, the settings page and the tooling. Every fix below has a regression test or a
recorded proof.

Panel

  • After the agent restarts (an update, a reboot) the panel no longer ignores its notifications, rule page switches
    and Claude Code permission prompts until the new agent has sent as many events as the old one.
  • Timer and Pomodoro alarms go off on whatever page is showing, not only when their own page is open.
  • Control Deck widgets have their padding back (titles were cut off at the card's corner), faders show their level
    on the track, and a fader keeps following the computer after a tap that did not move it. Ducking to 0 % works.
  • World clocks show the right time as soon as their page is visible again; a daily counter and the Pomodoro's
    "today" count start over at midnight while the panel stays open; a counter, gauge or On air sign without saved
    options behaves as the settings page shows it.
  • Web widgets (rates, prices, Hacker News, air quality) retry within a minute after a failed load. Back closes the
    session details dialog. "now ago" reads "just now".
  • The phone no longer sends a slow POST (a container restart, a Home Assistant switch) a second time over Wi-Fi.

Agent

  • Calendar: recurring events follow more of RFC 5545 (weekdays in a daily rule, "last Thursday of November",
    week start, BYSETPOS, leap-day birthdays, escaped backslashes) and keep their local time across daylight saving.
    Calendars that share a name no longer multiply their events while a feed is unreachable.
  • A quota window that has already reset is no longer shown as used up. CodexBar texts use a decimal point on every
    Windows locale. A leftover Claude Code session file whose process ID was reused is not shown as a live session.
  • Rules: a pushed "OFF" / "False" / {"value":"off"} turns a push rule off, and "18:00-24:00" lasts all evening.
  • Battery care keeps trying to switch the power back on after a failed attempt.
  • A phone without the app is offered "Install the phone app" again, and no longer blocks the phones after it.
  • The settings page can save again after config.json was left unreadable by a hand edit; a null entry in the
    settings is answered with a message instead of an error page. Pushed values reach data.json even while a
    script pushes every second. Page, shortcut and rule ids keep the Turkish capital İ.
  • Control Deck: a folder shortcut is not mistaken for a running app; toggle shortcuts run their "off" command; a
    task that cannot start says so; a sleep timer can be cancelled after its player closed and fades Store apps such
    as Spotify; a Spotify timeout is reported instead of failing the request.
  • The Command widget's Linux / macOS command can be edited in the settings.

Settings page

  • Multi-select options (chart series, quota providers, shortcut keys) keep every tick, not only the last one.
  • Text options of a widget inside a Smart Stack can be typed normally. Templates and stack children are saved with
    the defaults the inspector shows. "Add a widget" finds room it used to miss. A rule switched to "show the page"
    stores the page it displays.

Web demo and tooling

  • The live demo shows all 30 templates and answers like the agent: the
    phone-facing settings without commands, working volume, media, process and Control Deck controls, the same
    refusals and error texts. The landing page takes its widget and template counts and the version from the sources.
  • install.ps1 stops when the build fails instead of starting the previous version; the APK installer reports
    adb's real answer under Windows PowerShell 5.1.

PhoneBox 0.9.3

Choose a tag to compare

@github-actions github-actions released this 11 Nov 00:22
  • Support Podman for the containers widget (#12). Parse Podman's JSON
    array and NDJSON container/stats output (Id, Names arrays, object labels, numeric CPU/memory), hide pod infra
    containers, and fall back between docker and podman when one is unavailable. The first request no longer reports
    "Docker is not running" before the cache is filled, and start/stop/restart waits for an in-flight poll so the panel
    shows the new state.
  • Match Activity Monitor's "Memory Used" on macOS: app memory (anonymous minus purgeable) plus wired and compressed
    pages (#11).
  • Hide CodexBar's own claude usage probe from the sessions widget, matching only its exact
    CodexBar/ClaudeProbe directory so real projects with similar names stay visible
    (#13).
  • Swipe past the last page to wrap to the first, and past the first to wrap to the last
    (#14). The jump is instant, and drags that start on sliders,
    buttons, the volume bar or lists never flip pages.

PhoneBox 0.9.2

Choose a tag to compare

@github-actions github-actions released this 10 Nov 20:34
  • Fix webhook JSON payloads with nonnumeric ttl fields causing an unhandled exception. Only integer payload TTLs
    set an expiration; other field values remain ordinary data, and an explicit request TTL still takes priority.
  • Enforce the 64 KB webhook body limit in bytes even for chunked requests without Content-Length, including
    multibyte UTF-8 text. Oversized bodies are rejected before any pushed value is stored.
  • Add eight regression cases covering TTL types, explicit overrides and ASCII/multibyte body boundaries.

PhoneBox 0.9.1

Choose a tag to compare

@github-actions github-actions released this 10 Nov 19:11
  • Fix stale Windows media cover art after switching YouTube/Chromium tracks (#9).
    Refresh delayed thumbnails and media-property changes, periodically recheck missed updates, and keep the artwork ID
    stable when the image is unchanged. Clear artwork when the media session closes.
  • Recover the four affected default icons from known ANSI/UTF-8 double-encoded forms (#10).
    Repair only page/shortcut icon fields, preserve the original configuration in the normal backup, and escape saved
    icon values so ANSI-based editors cannot corrupt them. Other user text and commands remain unchanged.

PhoneBox 0.9.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 16:26
  • Add optional global, page and widget appearance settings with Original, Rounded cards, Flat, Content only and
    Seamless panel presets. Configure corners, grid spacing, widget/page padding, borders and shadows independently.
  • Preview unsaved appearance changes in the real panel from General settings; page/widget inspectors support
    overrides and resetting inheritance. Smart Stack children inherit their stack appearance.
  • Preserve the original look for existing layouts, keep explicit zero/false values, bound imported settings and
    retain device safe areas. Page sharing and duplication preserve appearance.

PhoneBox 0.8.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 12:34
  • Add 58 Control Deck widget types and six templates, bringing the catalog to 113 widgets and 30 templates.
  • Add native Windows application/device audio faders, channel balance, meters, microphone controls, audio-role
    selection, captured profiles, disconnect-safe push-to-talk, ducking and opt-in PC audio listening.
  • Add media source/transport/seek/mode controls, Spotify PKCE connection with private token storage, queue/library/
    playlist actions, computer-side soundboard/radio and a sleep fade/pause timer.
  • Add application dock/focus, configured keys/macros/snippets/projects, window/display profiles, desktop switching,
    monitor brightness, power plans and hold-confirmed power controls.
  • Add OBS mixer/scenes/sources/recording/stream/replay/transition/virtual-camera panels, meeting shortcuts and timers,
    tracked build/dev-server jobs, service controls and GitHub workflow bindings. Existing Docker/HA controls remain.
  • Add optional SoundVolumeView routing, measured Voicemeeter controls, MIDI pads and OSC messages. External programs,
    accounts and hardware require setup; Windows native features do not imply Linux/macOS parity.
  • Add desktop binding/profile setup, dependency feedback and ID-only phone control requests. Prevent an ambiguous
    submitted control POST from being automatically retried over Wi-Fi.

PhoneBox 0.7.3

Choose a tag to compare

@github-actions github-actions released this 10 Nov 08:58
  • Fix the launch crash on Android 9 and 10 (API 28–29), reported in
    issue #8 by 0z-zy.
    Full-screen mode now uses legacy immersive sticky flags on these versions; Android 11+ retains the window-insets path.
  • Run full Android debug lint in CI and classify NewApi findings as fatal, so unsupported framework calls block
    both CI and release APK builds. Before the fix, lint reproduced all five unguarded API-30 calls in hideSystemUi.

PhoneBox 0.7.2

Choose a tag to compare

@github-actions github-actions released this 10 Nov 00:13

Native Antigravity quotas on Windows, Linux and macOS. Existing layouts and pairing settings are retained.

  • Add native Antigravity quota and plan monitoring, adapted from PR #7
    by Biswajit9609. Support flat and nested measured quota fractions; skip unknown
    or invalid values instead of showing unused quota. Preserve measured zero/full usage.
  • Discover legacy Windows/Linux language-server names and extension-server ports with the matching CSRF token.
    Reject unrelated editor processes, try other candidates after a failed probe, bound local requests and macOS
    process reads, and fall back to measured model quotas from older IDE servers without inventing weekly limits.
  • Add a version-gated agy -p /usage --output-format json fallback for signed-in CLI installations, including the
    standard per-user Windows path. Parse its snake-case group/window fields, disable CLI auto-updates during probes,
    and keep conversation identifiers and token counters out of the panel. Live Windows validation with agy 1.5.3
    returned all four Gemini/Claude-GPT quota windows through the agent API without a model turn.
  • Preserve the dependency updates from 0.7.1 when adapting the contribution.
  • Make the widget integration fixture independent of the local night schedule; late-night test runs no longer
    activate the night overlay over controls being tested.
  • Wait for the demo layout before calendar-test navigation and use delete-on-close smoke-test logs so a transient
    inherited Windows handle cannot fail otherwise successful artifact checks.

PhoneBox 0.7.1

Choose a tag to compare

@github-actions github-actions released this 09 Nov 18:47

A compatibility and release-maintenance patch. Existing layouts and pairing settings are retained.

  • Update Playwright to 1.65.0, Microsoft.NET.Test.Sdk to 18.11.0 and the xUnit Visual Studio adapter to 4.0.1.
  • Update seven pinned GitHub Actions and verify release-artifact transfer and Pages archive compatibility in CI.
  • Limit public release assets to the signed APK, five agent archives, build provenance and SHA-256 checksums;
    debug APKs and intermediate build files are excluded.
  • Fix scripts/install.sh --apk on Bash 3.2 when no device serial is specified. The empty target array was treated
    as unset under set -u, stopping the installer before ADB ran. Adapted from PR #2, with installer regressions
    for default device selection, explicit serials and failed updates that preserve the existing app.