Skip to content

Preserve archive-relative Efc filing destinations - #611

Merged
drmoisan merged 5 commits into
mainfrom
bug/efc-full-path-destination-resolution-regression-609
Aug 25, 2026
Merged

Preserve archive-relative Efc filing destinations#611
drmoisan merged 5 commits into
mainfrom
bug/efc-full-path-destination-resolution-regression-609

Conversation

@drmoisan

Copy link
Copy Markdown
Owner

Summary

  • Correct Efc startup suggestion projection so in-root Outlook hierarchy paths are presented and filed as archive-relative targets.
  • Preserve full hierarchy paths exclusively for IFolderHierarchyProvider.ResolveLeafKeyAsync.
  • Prevent EmailFilerConfig from receiving a full hierarchy path and prefixing the archive root a second time.
  • Add regression coverage for exact-case and case-variant archive-root paths, including aligned suggestion score keys.
  • Confirm router navigation and @ mailbox-root filing behavior retain the established path-representation boundary.

Why

FolderPredictor startup suggestion generation could present a persisted in-root full Outlook hierarchy path verbatim. If that value crossed into the filing boundary, EmailFilerConfig combined it with OlAncestor again, producing a duplicated archive root and no resolved destination.

Efc intentionally uses two destination representations: a full Outlook hierarchy path for hierarchy lookup and an archive-relative target for filing. This change maintains that boundary.

What Changed

  • Project a matching archive root plus one separator from startup suggestion display values using case-insensitive comparison.
  • Keep already-relative and out-of-root full paths unchanged.
  • Keep each FolderScore key aligned with the projected display value.

Verification

  • Both full-path regressions failed before the correction and passed afterward.
  • Final C# toolchain passed: CSharpier format/check; analyzer rebuild with zero analyzer diagnostics; nullable/compiler rebuild with zero compiler or nullable diagnostics; coverage MSTest with 6,480 passed and zero failed.
  • Repository coverage: 53,760/63,418 (84.7709%); changed ProjectSuggestionPath line and branch coverage: 100%.
  • Final feature audit: PASS, 8/8 acceptance criteria.

GitHub Auto-close

Closes #609

@drmoisan
drmoisan force-pushed the bug/efc-full-path-destination-resolution-regression-609 branch from fc89b01 to dbfe1b9 Compare August 25, 2026 19:07
@drmoisan
drmoisan enabled auto-merge August 25, 2026 19:08
@drmoisan
drmoisan merged commit 5be9c75 into main Aug 25, 2026
5 checks passed
drmoisan added a commit that referenced this pull request Aug 25, 2026
drmoisan added a commit that referenced this pull request Aug 25, 2026
… spec

Pull request #611 (issue #609) changed two files this plan cites as
READ-ONLY, leaving four recorded figures stale. One of them broke an
acceptance condition: [P0-T8] required the Phase 0 read artifact to list
all seven method names in BreadcrumbBridgeRouterIssue439Tests.cs, but the
file now carries ten, and the three new Issue609_* methods are exactly the
assertions a later phase is most likely to duplicate.

Corrected, measured against integration head 59939f8:
- BreadcrumbBridgeRouterIssue439Tests.cs 531 -> 694 lines, 7 -> 10 methods
- FolderPredictor.cs 983 -> 1000 lines
- FolderPredictorTests.cs 985 -> 1043 lines (found by sweep)

[P0-T8] now names the three Issue609_* methods verbatim and derives its
listed-name count from a recorded grep, so the artifact stays correct if
the file gains further methods before execution. [P7-T2] keeps its
baseline-relative clause as the binding gate; its absolute figures are
demoted to advisory context that the P0-T16 baseline overrides.

Both files remain READ-ONLY / MUST-NOT-WRITE for this feature.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@drmoisan
drmoisan deleted the bug/efc-full-path-destination-resolution-regression-609 branch August 28, 2026 11:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: efc-full-path-destination-resolution-regression

1 participant