Skip to content

feat(sitemanage): wire PSWidgetDao modern-first dual-run selection (#3024) - #3045

Merged
natechadwick merged 1 commit into
mainfrom
fix/issue-3024-pswidgetdao-modern-first
Aug 11, 2026
Merged

natechadwick merged 1 commit into
mainfrom
fix/issue-3024-pswidgetdao-modern-first

Conversation

@natechadwick-intsof

Copy link
Copy Markdown
Collaborator

Summary

Wires production PSWidgetDao to modern-first dual-run selection via PSLegacyDefinitionXmlShim (parent Phase 3 #2630 residual #3024). Keeps the legacy Widgets XML content path and does not delete the shim (#2852).

  • PSWidgetDao.selectDefinitionSource(id) + poll-time classification via PSLegacyDefinitionXmlShim.selectDefinition
  • Test-visible getLastSelectionKind() / getSelectionKindsById()
  • INFO metrics: modern= / legacyWidgetXml= / total=
  • Optional Spring widgetDao.modernPackageRoots (File.pathSeparator list of package roots)
  • Content still loads install Widget XML (materialized wire format); selection kind is MODERN when a modern package root is present
  • Companion: close XML file handles in PSXmlFileDataRepository.fileToObject (Files.readString) so Windows temp dirs unlock after poll
  • Docs: dual-run operator doc + Phase 5 criteria M2 snapshot PARTIAL after issue 2630 residual: wire PSWidgetDao modern-first selection (keep shim) #3024

Operator: Grok: night-issue-prs (model grok-4.5)

Parent tracker: #2630 · Grandparent: #2626 · Fixes #3024

Test plan

  • Unit tests in PSWidgetDaoTest: modern preferred; legacy fallback; neither → clear PSDefinitionSourceNotFoundException; poll records kinds
  • Standalone modules/perc-packages mvnw clean install (BUILD SUCCESS)
  • Standalone projects/sitemanage mvnw clean install (BUILD SUCCESS; Tests run: 1027, Failures: 0, Errors: 0, Skipped: 125)

Product documentation

  • N/A — internal dual-run wiring + engineering criteria snapshot; operator dual-run checklist already exists under docs/ai-generated/... (no new operator-facing product surface)

Build evidence (C3)

  • modules_built: modules/perc-packages, projects/sitemanage
  • build_evidence:
    • cd modules/perc-packages && ../../mvnw.cmd clean install → BUILD SUCCESS
    • cd projects/sitemanage && ../../mvnw.cmd clean install → BUILD SUCCESS; Tests run: 1027, Failures: 0, Errors: 0, Skipped: 125
  • downstream_checked: none (C2 N/A — no final/signature break on shared reverse-dep types; sitemanage depends on perc-packages for selection API)

Out of scope

…3024)

Wire PSWidgetDao to PSLegacyDefinitionXmlShim for modern-preferred definition
source selection while keeping the legacy Widgets XML content path and the
shim itself (#2852). Expose test-visible selection kinds and INFO metrics.
Optional widgetDao.modernPackageRoots (File.pathSeparator list). Fix XML
repository stream leak so Windows temp dirs can close after poll.

Also updates dual-run / Phase 5 criteria M2 snapshot notes (partial M2).

Fixes #3024
Parent: #2630

> Co-Authored by Grok Build using grok-4.5 with agent main.
@natechadwick
natechadwick merged commit b61d860 into main Aug 11, 2026
6 checks passed
@natechadwick
natechadwick deleted the fix/issue-3024-pswidgetdao-modern-first branch August 11, 2026 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.5 Grok 4.5 model operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issue 2630 residual: wire PSWidgetDao modern-first selection (keep shim)

2 participants