-
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