Commit Graph

  • 68fdacc12d docs(handoff): trim to the 40-line cap gramps 2026-11-01 07:33:00 -08:00
  • 724f940f5e docs(handoff): 40 lines gramps 2026-11-01 07:32:44 -08:00
  • 832955bbb8 docs(handoff): fit the 40-line cap gramps 2026-11-01 07:32:30 -08:00
  • 7dab7ded36 docs(handoff): HANDOFF under the 40-line cap for the surge plan gramps 2026-11-01 07:32:13 -08:00
  • b2e8b26b6e docs(tasks): the surge week, coding only — five days sized at 3-5 units each gramps 2026-11-01 07:31:52 -08:00
  • f189c5e328 build(steam): the SDK zip IS the only download — ContentBuilder included, links recorded gramps 2026-11-01 07:26:51 -08:00
  • 1fe84be64a build(steam): stage steam_api64.dll beside the exe — one file, not the whole SDK gramps 2026-11-01 07:23:29 -08:00
  • 27fc6fb507 feat(profile): the free budget is pixels and fps, enforced once — with a dev-only release hatch gramps 2026-11-01 07:11:49 -08:00
  • abfab25685 build: the exe is LlamaCasty.exe, and the publish script proves the artifact gramps 2026-11-01 07:01:50 -08:00
  • 8f79b20a18 docs(distribution): Steam is the only channel — the zip, winget and the Store are dead gramps 2026-10-31 11:05:53 -07:00
  • 57ef9e7a5e docs(commercial): the claim page was never needed, signing waits for revenue, and support is a filter gramps 2026-10-31 10:08:05 -07:00
  • 0b41b7db67 docs(mistakes): the www → apex recipe — CNAME, the silently self-signed cert, and the heredoc that ate $request_uri gramps 2026-10-31 09:05:16 -07:00
  • 7827d239e2 docs(commercial): one source of truth for the money — prices, entitlement, channels gramps 2026-10-31 08:32:25 -07:00
  • 90d5140906 docs(mistakes): the llamacasty.com deploy recipe, recorded gramps 2026-10-30 16:49:33 -07:00
  • c72b61b61e docs(decisions): the site publishes the model, not the terms gramps 2026-10-30 16:16:31 -07:00
  • 54de9c3dfb docs(decisions): Store route re-opened via an Individual developer account gramps 2026-10-30 16:15:28 -07:00
  • 0498f7e130 legal: proprietary EULA + privacy policy; GPL terms retired gramps 2026-10-30 16:10:38 -07:00
  • 7829610cad docs(mistakes): record the record-struct zero-init trap gramps 2026-10-30 15:24:33 -07:00
  • c03acd0aa0 fix(scoreboard): the defaults were never applied — a record struct zero-initialises gramps 2026-10-30 15:24:14 -07:00
  • 28525c90aa feat(scoreboard): scroll speed is a property (20-400 px/s, persisted) gramps 2026-10-30 15:19:28 -07:00
  • 460b36204d feat(scoreboard): it ticks — the marquee is the design, not an option gramps 2026-10-30 15:17:55 -07:00
  • 882b8551d9 fix(scoreboard): the strip and the social bar now really share the frame gramps 2026-10-30 15:11:35 -07:00
  • e27e79962c fix(scoreboard): box follows the rendered strip, opacity proven, plate always settable, dev override gramps 2026-10-30 15:09:19 -07:00
  • 8caee21b9a fix(scoreboard): the strip finally reaches the preview, and dev labels are orange gramps 2026-10-30 15:05:33 -07:00
  • 9405c54750 feat(scoreboard): dev mode can configure the board without signing in gramps 2026-10-30 15:01:32 -07:00
  • e6abc13461 feat(scoreboard): a DEBUG-only "Simulate" switch, so the strip is provable in the preview gramps 2026-10-30 14:58:56 -07:00
  • ea1017776d feat(scoreboard): the properties are inert until the creator is signed in gramps 2026-10-30 14:54:52 -07:00
  • 38c2ad6555 feat(scoreboard): a master on/off switch that also stops the polling gramps 2026-10-30 14:53:58 -07:00
  • 85a4a8a7d3 feat(scoreboard): the layer is available to ALL scenes (YT_ACTIVITY_TICKER) gramps 2026-10-30 14:50:20 -07:00
  • 96d528b3ac fix(scoreboard): clear the two nullable warnings gramps 2026-10-30 14:44:56 -07:00
  • d4a4b1c80e docs(handoff): scoreboard units 1-10 landed; providers + goal inputs remain gramps 2026-10-30 14:43:20 -07:00
  • b205ce9ba9 feat(scoreboard): unit 10 — the polling policy (quiet by default) gramps 2026-10-30 14:43:08 -07:00
  • 9a6099af7c feat(scoreboard): unit 9 — the Analytics scope, requested incrementally gramps 2026-10-30 14:42:40 -07:00
  • 7048bd8bff fix(scoreboard): the chat feed actually reaches the tallies gramps 2026-10-30 14:41:47 -07:00
  • 534f56a7c4 feat(scoreboard): units 7+8 — the layer's properties panel (facts, colours, plate, size) gramps 2026-10-30 14:41:31 -07:00
  • deb74529a6 feat(scoreboard): unit 6 — it is a LAYER (source type, strip geometry, resolver, session hook) gramps 2026-10-30 14:40:31 -07:00
  • 41b0cd6e98 feat(scoreboard): unit 5 — tile selection and the cached strip presenter gramps 2026-10-30 14:38:59 -07:00
  • fbcccea0f7 feat(scoreboard): unit 4 — the strip renderer (plate, text colour, fit, wrap) gramps 2026-10-30 14:37:34 -07:00
  • 359e58a4c2 feat(scoreboard): unit 3 — edge coupling and line fitting, both pure gramps 2026-10-30 14:36:56 -07:00
  • 6b6ccd7b0a feat(scoreboard): unit 2 — session lifecycle (start clears, End freezes) gramps 2026-10-30 14:36:13 -07:00
  • 3ed8386303 feat(scoreboard): unit 1 — session tallies, with the gift double-count guard gramps 2026-10-30 14:35:42 -07:00
  • e92ce4bb63 fix(dock): the master ladder moves when no session is running gramps 2026-10-30 14:01:29 -07:00
  • ec293e54b0 feat(dock): TRAX becomes a background level, not a channel strip gramps 2026-10-30 13:46:05 -07:00
  • 93dc6592ac docs(dock): the desktop ladder says it includes TRAX gramps 2026-10-30 13:34:27 -07:00
  • 8d23502220 fix(trax): the fader now actually changes the level — and the meter follows it gramps 2026-10-30 13:32:24 -07:00
  • 2607ecf210 fix(dock): TRAX ladder gets the mic's ballistics (and a 33 Hz beat) gramps 2026-10-30 13:28:32 -07:00
  • 839bc991a2 fix(dock): meters beat on their own 20 Hz clock, and TRAX silence is diagnosed gramps 2026-10-30 13:24:29 -07:00
  • a54149bd7c feat(dock): TRAX gets its own ladder — measured at the player's output gramps 2026-10-30 13:22:13 -07:00
  • 8aa483f933 docs(handoff): audio dock shipped, awaiting an eyes-and-hands pass gramps 2026-10-30 13:20:19 -07:00
  • 16689c0a80 feat(dock): the dock is now the only audio surface (unit 10, final) gramps 2026-10-30 13:19:58 -07:00
  • 5889d71db6 feat(dock): master strip + MONO output (the accessibility switch) gramps 2026-10-30 13:18:23 -07:00
  • a6f63f56f3 feat(dock): the LIP-SYNC bay — offset, readout, zero detent gramps 2026-10-30 13:16:19 -07:00
  • 7339df5fcd feat(dock): the TRAX bay — track, play/pause, level, duck badge gramps 2026-10-30 13:14:53 -07:00
  • a1d8e761ea feat(dock): the GAME bay — dB fader, measured ladder, mute, real duck badge gramps 2026-10-30 13:12:10 -07:00
  • 3524ede480 feat(dock): the MIC bay — dB fader, measured ladder, mute, picker gramps 2026-10-30 12:46:57 -07:00
  • 7d8021ca09 fix(dock): master strip on top, against the preview gramps 2026-10-30 12:45:12 -07:00
  • 5552bf97a1 fix(dock): inside the work area, bottom edge aligned with the layers panel gramps 2026-10-30 12:42:49 -07:00
  • a7d1afc70b fix(dock): spans the preview column and loses 20px gramps 2026-10-30 12:39:36 -07:00
  • 1a9e8b8d36 feat(audio dock): the shell — 168px, auto-collapsing, replacing the empty bottom bar gramps 2026-10-30 12:37:17 -07:00
  • 0f62e55474 feat(audio): the segment meter control (unit 3 of the dock) gramps 2026-10-30 12:36:05 -07:00
  • 575caa7bc4 feat(audio): the meter knows which side a signal is on (unit 2 of the dock) gramps 2026-10-30 12:33:40 -07:00
  • afe21682c2 feat(audio): the dock's dB scale, and the mono fold primitive gramps 2026-10-30 12:32:07 -07:00
  • 17249229c8 feat(top bar): EDIT moves beside the gear; the gear wears the app's orange gramps 2026-10-30 11:18:36 -07:00
  • 0f8647790d fix(top bar): a signed-out ON-AIR press starts sign-in instead of disabling the button gramps 2026-10-30 11:17:11 -07:00
  • fbeb04385b feat(top bar): EDIT decides live vs test on the primary button — the TEST button is gone gramps 2026-10-30 11:14:33 -07:00
  • 9b08c3af4f fix(ui): no space inside the wordmark — adjacent Runs again gramps 2026-10-30 11:09:16 -07:00
  • 318871033f feat(ui): the capture context menu is always available (Ctrl+right-click); wordmark "ty" is YouTube red gramps 2026-10-30 11:07:51 -07:00
  • cb4f8ec758 fix(ui): REC / ON-AIR labels are white in every state gramps 2026-10-30 10:46:51 -07:00
  • feef763035 fix(ui): EDIT label is white in both states gramps 2026-10-30 10:45:24 -07:00
  • d25dbf58dc design: white ink on any accent fill (on-accent token) gramps 2026-10-30 10:34:19 -07:00
  • 568586c541 fix(xaml): the app refused to launch — RecordPillToggle was defined before SegmentToggle gramps 2026-10-30 10:29:22 -07:00
  • 4841c27514 feat(ui): the creator's six corrections gramps 2026-10-30 10:27:11 -07:00
  • df0118ac52 docs(handoff): design conversion complete; spacing is a layout pass gramps 2026-10-30 10:02:32 -07:00
  • e89cc3682a test(socials): a real preview test — and the Cancel bug it immediately found gramps 2026-10-30 10:02:06 -07:00
  • 0822552830 design: the theme's 4px corners come from the radius token gramps 2026-10-30 09:59:12 -07:00
  • ec01a7deb8 design: the last VM-side colours come from tokens (ThemeBrush) gramps 2026-10-30 09:58:52 -07:00
  • 7adff685c0 design: the on-stream graphics join the standard (OutputPalette) gramps 2026-10-30 09:30:56 -07:00
  • c4642f1e99 design: every window inherits Inter (implicit Window style) gramps 2026-10-30 09:18:50 -07:00
  • 51d9dd09c7 fix(socials): the bar disappeared from the preview when the plate was off gramps 2026-10-30 09:06:53 -07:00
  • c1212644b0 fix(socials): live preview of the bar appearance + the crash on dragging a slider gramps 2026-10-30 08:57:09 -07:00
  • c82636e1a9 feat(socials): bar appearance — text colour, background plate, opacity, text shadow gramps 2026-10-30 08:47:50 -07:00
  • 9528128ca7 feat(settings): brand-logo thumbnail with a hover enlargement gramps 2026-10-30 08:39:42 -07:00
  • 7a49b38cae docs(handoff): every XAML surface tokenised; VM state colours are the last unit gramps 2026-10-30 08:30:45 -07:00
  • c885bbd782 design: the code-set state colours now agree with the standard gramps 2026-10-30 08:30:33 -07:00
  • 8502c1d194 design: app settings + dialogs to tokens (surface 5 of the sweep) gramps 2026-10-30 08:29:28 -07:00
  • 8415bb5f37 design: preview pane to tokens (surface 4), and one palette list instead of two gramps 2026-10-30 08:28:21 -07:00
  • 66b85d3fcc docs(handoff): preview pane next, with the colour-picker trap recorded gramps 2026-10-30 08:03:28 -07:00
  • 3edb0d10be design: three tokens the sweep needed — positive, scrim-dark, scrim-dark-strong gramps 2026-10-30 08:03:18 -07:00
  • 2dbc35b285 design: left panel to tokens (surface 3 of the sweep) — 101 colours gone gramps 2026-10-30 08:00:43 -07:00
  • 8a2cb92d8c docs(handoff): shell converted, left panel is next gramps 2026-10-30 07:56:13 -07:00
  • 0275e30103 design: shell to tokens — top bar, window, scene strip (surface 2 of the sweep) gramps 2026-10-30 07:56:02 -07:00
  • ffdf3b6fc9 design: wire the sans family into the window; fonts ship as explicit Resource items gramps 2026-10-30 07:53:37 -07:00
  • 1defb71568 docs(handoff): design standard landed, token sweep in flight gramps 2026-10-30 07:47:14 -07:00
  • 4ef84f2a97 design: convert Themes/Controls.xaml to tokens (surface 1 of the sweep) gramps 2026-10-30 07:47:00 -07:00
  • 84c335a929 design: bundle Inter + JetBrains Mono (OFL-1.1) as the standard typefaces gramps 2026-10-30 07:45:19 -07:00
  • f2bf577f34 design: Themes/Tokens.xaml — one place a raw value may live, guarded by DESIGN.md gramps 2026-10-30 07:43:17 -07:00
  • 565b8dbd6f docs(design): DESIGN.md becomes the visual standard (tokens merged, controls rejected) gramps 2026-10-30 07:41:43 -07:00
  • 5a102a4a37 docs: decisions log, queue trim, HANDOFF rewrite — the map stops being a treadmill gramps 2026-10-29 11:10:51 -07:00
  • c9ac348976 docs(ai): ai.md becomes a router; invariants move to AGENTS.md; budgets gated gramps 2026-10-29 11:08:07 -07:00
  • a311c8feb1 docs(ai): partition ai.md into five subsystem files (verbatim moves) gramps 2026-10-29 11:05:53 -07:00