chore(release): promote development to master #258
Reference in New Issue
Block a user
Delete Branch "development"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Promote the full
developmentdelta to the production trunk. 13 commits, 131 files (+3024/-536). PR intomasteris test-only (no auto-deploy).Included (by area):
/privacy/and/eula/, renderer pre-render at boot, size-independent contour probes.ANDROID_PLAN.md, re-enable the APK workflow,ICONS.md; app-icon rebrand sliced from one master./vk/open instead of a guest.can_pin_messages).Release steps (owner, after merge — separate from this PR):
vX.Y.ZonmasterHEAD.workflow_dispatch(confirm=deploy) — both hosts.can_pin_messagesin the discussion chat before live-checking the unpin.No
PRERELEASE.mdsteps recorded (no schema/wire prerelease blocker).Author ui/legal/{privacy,eula}_ru.md, reworked from the source documents: the seller INN is unified (290210610742), contacts unified to the Telegram bot + email + postal address, the EULA governing-law clause leads with Russian law + jurisdiction as residence tiers, the single-binding-language clause is dropped, data collection is scoped to voluntary/support provision, and "Компания" is no longer shout-cased. Serve both as static pages through the render sidecar, reusing a shared renderLegalHtml generalised from renderOfferHtml: new GET /privacy/ and GET /eula/ (301 from the slashless form), the markdown baked into the image, no backend fetch. Route them at the edge via the @legal caddy matcher with a CI probe asserting each page's canonical URL + the seller INN, so a missing route cannot silently fall through to the landing. Add the two links to the landing footer. Docs baked in: ARCHITECTURE (renderer legal pages + edge routing), FUNCTIONAL (+_ru) footer, renderer/README routes. Tests: renderer legal.test.mjs, ui renderLegalHtml unit, landing footer e2e.The SVG tracer export failed, so the icon was designed collaboratively from scratch: a wooden «Э» tile with a ✻ score-subscript in Spectral Bold, wood grain and diagonal light/shadow. Construction is specified in fractions of the side in docs/ICON_BRANDBOOK.md; the reference generator, pinned Spectral font and committed masters live in assets/icons/brand/. One master -> the whole set (assets/icons/brand/build-set.mjs + build-android-res.mjs): - web (ui/public): favicon.svg (light+dark via prefers-color-scheme), favicon.ico, apple-touch, PWA any + maskable (+ dark variants), og-image reskinned to «Эрудит» / Игра в слова - Capacitor layers: ui/assets/{icon,icon-foreground,icon-background}.png - Android launcher res, all densities, NO inset, + monochrome themed layer (anydpi xml: background+foreground+monochrome) - manual-upload art: assets/icons/brand/{vk,tg,store} (square, no rounding) Primary variant light; dark where the platform can theme (favicon.svg). The old LiberationSans generator (assets/icons/build) is removed; docs/ICONS.md retargeted onto the single master. ANDROID_PLAN icon-rebrand item marked done.Opening the dedicated /vk/ entry directly in an ordinary browser (no signed VK launch) fell through to the web flow and silently started a throwaway guest, which is wrong for a VK-only entry. Mirror the existing /telegram/ launch-error behaviour: render a compact, shareable, privacy-safe diagnostic screen instead. - Boot: a new branch `onVKPath() && !insideVK()` sets app.launchError and stops the fall-through, the VK counterpart of the /telegram/ diagnostic guard. - Diagnostic (passive, no VK Bridge round-trip): reads the URL launch-parameter NAMES (never the `sign` value — auth material), whether the URL was signed, `vk_platform`, the iframe/referrer context, plus the shared client-environment lines. VK signs the launch URL at load, so — unlike Telegram's initData — the parameters never arrive late; hence the VK screen offers Share only, no Retry. - Generalise the screen: TelegramLaunchError.svelte -> LaunchError.svelte, which renders a neutral pre-formatted report and a per-platform title, with Retry gated on a `retry` flag (Telegram true, VK false). app.launchError is now a neutral LaunchDiag { platform, report, retry }. - New lib/launchdiag.ts holds the shared pieces both platforms reuse: the LaunchDiag shape, the client-environment lines, and the query field-NAME reader (moved out of telegram.ts so VK does not duplicate them). Tests: pure vkDiagLines units, incl. a guard that the `sign` value never leaks into the report. i18n: launch.errorTitleVk (en/ru). Docs: FUNCTIONAL (+ru) user story and ARCHITECTURE entry-path note.