diff --git a/PLAN.md b/PLAN.md index 6846ced..67b11d3 100644 --- a/PLAN.md +++ b/PLAN.md @@ -570,7 +570,6 @@ Bigger pieces still deferred (each warrants its own minor, not v0.2.0 noise): - **i18n bridge** (§12). Symfony Translator (XLIFF) + Qt Translator (.ts) with a shared locale switch fanning out to both. - **Persistent log files + rotation** (Phase 5 out-of-scope). Symfony monolog wiring + a Qt-host log file with rotation. The dev console stays for live tails. - **Multi-arch builds** (§12). Linux ARM64, Windows ARM, macOS universal (arm64 + x86_64). Each adds a CI matrix dimension. -- **Sentry + opt-in telemetry** (§12). PHP-side Sentry for backend errors + a crash-dump pipeline for the Qt host. Off by default. - **Flathub / Snap packaging** (§12). Better discoverability than AppImage at the cost of additional packaging surfaces. - **Composer `create-project` package** (Phase 5 out-of-scope). Publish `php-qml/skeleton` as a composer template so `composer create-project php-qml/skeleton my-app` works. Bash `bin/php-qml-init` stays for curl-bootstrap. @@ -581,6 +580,7 @@ Locks down the cross-platform story before promoting to v1.0.0. Held until v0.9. - **macOS packaging** (was Phase 4b). `.app` bundle + `.dmg` + Sparkle 2 + notarization. Prerequisites: self-hosted macOS runner, Apple Developer cert ($99/yr), notarisation toolchain. - **Windows packaging** (was Phase 4c). NSIS installer + WinSparkle + Authenticode signing. Prerequisites: self-hosted Windows runner, code-signing cert (EV preferred to dodge SmartScreen reputation warm-up). - **Per-platform first-launch UX** (§11, *Distribution UX*). Gatekeeper / SmartScreen / AV-vendor pre-submissions, file-association docs, App Store path decisions. +- **Telemetry + crash reporting** (§12). Opt-in only, off by default; PHP-side Sentry for backend errors + a per-platform crash-dump pipeline for the Qt host (each OS does this differently — fits the cross-platform-packaging milestone). Plumbing settled before v1.0.0 even if no default endpoint ships. ### v1.0.0 — when @@ -589,6 +589,5 @@ When the public API (Symfony bundle services + attributes, Qt module C++ types + - **Auth model** (§12). Per-session bearer is fine for local-only; revisit if Mercure ever leaves loopback. - **Mercure storage strategy.** In-memory works for bundled mode now; document or switch if persistence is needed. - **AppImage relinkability** (§12, Qt LGPL row). Document and test the user-side relink procedure end-to-end. -- **Telemetry / crash reporting opt-in plumbing** (§12). Settled by v1, even if disabled by default. - **Security model audit** (§12). Caddyfile generation hardened against `0.0.0.0` binding; loopback-only enforcement audited end-to-end. - **FrankenPHP-as-library evaluation** (§12 — future optimisation). CGo-embed FrankenPHP into the Qt host as a single process. Subprocess model stays the default; this is a perf optimisation only if measurements warrant.