docs: record 1.2.0 and the state of the published 1.1.0
Some checks failed
deploy-site / deploy (push) Failing after 54s
release / release-windows (push) Failing after 2m56s

The changelog still described unreleased work under 1.1.0, which was already
published with its own notes. Those notes are restored verbatim for history,
and the new work has its own 1.2.0 section that the feed publisher will turn
into release notes.

The release guide, infrastructure map, and mobile SSOT now carry the 1.2.0
identity, state that installer binaries are distributed through the feed and
never committed, and record that the published 1.1.0 installer is unsigned and
is being superseded rather than rewritten. Backlog entries cover the remaining
external signing and token secrets.
This commit is contained in:
Yun Chan 2026-09-16 23:50:01 +09:00
parent 035d0a76f5
commit 359b244dc9
10 changed files with 77 additions and 58 deletions

View file

@ -13,6 +13,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Cloud-optional backup (encrypted, opt-in)
- Plugin system for custom pipelines
## [1.2.0] - 2026-09-16
> Published from an annotated tag through CI. Installer and update metadata are
> served by the canonical Forgejo feed; no binaries are committed to this repository.
### Added
- **Canonical desktop release channel**: desktop auto-update now reads one Forgejo Generic Package Registry feed, published by a version-agnostic publisher (`scripts/ci/publish-forgejo-release.mjs`) from tag-triggered Forgejo Actions, GitLab, and GitHub pipelines. The GitLab registry stays a legacy mirror for pre-Forgejo installs.
- **Update policy SSOT** (`release/update-policy.json`): channels (`latest`/`beta`/`alpha`), minimum supported version, forced install, full-installer thresholds, staged rollout percentage, and a remote kill switch, enforced at runtime by `apps/desktop/src/main/update-policy.ts`.
- **Dictionary import/export on desktop and web**: round-trip import with per-entry conflict reporting, a web dictionary client, and an expanded knowledge add form.
- **Multi-transport push delivery**: Web Push (VAPID) and token-based Apple Push (APNs) transports join Firebase Cloud Messaging, with a Cloudflare Worker cron drain over an outbox table.
- **Team activity feed**: team activity events, migration, and the web feed component.
- **Shared entitlement gating** in `@d3ro/core` for free/paid feature boundaries.
- **Infrastructure map** (`docs/map/`) documenting the infrastructure and feature status per platform, with an update protocol so feature work and the map stay in step.
- 21 unit tests for update policy decisions and feed helpers, plus tests for dictionary I/O, entitlements, push drain, Web Push, and APNs payloads.
### Changed
- Desktop runtime updater feed moved from GitLab project 1172 to the canonical Forgejo registry; `electron-builder.yml`, the metadata verifier, and both CI publishers now enforce the canonical/mirror split.
- Release metadata verifier self-test expanded to negative cases covering the feed contract, policy schema, and Forgejo publisher invariants.
- The canonical publisher refuses to re-publish a version whose registry assets already hold different bytes, so a same-version re-release fails closed instead of overwriting a shipped installer.
- Landing site and web console download centers now link the canonical Forgejo feed instead of repository-local installer paths, which are not part of any deploy artifact.
- Admin console data views (models, pipelines, users, subscriptions, audit log) read live back-office data, with a unified sidebar and console theme.
- Desktop settings, ad surfaces, license, and meeting-export UI aligned on the shared theme tokens; meeting export filenames now go through one sanitizer.
- Developer-only automation, scratch captures, .NET build output, and Playwright run output left the release checkout.
- Product version moved to `1.2.0` with Android version code and iOS build number `1020001`.
### Fixed
- Desktop configuration writes fail explicitly when the config store is unavailable instead of falling back to a throwaway in-memory store.
- Speech provider and model failures reach the UI as errors instead of surfacing as empty transcriptions.
- Removed the Forgejo release-publishing prohibition; the legacy hardcoded-version script is replaced by a version-gated publisher.
- Dropped a stale admin bundle from the API server web root.
- Mobile team, meeting, memo, template, command, and dictionary screens follow the server contract, and report submission no longer hangs without confirming to the user.
## [1.1.0] - 2026-08-29
### Added
@ -22,13 +54,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **Generated-content safety controls**: added generation receipts, shared generative-AI safety instructions, and an authenticated report flow for owned AI-generated meeting documents.
- **Release verification tooling**: added Android artifact, App Links, production Firebase/AdMob configuration, Play asset, secret scanning, signed provenance, and publication-boundary checks.
- **Complete mobile icon set**: added canonical Android legacy/adaptive/monochrome launchers, the 512px Play icon, and all required iPhone, iPad, and App Store marketing icon slots.
- **Canonical desktop release channel**: desktop auto-update now reads one Forgejo Generic Package Registry feed, published by a version-agnostic publisher (`scripts/ci/publish-forgejo-release.mjs`) from a tag-triggered Forgejo Actions workflow. GitLab CI and GitHub Actions converge on the same publisher, and the GitLab registry stays a legacy mirror for pre-Forgejo installs.
- **Update policy SSOT** (`release/update-policy.json`): channels (`latest`/`beta`/`alpha`), minimum supported version, forced install, full-installer thresholds, staged rollout percentage, and a remote kill switch, enforced at runtime by `apps/desktop/src/main/update-policy.ts`.
- **Dictionary import/export on desktop and web**: round-trip import with per-entry conflict reporting, a web dictionary client, and an expanded knowledge add form.
- **Multi-transport push delivery**: Web Push (VAPID) and token-based Apple Push (APNs) transports join Firebase Cloud Messaging, with a Cloudflare Worker cron drain over an outbox table.
- **Team activity feed**: team activity events, migration, and the web feed component.
- **Shared entitlement gating** in `@d3ro/core` for free/paid feature boundaries.
- 21 unit tests for update policy decisions and feed helpers, plus tests for dictionary I/O, entitlements, push drain, Web Push, and APNs payloads.
### Changed
- Unified mobile authentication and invitation links on the canonical `d3ro-voice` app scheme and added fail-closed verification for the HTTPS App Links contract.
@ -39,18 +64,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Finalized benchmarked `ko-KR`/`en-US` Play listing copy and a Console-previewed
1024×500 canonical feature graphic with preserved generation prompt, source,
output, and hashes.
- Desktop runtime updater feed moved from GitLab project 1172 to the canonical
Forgejo registry; `electron-builder.yml`, the metadata verifier, and both CI
publishers now enforce the canonical/mirror split.
- Release metadata verifier self-test expanded to 13 negative cases covering the
feed contract, policy schema, and Forgejo publisher invariants.
- Landing site and web console download centers now link the canonical Forgejo feed
instead of repository-local installer paths, which are not part of any deploy
artifact.
- Admin console data views (models, pipelines, users, subscriptions, audit log) read
live back-office data, with a unified sidebar and console theme.
- Desktop settings, ad surfaces, license, and meeting-export UI aligned on the shared
theme tokens; meeting export filenames now go through one sanitizer.
### Security
- Added atomic authorization and replay protection for teams, invitations, push delivery, transcription quotas, billing, ad rewards, administrative actions, data portability, and content reports.
@ -62,11 +75,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Corrected realtime Edge Function model routing and type checks for team and enterprise tiers.
- Removed the legacy `d3ro://` deep-link surface to prevent divergent authentication callback identities.
- Removed the Forgejo release-publishing prohibition; the legacy hardcoded-version
script is replaced by a version-gated publisher.
- Dropped a stale admin bundle from the API server web root, and stopped tracking
.NET build output, Playwright run output, and developer-only automation scripts in
the release checkout.
## [0.2.1-alpha] - 2026-07-22