From c4df2c3b3fbdff1a4ef25e6e89dd16c79c01ac27 Mon Sep 17 00:00:00 2001 From: fy59 Date: Thu, 1 Oct 2026 07:30:37 +0200 Subject: [PATCH] docs(package): require Web assets for rollout --- CHANGELOG.md | 1 + docs/current_state.md | 2 ++ tools/package_sync_candidate.py | 2 ++ 3 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbb838f..14c8a71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ preview-and-confirm cascade for unfinished Program sessions. It retains source and actual dates, stores absolute current dates and ceded-slot state, and selects a separate Programs V2 Android projection by capability. This candidate is not merged into the stable installation or deployed to Android. +Rollout packaging now rejects a native build without the embedded Web frontend. Development opened after the stable v0.1.6 release. This line is restricted to observed bug fixes, regression fixes, directly related small UI corrections, diff --git a/docs/current_state.md b/docs/current_state.md index 36eac80..66ad039 100644 --- a/docs/current_state.md +++ b/docs/current_state.md @@ -10,6 +10,8 @@ The candidate passed local native, Web, Android JVM, build, and targeted sanitizer validation. It still requires coordinated PC/Android deployment before it is an operational feature. Completed-session calendar dates in stable 0.1.7 continue to come from their linked factual sessions. +Rollout packaging requires an explicit Meson `-Dweb=enabled` build; the +embedded frontend and its native Web tests are part of candidate validation. Full-generation synchronization uses one generation/ACK business engine across versioned transports. On the paired 0.1.4 deployment, automatic local selection diff --git a/tools/package_sync_candidate.py b/tools/package_sync_candidate.py index 193e356..462f8a5 100644 --- a/tools/package_sync_candidate.py +++ b/tools/package_sync_candidate.py @@ -82,6 +82,8 @@ def main() -> int: raise RuntimeError("compiled generation MTP adapter is missing") if not sync_once.is_file(): raise RuntimeError("compiled legacy synchronization helper is missing") + # WHY: web=auto can build a native executable without any embedded UI. + # CONTRACT: a rollout bundle must contain the frontend it will serve. build_options = json.loads(subprocess.check_output( ["meson", "introspect", "--buildoptions", str(args.build)], text=True ))