Delivers the full Template Designer GUI Foundation epic (canvas dimensions,
text placement, properties panel, save/reopen XML templates) plus the
overdue high-volume render benchmark spike, all verified against the actual
built .exe per Sprint 1's DoD edit. The benchmark found the render path
misses the 100k-record/10-minute target by 5x-10x+ (code/BENCHMARK.md),
logged as a new high-priority backlog story and technical debt entry for
Sprint 3. Sprint Review confirmed all 5 stories against acceptance criteria;
Retrospective confirmed full follow-through on all four Sprint 1 actions
with no new kit-level changes needed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
EnvelopeRenderer.Cli only read DEBENU_LICENSE_KEY from the process
environment. That works for `dotnet run` (inherits the invoking shell's
env), but EnvelopeRenderer.Desktop launches the CLI as a child process,
which only inherits whatever environment a double-clicked .exe or Start
Menu shortcut already had — normally nothing. Every desktop-launched
render therefore failed at the Debenu save step (error 999) regardless
of a valid key existing on disk.
Add DebenuLicenseKeyResolver: env var first, then a key.txt walked up
from the CLI executable's own directory, matching the fallback the test
suite already used internally. Verified against the actual built
EnvelopeRenderer.Cli.exe with no environment variable set and a key.txt
next to it: exit 0, valid 392-page PDF. Logged in
logs/technical_debt_log.md as a real Definition-of-Done verification
gap from Sprint 1 (Batches 4-5 verified via an in-process harness, never
the built desktop .exe).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Implements the remaining committed Sprint 1 stories (Batches 3-5):
- CLI emits line-oriented PROGRESS events (startup/render/complete/failure)
on stdout, throttled to >=1/sec, alongside the existing stderr/exit-code
contract.
- New EnvelopeRenderer.Desktop WinForms app lets an operator pick template/
CSV/output paths and launch a render without blocking the UI.
- Desktop app streams and parses the CLI's progress events live, shows
active status, and displays a completion summary with elapsed time and
totals.
Verified end-to-end against the real 392-row sample CSV (real success and
real forced-failure runs); 106/106 tests passing. Sprint 1's goal is met
and its backlog is fully Done; state.md and backlog/sprints/sprint-1.md
are updated to hand off to Sprint Review.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>