feat(ux)+fix(rings): release counter #N in the wordmark; all shared-frame rings 4->8 (#11)
Roll-forward of today-slices 6fd1d9c onto the slice-8 base, two-loop hunk dropped. Release counter (per-build GUID read as noise; +1 per commit from git rev-list, baseline 241 -> #13, generated by GenerateBuildStamp; GUID demotes to startup.log). Tests pinned to Label/#N >= 13; wordmark display test asserts the Label. Flash fix (take 14 finding): consumer holds must never outlive depth x source period — 4 slots at high refresh lap ~27ms vs a <=50ms compositor read, so a recycled slot flashed its new frame over the lagged old one. All shared rings 4->8 (OBS/overlay precedent for ring discipline). Camera producer now rotates an 8-deep ring + Epoch instead of a fresh ~3.7MB array per device frame (110-220MB/s LOH churn); WebView2 capture reuses a canvas scratch + 8-deep output ring + a reused WriteableBitmap instead of two fresh arrays + a fresh bitmap per 10Hz tick. Paste cache stays identity-keyed (Epoch).
This commit is contained in:
+20
-3
@@ -29,13 +29,30 @@
|
||||
<BuildStampFile>$(IntermediateOutputPath)BuildStamp.g.cs</BuildStampFile>
|
||||
<BuildStampId>$([System.Guid]::NewGuid().ToString('N').Substring(0,8))</BuildStampId>
|
||||
<BuildStampTime>$([System.DateTime]::Now.ToString('yyyy-MM-dd HH:mm:ss'))</BuildStampTime>
|
||||
<!-- RELEASE COUNTER (creator ruling 2026-09-04): the UI shows a sequential number that
|
||||
ticks +1 per COMMIT, starting at 13 — a per-BUILD GUID changed on every launch and read
|
||||
as noise (rightly). Derived from git rev-list count (stable per commit, no bookkeeping).
|
||||
Baseline 241 = count at introduction, first display 13. Missing git or unparsed output
|
||||
falls back to the start (build never breaks). GUID + compile time stay in startup.log,
|
||||
where build-identity forensics actually live. -->
|
||||
<BuildNumberBaseline>241</BuildNumberBaseline>
|
||||
<BuildNumberStart>13</BuildNumberStart>
|
||||
</PropertyGroup>
|
||||
<Exec Command=""C:\Program Files\Git\cmd\git.exe" rev-list --count HEAD"
|
||||
WorkingDirectory="$(ProjectDir)" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="CommitCountRaw" />
|
||||
</Exec>
|
||||
<PropertyGroup>
|
||||
<CommitCount>$(CommitCountRaw.Trim())</CommitCount>
|
||||
<BuildNumber>$([MSBuild]::Add($(BuildNumberStart), $([MSBuild]::Subtract($(CommitCount), $(BuildNumberBaseline)))))</BuildNumber>
|
||||
<BuildNumber Condition="! $([System.Text.RegularExpressions.Regex]::IsMatch('$(BuildNumber)', '^[0-9]+$'))">$(BuildNumberStart)</BuildNumber>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<BuildStampLines Include="// <auto-generated> Per-build identity (ytLive.csproj GenerateBuildStamp)."/>
|
||||
<BuildStampLines Include="// Shown as the wordmark superscript and logged at startup: proof of which"/>
|
||||
<BuildStampLines Include="// binary produced a test recording (2026-09-04). Never edit by hand."/>
|
||||
<BuildStampLines Include="// Release/Label = the sequential UI stamp (+1 per commit, started at 13)."/>
|
||||
<BuildStampLines Include="// Id/BuiltLocal = per-build forensic identity, logged to startup.log only. Never edit by hand."/>
|
||||
<BuildStampLines Include="namespace ytLive.Helpers%3B"/>
|
||||
<BuildStampLines Include="public static class BuildStamp { public const string Id = "$(BuildStampId)"%3B public const string BuiltLocal = "$(BuildStampTime)"%3B }"/>
|
||||
<BuildStampLines Include="public static class BuildStamp { public const int Release = $(BuildNumber)%3B public const string Label = "#$(BuildNumber)"%3B public const string Id = "$(BuildStampId)"%3B public const string BuiltLocal = "$(BuildStampTime)"%3B }"/>
|
||||
</ItemGroup>
|
||||
<WriteLinesToFile File="$(BuildStampFile)" Lines="@(BuildStampLines)" Overwrite="true" WriteOnlyWhenDifferent="false" />
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user