Append-only log of known technical debt. Maintained by .claude/agents/qa-tech-debt.md. Do not delete paid-down entries — mark them resolved instead.
| Date | Item | Type (unintentional/unavoidable/deliberate) | Impact (“interest rate”) | Status | Resolution |
|---|---|---|---|---|---|
| 2026-09-08 | EnvelopeRenderer.Cli exits 64 (“render not implemented”) for any argument-valid run, since the Debenu render engine isn't wired in yet. Self-documenting and expected to disappear once “Render text-only PDFs through Debenu Quick PDF” (Sprint 1 Batch 2) lands and exit 0 becomes reachable. |
Deliberate | Low | Paid Down | RenderNotImplemented branch removed from Program.cs; exit 0 is now reachable and exit 1 covers all template/CSV/render failures (see code/CLI_CONTRACT.md). |
| 2026-09-08 | DebenuPdfRenderer always embeds TrueType fonts fully (AddTrueTypeFont(..., Embed: 1)), cached once per unique font name per document. Fine at today's scale (one sample render: ~1.3 MB for 392 pages, one font) but full embedding could add up if a template ever uses many distinct fonts/styles at very high page counts, working against the sub-2GB PDF constraint. |
Deliberate | Low | Open | Revisit if the “Time-box the first high-volume benchmark” story (not in this sprint) shows file size becoming an issue; Debenu also exposes AddSubsettedFont as a smaller-footprint alternative if needed. |
| 2026-09-08 | EnvelopeRenderer.Desktop's Render button re-enables as soon as the CLI process is confirmed started (CliProcessLauncher.LaunchAsync returning), not once it finishes rendering — this story (Sprint 1 Batch 4) intentionally does not track render completion. An operator can click Render again (e.g. against the same output path) while a prior render is still in progress, since nothing yet observes the child process's lifetime or exit code. |
Unavoidable (scope boundary of this story) | Low | Resolved | Sprint 1 Batch 5 (“Show render progress and completion summary”) replaced CliProcessLauncher.LaunchAsync/Launch with RunAsync/Run, which stream the CLI's redirected stdout/stderr, wait for the process to actually exit, and return exit code + final progress event. MainForm.OnRenderClick now only re-enables the Render button in the finally block after that awaited call completes, not when the process starts — verified with a real launch against the sample CSV (button stayed disabled for the full render, both success and forced-failure runs). |
Powered by TurnKey Linux.