Skip to content

UI vertical-slice migration with hexagonal Common/ ports#519

Merged
jschick04 merged 33 commits into
mainfrom
jschick/reorg-ui-v2
May 11, 2026
Merged

UI vertical-slice migration with hexagonal Common/ ports#519
jschick04 merged 33 commits into
mainfrom
jschick/reorg-ui-v2

Conversation

@jschick04
Copy link
Copy Markdown
Collaborator

Reorganizes the EventLogExpert.UI project into a vertical-slice architecture with hexagonal Common/ ports for cross-cutting infrastructure. Builds on top of the eventing-restructure branch (#518).

Highlights

Hexagonal Common/ ports (R2-R8, R30-R33):

  • Modal/Alert broker extraction (interface segregation: IInlineAlertHostBroker)
  • System/File/Clipboard ports moved to Common/
  • IPreferencesProvider, Versioning, AppTitle, IMainThreadService, IWindowsIdentityProvider, LoggingMiddleware, DisplayExtensions all relocated to Common/<Domain>/ slices

Vertical slice promotion (R9-R20):
StatusBar, DebugLog, Banner, Modal, Alerts, Settings, Menu, Database, Update (incl. Deployment + ReleaseNotes), LogTable (was EventTable), EventLog, Filter (incl. FilterCache, FilterGroup, FilterPane).

Renames at the type/file level:

  • EventTable -> LogTable slice + LogView record + LogTablePane / LogTabBar components
  • CopyType -> EventCopyFormat
  • ModalAlertDialogService -> AlertDialogService
  • GitReleaseModel -> GitHubRelease
  • SavedFilter/SavedFilterGroup/FilterDraft/DateFilter clarifications
  • FilterDraft.FromFilterModel -> FromSavedFilter

Typed ID records (replaces raw Guid on internal IDs):

  • EventLogId (existing pattern)
  • BannerId (Banner slice)
  • UpgradeBatchId (Database.Upgrade event flow)
  • StatusActivityId (StatusBar loading-tracker)

Internalizations / surface tightening:

  • SavedFilterJsonConverter -> internal
  • FolderPickerHelper -> internal
  • GitHubReleaseNormalizer (already internal) relocated next to its sole consumer (Update/)

Methodology

Atomic commit-per-slice with the eventing-PR conventions:

  • Common// requires >=2-file gate (R5 was a documented exception per discussion)
  • One type per file
  • Hexagonal ports/adapters
  • Per-commit hygiene gates: build (0/0), dotnet format whitespace --verify-no-changes, dotnet format style --diagnostics IDE0005 IDE0065, dotnet test, ReSharper cleanup
  • Multi-reviewer panel before each major design (codex / rubber-duck / gpt-5.5 / opus-xhigh)

Test baseline (locked)

1610 unit + 235 integration. All gates green at HEAD.

Notes

  • LogTable rename brings the EventTable slice into the consistent UI naming system (*Layout / *Pane / *Bar / *Host).
  • EventLogExpert.Components is a separate assembly without IVT to UI; some types remain public because Components consumes them. Filter-internal candidates that depend on EditableFilterRowBase are tracked for the follow-up filter-rework task.
  • Per arch reviewer: 100% namespace/folder consistency post-promotion. Two cross-slice cycles flagged for the filter-rework follow-up; not addressed here to keep this PR scoped to the migration itself.

@jschick04 jschick04 requested a review from a team as a code owner May 11, 2026 16:03
@jschick04 jschick04 marked this pull request as draft May 11, 2026 16:04
@jschick04 jschick04 requested a review from Copilot May 11, 2026 16:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@jschick04 jschick04 force-pushed the jschick/eventing-restructure branch from c8ce6d0 to 7136403 Compare May 11, 2026 18:27
@jschick04 jschick04 force-pushed the jschick/reorg-ui-v2 branch from 1456555 to 3c091f2 Compare May 11, 2026 18:30
Base automatically changed from jschick/eventing-restructure to main May 11, 2026 18:36
@jschick04 jschick04 force-pushed the jschick/reorg-ui-v2 branch from 3c091f2 to f7c9945 Compare May 11, 2026 18:47
@jschick04 jschick04 requested a review from Copilot May 11, 2026 18:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@jschick04 jschick04 marked this pull request as ready for review May 11, 2026 18:56
@jschick04 jschick04 merged commit abd2143 into main May 11, 2026
6 checks passed
@jschick04 jschick04 deleted the jschick/reorg-ui-v2 branch May 11, 2026 21:55
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.

3 participants