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.
2.3 KiB
2.3 KiB
HANDOFF — 2026-10-31 (commercial settled; the surge week starts at the artifact, not the Text layer)
State
- Branch
main, level withoriginthrough7827d23+0b41b7d; this doc unit is local. - Commercial is settled and written down: freemium (free = whole app at a 921,600 px / 30 fps
profile, stream and recording), Pro $10/mo or $400 lifetime through Polar with no server at
all — the client calls the customer-portal API with the key, and channel binding rides in
conditions: {channel_id}. Signing is deferred until two subscribers; the Store account is now free; binaries live inllamacasty-releasespush-mirrored to public GitHub. - Support policy recorded: email, best effort, no SLA, refunds on request; no training service;
a repeated question becomes a training video on
@llamacasty.MARCOM.mdholds the loop. www.llamacasty.comresolves and 301s to the apex (CNAME + YunoHost domain + LE cert + nginx.dinclude). Recipe inMyMistakes.md.
Next action
Surge week, day 1: artifact shape. LlamaCasty.exe rename (three pack URIs:
MainWindow.xaml:14, OverlayHost.xaml:96, RenameRecordingDialog.xaml:5), scripts/publish.sh
(self-contained win-x64, no test artifacts), portable.txt via LayoutPathOverride. It ends when
the zip runs on a clean profile.
Then: OutputProfile gate + TASK 53 geometry tests → entitlement seam + system messages → licence UI and a real test broadcast. Day 5 if all four land: the visibility picker.
Landmines
- Nothing may gate a feature. The only paid delta is the output profile.
ShowBrandFlashstaysfalseand entitlement must never enable it. - The org access token never ships.
organization_idis public; the token is not. No claim page, no callback endpoint, no key database —conditionsdoes the binding. - The site publishes the model, never the numbers, and its CTA stays "Coming soon to the Microsoft Store" until the creator says the download exists.
- No self-updater, by policy:
winget upgrade+ a version banner.StorePackagingTestsasserts it. - Pre-existing: the full test suite hangs (WASAPI teardown). Per-class runs are the way.
- Not every hex is a theme colour —
BorderColorPalette/chat defaults are USER DATA; on-stream graphics come fromOutputPalette. A red settings control is still a bug.