Files
AppKit/coverage.runsettings
T
james.maesandCodex 7f70c31517 feat(logging): preserve structured templates, fields, and scopes
Adapt existing IActivityLog sinks to standard ILogger without adding interface
requirements. Store original templates, rendered messages, typed JSON scalar
fields, event identity and async scopes. Preserve full exception text, daily
retention, failure containment, and thread-safe writes.

Migrate update events, framework crash nets and samples to source-generated
logging. Pin Microsoft.Extensions.Logging.Abstractions 10.0.12 (MIT) rather
than implementing template parsing. Advance the unreleased minor to 0.2.0
and document legacy API compatibility and explicit scalar/JSON value policy.

Validation: 146 unit tests, 12 sample UI tests, 100% core/updates coverage,
zero-warning build, formatting and hooks passed. Dependency scan reported
no known vulnerabilities. Starter migration and public rollout remain #5.

Refs: #5, #8
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-10 13:07:45 -05:00

22 lines
1.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Coverage contract for the 100% gate: every hand-written line in the framework-free
packages counts. Excluded, with intent:
- GeneratedCodeAttribute: source-generated regexes, JSON contexts and log methods.
- ExcludeFromCodeCoverageAttribute: thin pass-throughs to Velopack that need an
installed app or the network (each carries a justification at its declaration).
The WinUI and WPF packages are not measured: their views need a live compositor and
are exercised by the sample apps' UI smoke tests. Their logic lives here instead. -->
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="XPlat Code Coverage">
<Configuration>
<Format>cobertura</Format>
<Include>[KofTwentyTwo.AppKit]*,[KofTwentyTwo.AppKit.Updates]*</Include>
<ExcludeByAttribute>GeneratedCodeAttribute,ExcludeFromCodeCoverageAttribute</ExcludeByAttribute>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>