# Changelog ## 0.1.8 - 2026-11-08 - Port 8081 landing page reduced to the flat application logo centred on the page (no gradients, shadows, text or status indicator). ## 0.1.7 - 2026-11-08 - Port 8081: `/` serves a small landing page with the application logo (self-contained, no scripts, CSP pinned by hash, light and dark theme) instead of plain text; `/favicon.svg` added. `/healthz` and every other path unchanged. ## 0.1.6 - 2026-11-08 - Autodiscover: the panel page lists the last 30 requests as received (headers without credentials, login as typed, request and response bodies) to debug phones that still ask for the server. A 200 response carrying an Autodiscover error (e.g. unsupported schema) is labelled "invalid request" in Live instead of "ok". ## 0.1.5 - 2026-11-08 - Autodiscover: iOS sends the same password twice, with `user@domain` and with the bare `user`; IMAP servers that only know the full address refused the second attempt and the phone treated the whole Autodiscover as failed (manual "Server" field). When the bare name is the local part of the requested address, the full address is now tried first, then the name as given. ## 0.1.4 - 2026-11-07 - Autodiscover: several domains, each optionally with its own ActiveSync URL - one line per domain, e.g. `example.org https://mail.example.org/Microsoft-Server-ActiveSync`. Without a URL the global Public ActiveSync URL applies; an empty list serves every domain. Diagnostics use the per-domain URL. ## 0.1.3 - 2026-11-07 - New panel page **Autodiscover**: list of served e-mail domains, public ActiveSync URL and per-domain diagnostics (DNS A/AAAA/SRV, endpoint probes with certificate/redirect detection, ActiveSync URL, verdict, recommended DNS records and nginx block). When a domain list is set, other domains are refused. - Built-in minimal DNS client (no new dependencies). Responses carry an `X-ActivePush` marker so the diagnostics can tell ActivePush from another application behind the proxy. ## 0.1.2 - 2026-11-07 - Autodiscover: every attempt (including the unauthenticated first request iOS sends, wrong host, backend errors) is now logged (`active_push::autodiscover`) and shown in Live with the host it arrived on; a request without `AcceptableResponseSchema` is treated as MobileSync. See docs/TROUBLESHOOTING.md ("iPhone asks for the server"). ## 0.1.1 - 2026-11-05 - Fix: devices migrated from Z-Push looping on unknown collection ids (`collection ... not found`) - such ids are now removed from the device with a FolderHierarchy Delete on the next FolderSync. - Counting: devices are physical phones (DeviceId); mailboxes are counted separately; partnerships shown too. Devices page groups all mailboxes of one phone in one row; Users page renamed to Mailboxes with "same device as" column. - Panel: English by default, spacing between cards, styled select dropdowns, non-overlapping live stream columns, chart axis labels no longer clipped, database size on Overview. - Port 8081: plain text on `/`, plain 404 elsewhere, `/healthz` also checks the database. - Retention: hourly WAL checkpoint/truncate, incremental auto-vacuum, pruning of id maps and very old states, inactive devices removed after 180 days by default, bounded in-memory caches, unknown command names normalised. - `probe`: `--device-id`, `--device-type`, `--model`. - Documentation in English with screenshots (`docs/PANEL.md`), new `LOGS.md` and `TROUBLESHOOTING.md`. ## 0.1.0 - 2026-11-05 First release: complete rewrite of Z-Push (combined backend: IMAP/SMTP + CalDAV + CardDAV) in Rust. - ActiveSync 2.5-14.1, every command used by iOS, Android and Outlook. - Push (Ping, hanging Sync) with cheap change detection. - Administration panel: overview, live traffic, devices (remote wipe, blocks, approval), mailboxes, backends with connection tests, ActiveSync settings, policies, security, logs and audit. - Login lockouts, access lists, audit, Prometheus. - .deb package, sandboxed systemd unit, Z-Push config importer, `admin/config/device/probe` CLI.