Files
ActivePush/CHANGELOG.md
T
2026-11-08 12:57:19 +01:00

72 lines
4.0 KiB
Markdown

# 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.