You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Child F13 of epic #136 owns the QuickFiler breadcrumb drop-down surface and the WebView2 host
(15 compiled files, ~3,111 lines under QuickFiler/Viewers/). The file set has an unusual shape:
Eight non-exempt coordinator files already measure 92.9%-100% line coverage, so the remaining
work for them is branch coverage against the 75% floor plus explicit error-path and
cancellation-path pinning - not new happy-path tests.
Three WebView2 files (WebView2BreadcrumbHost.cs, WebView2Messenger.cs, WebView2CoreInitializer.cs) carry class-level [ExcludeFromCodeCoverage] and are therefore
absent from instrumentation entirely. They are unmeasured, not covered, and will start near zero
once their exemptions are reconsidered. This is where the genuine coverage work is concentrated.
BreadcrumbPopupUiOperations.cs carries method-level [ExcludeFromCodeCoverage] attributes on
individual UI-bound members rather than a single file-level attribute.
Four files are interface-only declarations with no executable IL and belong in F1's interface-only / not-measured bucket.
Proposed Behavior
Raise every testable file in the F13 assignment to at least 80% line and 75% branch coverage,
verified with F1's per-file harness, and either remove the [ExcludeFromCodeCoverage] attributes
with the code genuinely covered or retain only a file-specific irreducible remainder argued against
the three exemption grounds in the epic's Shared Design section 1. No observable behavior change to
QuickFiler flows.
Acceptance Criteria
Every testable file in scope reaches >= 80% line and >= 75% branch coverage, measured with
F1's harness and recorded under <FEATURE>/evidence/qa-gates/.
For files already above the line floor, line coverage is retained or improved and the branch
floor is met.
[ExcludeFromCodeCoverage] attributes in scope are removed with the code covered, or retained
only where a file-specific irreducible-remainder rationale is recorded and F1's ledger
ratifies it.
The four interface-only files are classified interface-only / not-measured, receive no [ExcludeFromCodeCoverage], and are reported N/A rather than 0%.
No production file in scope exceeds 500 lines; any newly created file reaches >= 90% line
coverage and appends its own ledger row plus <Compile Include> entry.
Tests use MSTest, Moq, and FluentAssertions; deterministic and isolated; no temporary files,
external services, live forms, popups, Thread.Sleep, Task.Delay, or wall-clock waits.
Full C# toolchain green in final form; repository-wide coverage retained or improved.
No behavior change to observable QuickFiler flows.
Constraints & Risks
In-flight conflict risk with issue Bug: quickfiler-folder-selector-dropdown #400
(docs/features/active/2026-07-21-quickfiler-folder-selector-dropdown-400), which targets the
same breadcrumb folder-selector drop-down and carries its own committed Cobertura evidence.
Drop-down open/close lifetime and WebView2 initialization carry concurrency and ordering
invariants. Cancellation, double-open, open-during-close, and initialization-failure paths must be
covered explicitly with an injected clock and fake timers.
Sibling boundary: BreadcrumbBridgeRouter, BreadcrumbBridgeCoordinator, BreadcrumbCoordinatorUpgradeLifetime, BreadcrumbItemViewerLifecycleCoordinator, and BreadcrumbMessengerHub belong to F12. ItemViewer.Breadcrumb.cs belongs to F14.
Seam hierarchy: interface seam, then injectable delegate, then adapter. STA constructions are a
last resort confined to dedicated *.StaTests.cs files.
Known prior art: a retyped Designer field breaks reflection-injected tests; injecting a router is
the working approach for the breadcrumb WebView2 surface.
Problem / Why
Child F13 of epic #136 owns the QuickFiler breadcrumb drop-down surface and the WebView2 host
(15 compiled files, ~3,111 lines under
QuickFiler/Viewers/). The file set has an unusual shape:work for them is branch coverage against the 75% floor plus explicit error-path and
cancellation-path pinning - not new happy-path tests.
WebView2BreadcrumbHost.cs,WebView2Messenger.cs,WebView2CoreInitializer.cs) carry class-level[ExcludeFromCodeCoverage]and are thereforeabsent from instrumentation entirely. They are unmeasured, not covered, and will start near zero
once their exemptions are reconsidered. This is where the genuine coverage work is concentrated.
BreadcrumbPopupUiOperations.cscarries method-level[ExcludeFromCodeCoverage]attributes onindividual UI-bound members rather than a single file-level attribute.
interface-only / not-measuredbucket.Proposed Behavior
Raise every
testablefile in the F13 assignment to at least 80% line and 75% branch coverage,verified with F1's per-file harness, and either remove the
[ExcludeFromCodeCoverage]attributeswith the code genuinely covered or retain only a file-specific irreducible remainder argued against
the three exemption grounds in the epic's Shared Design section 1. No observable behavior change to
QuickFiler flows.
Acceptance Criteria
testablefile in scope reaches >= 80% line and >= 75% branch coverage, measured withF1's harness and recorded under
<FEATURE>/evidence/qa-gates/.floor is met.
[ExcludeFromCodeCoverage]attributes in scope are removed with the code covered, or retainedonly where a file-specific irreducible-remainder rationale is recorded and F1's ledger
ratifies it.
interface-only / not-measured, receive no[ExcludeFromCodeCoverage], and are reported N/A rather than 0%.coverage and appends its own ledger row plus
<Compile Include>entry.external services, live forms, popups,
Thread.Sleep,Task.Delay, or wall-clock waits.Constraints & Risks
(
docs/features/active/2026-07-21-quickfiler-folder-selector-dropdown-400), which targets thesame breadcrumb folder-selector drop-down and carries its own committed Cobertura evidence.
invariants. Cancellation, double-open, open-during-close, and initialization-failure paths must be
covered explicitly with an injected clock and fake timers.
BreadcrumbBridgeRouter,BreadcrumbBridgeCoordinator,BreadcrumbCoordinatorUpgradeLifetime,BreadcrumbItemViewerLifecycleCoordinator, andBreadcrumbMessengerHubbelong to F12.ItemViewer.Breadcrumb.csbelongs to F14.last resort confined to dedicated
*.StaTests.csfiles.the working approach for the breadcrumb WebView2 surface.
Test Conditions
Source
From: docs/features/potential/2026-08-07-quickfiler-breadcrumb-dropdown-webview-coverage.md