Commit Graph

  • 69f08a478e feat(topbar): three fixed slots — every state changes inside its own slot main gramps 2026-11-13 12:20:11 -08:00
  • ba60f9ab3d feat(topbar): three activities, always visible — build, stream, record gramps 2026-11-13 11:30:57 -08:00
  • f4caea09ad ci(verify): judge the suite on its results, not on a summary the host may never print gramps 2026-11-13 11:30:56 -08:00
  • 70b5b01920 assets(starting): the creator's replacement Starting-screen art gramps 2026-11-13 09:42:45 -08:00
  • bd61e8df2a fix(lifecycle): no dialogs while the app is closing gramps 2026-11-13 09:42:44 -08:00
  • 5bd750eaf5 fix(topbar): announce the output stage when recording starts or stops gramps 2026-11-13 07:47:36 -08:00
  • 1ce6b9c1b8 fix(lifecycle): end the session before disposing it on close gramps 2026-11-13 07:47:35 -08:00
  • 70fcf89f9e feat(topbar): the recording lives in the pill — green pulse, REC clock, Stop Recording gramps 2026-11-12 16:52:36 -08:00
  • caf5d6130d feat(topbar): the output stage's three states, and keyboard entry into the bar gramps 2026-11-12 16:35:16 -08:00
  • 6b4aa99863 feat(topbar): the segmented mode switcher, to the mock gramps 2026-11-12 16:20:25 -08:00
  • b92569a8c7 feat(topbar): Output:, no chevron, and Esc returns gramps 2026-11-12 16:14:48 -08:00
  • 838ba17eaf fix(topbar): the bar carries no action button gramps 2026-11-12 16:00:50 -08:00
  • 16abb1ddc1 fix(topbar): the output line REPLACES the segment, it does not sit beside it gramps 2026-11-12 15:48:34 -08:00
  • 4bc41c488c feat(topbar): the action follows the armed output; Test is an explicit ask again gramps 2026-11-12 15:44:15 -08:00
  • a5a10fb0b0 feat(topbar): the output stage — Output [YouTube] [Local MP4] One output at a time gramps 2026-11-12 15:38:35 -08:00
  • 6c5cd2f66c feat(topbar): glyphs on the world segment — layout, record dot, and a padlock gramps 2026-11-12 15:32:12 -08:00
  • a5dc2f494c feat(topbar): one decision — [ Build Scenes ][ Record / Go Live ] gramps 2026-11-12 15:05:29 -08:00
  • d46e84562f feat(settings): editing during a session is the creator's call (default: allowed) gramps 2026-11-12 14:45:58 -08:00
  • aae6104666 docs(ui): record the open question about layer visibility while a scene is locked gramps 2026-11-12 14:24:51 -08:00
  • cc75212997 fix(audio): a sync offset is saved the moment it changes gramps 2026-11-12 14:21:48 -08:00
  • 1eb04597d1 fix(audio): both sync offsets ship at zero gramps 2026-11-12 14:16:20 -08:00
  • c1b3868913 docs(audio): record the measured lip-sync answer and the floor gramps 2026-11-12 14:11:30 -08:00
  • af6210082c fix(tools): a negative lip-sync offset shortens the audio track by design gramps 2026-11-12 14:09:55 -08:00
  • 1abc86358a feat(tools): avsync pairs clap transients when the mouth correlation is weak gramps 2026-11-12 14:07:09 -08:00
  • 514fb8480d fix(tools): avsync says "unmeasurable" instead of trusting a 0.08 correlation gramps 2026-11-12 14:03:45 -08:00
  • bb3bc12784 docs(handoff): bitrate closed, audio drift closed, one sync number left gramps 2026-11-12 13:57:57 -08:00
  • b216cbc56f tools: scripts/avsync.py measures A/V sync from the file, not from an ear gramps 2026-11-12 13:57:29 -08:00
  • e654a16b60 fix(history): file each session under the real encoder, not "unknown" gramps 2026-11-12 13:57:03 -08:00
  • 5ae52808bb feat(audio): the mic delay gets a slider, and the log states the applied value gramps 2026-11-12 12:37:03 -08:00
  • 751d9b199c fix(audio): the track starts with the session, not with the first write gramps 2026-11-12 12:27:34 -08:00
  • 102cb96b28 fix(audio): only count audio that actually reached the encoder gramps 2026-11-12 11:39:20 -08:00
  • 47f409f0e4 fix(audio): drive the mix from the clock — the audio track was 2.1% longer than the show gramps 2026-11-12 11:28:28 -08:00
  • 7f89534309 feat(audio): microphone-only sync delay, on by default at 175 ms gramps 2026-11-12 11:15:50 -08:00
  • f6fdab3bf2 docs(task-40): App Settings is the SettingsDrawer, not the OverlayHost panel gramps 2026-11-12 08:30:15 -08:00
  • ada8d2457d docs(tasks): mark the 8-Mbps ladder and flat bitrate floor superseded gramps 2026-11-12 08:29:57 -08:00
  • 7acf044e4a docs(handoff): bitrate correction landed — four units, next is the creator's live check gramps 2026-11-12 08:24:27 -08:00
  • b0f8263414 feat(quality): learn the starting rate from real sessions, on the creator's permission gramps 2026-11-12 08:24:12 -08:00
  • f2cab5ca0f feat(quality): the creator sets the rate — per tier, persisted, clamped only at YouTube's floor gramps 2026-11-12 08:11:13 -08:00
  • 93719a286d feat(step-down): the bitrate floor is the tier's YouTube minimum gramps 2026-11-12 08:05:55 -08:00
  • 1708667602 feat(quality): retarget the ladder — 1080p60@12, 1080p30@10, 720p@6 gramps 2026-11-12 08:01:01 -08:00
  • 700c7a8c23 fix(encoder): ask for CBR — the capped-VBR triad was never a constant rate gramps 2026-11-12 07:57:36 -08:00
  • 37ef74eb8d docs(handoff): bitrate diagnosis, four-unit plan, unit 1 landed gramps 2026-11-12 07:51:30 -08:00
  • 1e3a4f7fe0 feat(entitlement): pre-release switch so Release builds can test 60 fps gramps 2026-11-12 07:50:59 -08:00
  • 9c0c40c688 feat(settings): make slide-out alerts persist until dismissed gramps 2026-11-11 10:19:20 -08:00
  • ff5c005bd9 feat(settings): position slide-out notifications gramps 2026-11-11 10:10:21 -08:00
  • 2f5d0c1759 feat(settings): position slide-out notifications gramps 2026-11-11 10:06:54 -08:00
  • 9621db29c9 fix(stream): keep recovery notifications and stop on the dispatcher gramps 2026-11-11 09:57:26 -08:00
  • 24077e58cf fix(stepdown): restart the audio pipe around encoder changes gramps 2026-11-11 09:52:27 -08:00
  • 2c5a3d8c11 docs(70): queue the Live Window App overlay layer gramps 2026-11-11 07:42:37 -08:00
  • 4e5b4e3999 docs(69): queue the chat sample preview toggle gramps 2026-11-11 07:37:38 -08:00
  • b265d42fb4 docs(handoff): record pushed main state gramps 2026-11-11 07:31:19 -08:00
  • 1d35a7400f docs(37): close defaults/current split and advance the queue gramps 2026-11-10 18:10:35 -08:00
  • e6c6913994 feat(37): expose the staged-scene factory reset gramps 2026-11-10 18:09:16 -08:00
  • 41064bdd13 feat(37): expose the all-scenes factory reset gramps 2026-11-10 18:05:35 -08:00
  • b8eb2b4451 feat(37): restore all scenes to factory defaults gramps 2026-11-10 17:59:28 -08:00
  • ff1c1965e0 fix(37): preserve camera choice when restoring default layouts gramps 2026-11-10 17:56:24 -08:00
  • c4da06b56b feat(37): reset one scene to its factory snapshot gramps 2026-11-10 17:52:20 -08:00
  • 1c6fc3223d feat(37): restore the default layout when the build ID changes gramps 2026-11-10 17:48:43 -08:00
  • 37791086ae feat(37): keep a default layout snapshot beside the current layout gramps 2026-11-10 17:45:39 -08:00
  • b093609ad3 docs(14): close mic gain slice after creator test gramps 2026-11-10 17:40:44 -08:00
  • de787e0dad docs(65): replay clips complete; queue moves to 66 gramps 2026-11-10 12:55:06 -08:00
  • 5fcfa545e5 feat(65): the replay layer plays — once in Live, looping everywhere else gramps 2026-11-10 12:54:54 -08:00
  • a5c2061b55 feat(65): the replay layer exists in the model; the exclusion problem is solved by the guard gramps 2026-11-10 12:48:41 -08:00
  • 28657918f9 feat(65): F10 saves a clip; the gear drawer owns the three settings gramps 2026-11-10 12:41:39 -08:00
  • f7d3d1301e feat(65): clips on disk — write one, keep 3/4/5, delete the oldest gramps 2026-11-10 12:35:38 -08:00
  • 5066d81aab feat(65): the clip mux — a third output on the same ffmpeg, drained off the frame path gramps 2026-11-10 12:25:19 -08:00
  • b93744ec7f feat(65): the replay ring — encoded fragments in RAM, capped by bytes gramps 2026-11-10 11:59:02 -08:00
  • 1a6a549e17 feat(55): stop leaving disk debts — temp clips and a low-disk guard gramps 2026-11-10 11:55:42 -08:00
  • c257de1516 feat(35): scenes remember the room — BRB mutes the mic on entry gramps 2026-11-10 11:51:21 -08:00
  • 80ccdc9cb8 docs(readme): new hero screenshot (1400×862, 289 KB) gramps 2026-11-09 14:32:02 -08:00
  • ec6a5ca466 docs(queue): six veggies, then the new work; scheduling and publishing retired gramps 2026-11-09 14:27:07 -08:00
  • 42228c7aab docs(handoff): 40 lines gramps 2026-11-09 13:21:14 -08:00
  • 4b3d3f2645 docs(handoff): fit the 40-line budget gramps 2026-11-09 13:05:59 -08:00
  • 4855d5cf8d docs(handoff): TASK 33 complete; queue starts at 34 gramps 2026-11-09 13:05:53 -08:00
  • 0fa3006da7 feat(33): shed our own capture cost first; the task is done gramps 2026-11-09 13:05:44 -08:00
  • 134103c08b feat(33): the step-down acts — one encoder relaunch, one toast, same URL gramps 2026-11-09 12:50:53 -08:00
  • b84802e657 docs(handoff): trim to budget; 588 tests gramps 2026-11-09 11:54:15 -08:00
  • b39439abdc docs: the vertical take is clean — 29.8 distinct webcam images/s gramps 2026-11-09 11:53:58 -08:00
  • 555ff5c0ac feat(33): structured pump stats + the session planner and its plain-words copy gramps 2026-11-09 10:06:36 -08:00
  • bc62bd81ec feat(33): StepDownPolicy — two ladders, one budget, recovery behind a flag gramps 2026-11-09 09:30:28 -08:00
  • 92d875c343 tools(stats): mine sessions from the logs, split by sink gramps 2026-11-09 09:04:04 -08:00
  • ed32151136 docs(33): cause-classified step-down, and a toast that owns the mistake gramps 2026-11-09 08:51:31 -08:00
  • e53f9974a5 docs(tasks): TASK 32 is complete — Back on air shipped; the queue starts at 33 gramps 2026-11-08 12:22:35 -08:00
  • 4a43b3e229 docs(videos): fill the gaps — chroma, video layers, live edit, hotkeys, resilience gramps 2026-11-06 15:59:12 -08:00
  • a8f27db4c2 docs(videos): the running list — capture window/desktop, zoom gesture, How to Blur as its own video gramps 2026-11-06 15:57:10 -08:00
  • b4e952fda9 fix(go-live): the Start Stream dialog re-reads Stream Info at open gramps 2026-11-06 12:56:05 -08:00
  • bef818f4a1 art(starting): new Starting background — cleaner chat panels gramps 2026-11-06 12:40:27 -08:00
  • dbcb69278f fix(audio): a DEBUG build never shares the pipe name with Release gramps 2026-11-06 12:30:48 -08:00
  • 30824c6d6e docs(handoff): byte-compare art seed, not a version stamp gramps 2026-11-06 12:21:35 -08:00
  • 70e2c48136 fix(art): re-seed a bundled background when the stored bytes differ gramps 2026-11-06 12:21:24 -08:00
  • 3db964e5cf docs(handoff): Starting art vintage 4, the AllBackgrounds trap, site scenes shot gramps 2026-11-06 12:06:13 -08:00
  • a6f15a4bc3 art(starting): the corrected onboarding screen, and a heal that actually heals gramps 2026-11-06 12:04:06 -08:00
  • f7e1b76cdd art(starting): new Starting background; the old one is archived, not lost gramps 2026-11-06 11:48:13 -08:00
  • 0f08fd7ade fix(start): a second instance can no longer kill the app on Go Live gramps 2026-11-06 08:41:16 -08:00
  • 3261293d57 fix(ui): the gear and socials drawers retract on an outside click gramps 2026-11-05 17:14:40 -08:00
  • a1d861608f feat(ypp): the three eligibility bars, with dated thresholds (TASK 39·2) gramps 2026-11-05 16:41:09 -08:00
  • 0fade9702b feat(ypp): session report derived from YouTube — no ledger, money off by default (TASK 3·20) gramps 2026-11-05 15:38:32 -08:00
  • 27f655c8de copy(price): the launch price ends on an event we control, not on Valve's queue gramps 2026-11-05 15:13:20 -08:00
  • 9611cee199 docs(steam): record the real onboarding state — a wait on Valve, not a task gramps 2026-11-05 15:08:53 -08:00
  • dd51f7842a feat(stream): one-click Back on air — a new broadcast, honestly labelled (TASK 32·3) gramps 2026-11-05 14:59:00 -08:00