a4e96f30414bfd193b4451e7fcd0fef0630a9b7c
1. Strengthen POS895 IsCut test: add RecordingEpsonPrinter.CallOrder so the test can assert feeds happen BEFORE the cut, plus a LineFeedBytes count assertion. The prior test could not detect the FeedAsync call being deleted from the IsCut branch (verified: test now fails when that line is removed, passes when restored). 2. CompositeDiscoveryService: distinguish "some children failed" from "every child failed". Per-child failures are still absorbed, but if every discovery service throws, the composite now rethrows instead of silently returning an empty list. Previously a total discovery failure (e.g. a routeless interface) looked like "discovery succeeded, found nothing" to PrinterDiscoveryBackgroundTask, which would expire and unregister every known printer after the retention window, discarding their queued jobs. Also corrected a doc comment that overstated Task.WhenAll's timeout guarantee. 3. Update CLAUDE.md to describe the POS895/POS896 work as shipped rather than future work: added the Inspectron.Epson.Tests and Pos895Test projects, a dotnet test command, SprtDiscoveryService/ CompositeDiscoveryService/POS895 in the architecture sections, the 0x20 printer-ID note, and the established SPRT hardware facts. Claude-Session: https://claude.ai/code/session_01E6N3P4nSZLtp4BC2LXVref
Description
No description provided
Languages
C#
84.4%
HTML
13.4%
JavaScript
0.9%
CSS
0.8%
Shell
0.5%