Skip to content

FLT-147 build report

Result

Implemented per-harness spend-ledger pool telemetry for Cedric (Codex), Jenny (agy/Gemini), and Gronktayvius (Grok), with honest UNKNOWN whenever a real pool capacity is absent. Scanner-written provider observations are freshly timestamped with stale=false.

Real signals wired

  • Cedric / Codex: codex exec terminal output parser for tokens used: N; concurrency-safe JSONL token ledger; codex-spend --output-file <path> parses and appends; harness-spend --harness codex --tokens N provides an explicit append path. A configured codexPoolTokens and codexPoolWindowHours derive GREEN/YELLOW/RED/BLACKOUT from real accrued tokens. With no real capacity configured, codex.tier is freshly stamped UNKNOWN.
  • Jenny / agy: retained the existing fleet-global, atomic agy-admit ledger and AgyPolicy.ComputePool authority. The Gemini x20 pool continues to derive from its configured 5-hour/weekly capacities and actual admitted weighted spend. No second emitted-token append was added because it would double-charge the admission reservation. No agy CLI per-run emitted token-count format was evidenced in the repository, so no parser was fabricated.
  • Gronktayvius / Grok: concurrency-safe JSONL token ledger plus harness-spend --harness grok --tokens N append path. A configured grokPoolTokens and grokPoolWindowHours derive GREEN/YELLOW/RED from real accrued tokens. The legacy invocation count remains advisory in state. No stable Grok CLI per-run emitted token-count format or real SuperGrok token capacity was evidenced, so default grok.tier is freshly stamped UNKNOWN; no count parser or capacity was fabricated.
  • Provider hook context now exposes UNKNOWN and includes Grok, preventing an unmetered sibling pool from being silently presented as available.

Review gate

The full house council aggregate did not return and was terminated after an extended wait. Per the council-code-review fallback, Claude Jones-Gaffney reviewed the diff twice. The first pass found concurrency, double-booking, BLACKOUT, consumer-visibility, and compatibility issues; they were fixed. The second pass confirmed those fixes and found the missing required --tokens validation plus regression-test gaps; those were fixed before the final gates.

Exact gate output

dotnet build -warnaserror

  Determining projects to restore...
  All projects are up-to-date for restore.
C:\Program Files\dotnet\sdk\10.0.400-preview.0.26322.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Cli\UsageGovernor.Cli.csproj]
C:\Program Files\dotnet\sdk\10.0.400-preview.0.26322.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\Users\fives\source\repos\ug-flt147\tests\UsageGovernor.Tests\UsageGovernor.Tests.csproj]
C:\Program Files\dotnet\sdk\10.0.400-preview.0.26322.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Core\UsageGovernor.Core.csproj]
  UsageGovernor.Core -> C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Core\bin\Debug\net10.0\UsageGovernor.Core.dll
  UsageGovernor.Cli -> C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Cli\bin\Debug\net10.0\UsageGovernor.dll
  UsageGovernor.Tests -> C:\Users\fives\source\repos\ug-flt147\tests\UsageGovernor.Tests\bin\Debug\net10.0\UsageGovernor.Tests.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:04.64

dotnet test

  Determining projects to restore...
  All projects are up-to-date for restore.
C:\Program Files\dotnet\sdk\10.0.400-preview.0.26322.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\Users\fives\source\repos\ug-flt147\tests\UsageGovernor.Tests\UsageGovernor.Tests.csproj]
C:\Program Files\dotnet\sdk\10.0.400-preview.0.26322.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(383,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Core\UsageGovernor.Core.csproj]
  UsageGovernor.Core -> C:\Users\fives\source\repos\ug-flt147\src\UsageGovernor.Core\bin\Debug\net10.0\UsageGovernor.Core.dll
  UsageGovernor.Tests -> C:\Users\fives\source\repos\ug-flt147\tests\UsageGovernor.Tests\bin\Debug\net10.0\UsageGovernor.Tests.dll
Test run for C:\Users\fives\source\repos\ug-flt147\tests\UsageGovernor.Tests\bin\Debug\net10.0\UsageGovernor.Tests.dll (.NETCoreApp,Version=v10.0)
A total of 1 test files matched the specified pattern.

Passed!  - Failed:     0, Passed:   541, Skipped:     0, Total:   541, Duration: 20 s - UsageGovernor.Tests.dll (net10.0)