docs(commercial): the claim page was never needed, signing waits for revenue, and support is a filter
Four things derived this session superseded what the plan said twenty-four hours earlier,
and the docs are corrected where each one died:
**Licensing needs no server.** Polar's customer-portal endpoints authenticate on the key
itself plus the public organization_id; the org access token is only needed to create
products. Channel binding rides in `conditions: {channel_id}`, re-checked on every
validate — so the "claim page" (a hosted OAuth flow that wrote the UC id onto the key)
and the key database it implied are deleted. Device management, key rotation and
subscription auto-revocation are Polar's; four states, one lease, no callback endpoint.
**Signing is deferred until two subscribers.** It never removes the day-one SmartScreen
warning (EV's instant-bypass died in 2024), so buying it before revenue buys only the
publisher line. Renamed to Azure Artifact Signing, $9.99/mo Basic, and it requires a
paid Azure subscription. Year-one fixed cost drops from ~$135 to ~$15.
**The Store account is free.** Microsoft waived the $19 individual fee and removed the
$99 company fee in May 2026, which makes the Store the only zero-cost route to a
Microsoft-signed install — the free answer to SmartScreen, noted beside the paid one.
**Support is a filter, not a promise.** Email, best effort, no SLA, refunds on request
without argument; no training service, no helpdesk. A repeated question becomes a
training video on @llamacasty, which is content and monetization instead of a ticket.
GitHub issues on the releases repo are the deliberate friction.
Also settled: binaries live in a second Gitea repo (`llamacasty-releases`) push-mirrored
to a public GitHub repo — issues and assets public, code private, one publish direction
(a git mirror carries refs, not GitHub Release assets); `@llamacasty` is
standard-verified with intermediate features, so live streaming, >15 min uploads and
custom thumbnails work today and no SIM or ID is needed; and OAuth comes out of Testing
mode by publishing the app (100-user lifetime cap, no 7-day token death).
TASKS.md now opens with the four-day surge slice — artifact shape, output gate,
entitlement seam, real-machine day — because those are what the first public release
waits on. HANDOFF.md rewritten. MyMistakes.md gains the Polar recipe and the
"verify means three different things" entry. MARCOM.md gains the support→content loop
and the surface roles.
This commit is contained in:
+24
-13
@@ -192,12 +192,15 @@ YouTube" button; going live is unreachable until an account is connected.
|
||||
## Windows packaging & distribution (winget primary; Steam + Store parked)
|
||||
|
||||
Live channel policy, the artifact and signing costs: [`commercial.md`](commercial.md). Build
|
||||
mechanics (publish flags, GitHub Releases, the winget manifest): [`Distribution.md`](../../Distribution.md).
|
||||
Retired routes and cause of death: [`decisions.md`](decisions.md).
|
||||
mechanics (publish flags, the releases repo mirror, the winget manifest):
|
||||
[`Distribution.md`](../../Distribution.md). Retired routes and cause of death:
|
||||
[`decisions.md`](decisions.md).
|
||||
|
||||
**The channels, in order:** direct download from `llamacasty.com` (binaries on GitHub Releases) →
|
||||
**winget**, the primary install path → Steam (parked, $100, lifetime Pro as DLC only) → Microsoft
|
||||
Store (parked, $19 Individual account — the only storefront that bills a subscription natively).
|
||||
**The channels, in order:** direct download from `llamacasty.com` (binaries in a separate
|
||||
`llamacasty-releases` repo, push-mirrored to public GitHub) → **winget**, the primary install path →
|
||||
Steam (parked, $100, lifetime Pro as DLC only; the only channel with discovery *and* an install
|
||||
that never meets SmartScreen) → Microsoft Store (parked, **free** account since the $19 individual
|
||||
fee was waived — the only zero-cost route to a Microsoft-signed install).
|
||||
|
||||
**Consequences that are architecture, not packaging detail:**
|
||||
|
||||
@@ -205,8 +208,8 @@ Store (parked, $19 Individual account — the only storefront that bills a subsc
|
||||
2026-10-22 (TASK 48 slice 3) because it downloaded *and executed*, which Store policy 10.2.2
|
||||
forbids — and the same rule would close the Store for good if it came back. Updates arrive
|
||||
through the package manager (`winget upgrade`) plus an in-app "newer version exists" banner read
|
||||
from a version file on GitHub Releases. `ytLive.Tests/StorePackagingTests.cs` must keep asserting
|
||||
that no self-updater returns.
|
||||
from a version file in the releases repo. `ytLive.Tests/StorePackagingTests.cs` must keep
|
||||
asserting that no self-updater returns.
|
||||
- **The MSIX package stays buildable** via `scripts/package-msix.sh` (TASK 48 slice 2) — publish
|
||||
`Release -r win-x64 --self-contained` into `artifacts/msix-stage`, copy
|
||||
`Packaging/Package.appxmanifest` in as `AppxManifest.xml` + `Packaging/Assets/`, then
|
||||
@@ -249,15 +252,23 @@ trust. No `broadFileSystemAccess` capability is needed, and none should be added
|
||||
error.** A comment at `DefaultRecordFolder()` is owed **when the manifest lands** (TASK 48
|
||||
item 6) — not before; a comment describing a manifest that doesn't exist is worse than none.
|
||||
|
||||
### Signing — Azure Trusted Signing, never EV
|
||||
### Signing — deferred until revenue; Azure Artifact Signing, never EV
|
||||
|
||||
Microsoft **removed the SmartScreen instant-bypass for EV certificates in March 2024**, so EV
|
||||
($400+/yr) buys what OV (~$150–300/yr) buys; both need an HSM or hardware token and renew inside
|
||||
**460 days**. The 2026-10-31 ruling is **Azure Trusted Signing (~$9.99/month)**: Microsoft-issued,
|
||||
individuals eligible after identity verification, and it accrues reputation without a certificate
|
||||
purchase. Until the profile exists, builds ship unsigned and the "unknown publisher" line is
|
||||
accepted. Signing never clears the warning on day one either way — only download volume does.
|
||||
Signing steps: [`Distribution.md`](../../Distribution.md).
|
||||
**460 days**. The 2026-10-31 ruling was **Azure Trusted Signing (~$9.99/month)**; the later ruling
|
||||
the same week is that it is **deferred until two subscribers exist**, because it never removes the
|
||||
warning on day one — only download volume does — and the storefront alternative is now free.
|
||||
|
||||
- **Renamed**: it is **Azure Artifact Signing** now. Basic is $9.99/month, 5,000 signatures, and it
|
||||
**requires a paid Azure subscription**; individual identity validation exists and must be
|
||||
renewed, and it is the slow (days-to-weeks) part — start it when the purchase is decided.
|
||||
- **Unsigned is a per-release tax**: SmartScreen ties reputation to the file hash, so an unsigned
|
||||
product warns on **every** release, forever. Signing is the only exit from that loop.
|
||||
- **The free exit is the Microsoft Store** — the individual developer account fee was waived, and
|
||||
Microsoft signs the MSIX, so a Store install never meets the wall.
|
||||
- **Never EV, never a certificate with an HSM**, for this product.
|
||||
Signing steps: [`Distribution.md`](../../Distribution.md). Costs: [`commercial.md`](commercial.md).
|
||||
|
||||
### Distribution and licensing are independent — the channel never decides billing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user