Files
LlamaCasty/HANDOFF.md
T
gramps 57ef9e7a5e 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.
2026-10-31 10:08:05 -07:00

2.3 KiB

HANDOFF — 2026-10-31 (commercial settled; the surge week starts at the artifact, not the Text layer)

State

  • Branch main, level with origin through 7827d23 + 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 in llamacasty-releases push-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.md holds the loop.
  • www.llamacasty.com resolves and 301s to the apex (CNAME + YunoHost domain + LE cert + nginx .d include). Recipe in MyMistakes.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. ShowBrandFlash stays false and entitlement must never enable it.
  • The org access token never ships. organization_id is public; the token is not. No claim page, no callback endpoint, no key database — conditions does 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. StorePackagingTests asserts 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 from OutputPalette. A red settings control is still a bug.