Documentation

Changelog

Hiras is currently at version 1.0.0, its first release, free on APKPure and linked from the product page. Every version’s changes are recorded here. Breaking changes only ever come with a new version, never slipped into an existing one.

1.0.0 — first release

The inaugural release. Everything Hiras does today ships in this version:

The gateway

  • LAN-only HTTP server on the phone, on a fixed port (8080).
  • REST API: POST /api/sms/send, GET /api/messages, GET /api/messages/:id, GET /api/stats, GET /api/host/info, GET /api/diagnostics, and an unauthenticated GET /health.
  • Automatic splitting of long messages into SMS segments.
  • Multi-SIM support — a default SIM plus an optional per-request simSlot.

Security

  • sk_local_ API key in Android Keystore-backed storage, sent as a bearer token, compared in constant time.
  • Local-network guard that rejects any non-private address before authentication.
  • Fixed rate limits (60 segments/min, 1 req/sec) plus a per-caller burst guard, and a 16 KB request cap.

Two-way and testing

  • Inbound SMS forwarded as HMAC-signed webhooks, with retries and no stored inbox.
  • Dry Run and Failure Simulation — exercise the API without sending a real text or spending load.

On-device truth

  • SQLite send history (newest 1,000) recording real sent / failed outcomes, plus durable today/month stats. Nothing is uploaded.
  • Live diagnostics and a one-tap JSON export of the event log — outcomes and timestamps, never message bodies.

Reliability and setup

  • Foreground service that survives screen-off and swipe-away, with an optional start-after-reboot.
  • First-run onboarding, QR/copy pairing, and copy-paste client examples for cURL, C#, Node.js, and Flutter.
  • Detect-and-list VPN access for a private network you already run.

Next