Skip to content

feat(feedback): add diff_banner primitive - #126

Merged
pcharbon70 merged 1 commit into
mainfrom
claude/widget-diff-banner-wave-3-7-b
May 20, 2026
Merged

pcharbon70 merged 1 commit into
mainfrom
claude/widget-diff-banner-wave-3-7-b

Conversation

@ty13r

@ty13r ty13r commented May 18, 2026 •

Copy link
Copy Markdown
Member

Summary

Rebased onto current main and reduced the branch to the missing canonical integration pieces for diff_banner as a baseline feedback primitive.

  • Adds UnifiedIUR.Widgets.Feedback.diff_banner/1 with counts, active filter, size, base label, and canonical filter_intent/selection_intent support under attributes.diff.
  • Wires Ash UI resource admission plus IUR and fallback Live UI adapters without adding a widget-component catalog entry.
  • Adds native Live UI rendering with canonical interaction attrs, plus Desktop UI and Elm UI renderer mappings so package consumers can handle the new canonical kind.
  • Updates fixture/tooling/docs coverage and adds tests that explicitly keep :diff_banner out of UnifiedUi.WidgetComponents, UnifiedIUR.Widgets.Components, and AshUI.WidgetComponents.

Architecture Notes

diff_banner is treated as a baseline feedback widget, not as a UnifiedUi.WidgetComponents catalog component and not as a new workflow/status family member.

The filter interaction no longer uses a filter_intent_prefix or raw phx-click="live_ui_interaction". Renderers synthesize canonical selection interaction attributes from filter_intent or selection_intent, preserving the existing transport architecture.

The visual behavior is stable and simple: all/new/changed/removed chips are always present, compact mode hides only the optional base_label, and static mode renders chips without radio semantics.

Verification

Passing:

  • mix format --check-formatted <changed files>
  • git diff --check -- . ':(exclude)_build/**' ':(exclude)deps/**'
  • mix test packages/unified_iur/test/unified_iur/widgets/diff_banner_test.exs packages/unified_iur/test/unified_iur/widgets_test.exs packages/unified_iur/test/unified_iur/fixtures_test.exs packages/unified_iur/test/unified_iur/tooling_test.exs packages/live_ui/test/live_ui/widgets/diff_banner_test.exs packages/live_ui/test/live_ui/renderer_test.exs test/ash_ui/resource/diff_banner_test.exs test/ash_ui/phase_31_runtime_adapter_test.exs test/ash_ui/phase_31_package_boundary_test.exs packages/desktop_ui/test/desktop_ui/renderer_test.exs packages/elm_ui/test/elm_ui/renderer_test.exs (65 tests, 0 failures)

Additional check:

  • mix test packages/desktop_ui/test/desktop_ui/phase_eleven_integration_test.exs still has the existing release-readiness failure in traceability_alignment because the required .spec/specs/desktop_ui/* and .spec/planning/desktop_ui/spec-traceability.* files are absent on current main. The widget coverage assertions pass before that readiness assertion.

Spec loop tasks are not wired in this checkout: mix spec.prime --base HEAD, mix spec.next, and mix spec.check --base HEAD all report missing Mix tasks.

@pcharbon70
pcharbon70 force-pushed the claude/widget-diff-banner-wave-3-7-b branch from b6695b3 to c381964 Compare May 19, 2026 15:55
@pcharbon70 pcharbon70 changed the title feat(live_ui): add DiffBanner widget Phoenix.Component (Wave 3.7-B Stage-4, DRAFT, Pascal-review REQUIRED) feat(feedback): add diff_banner primitive May 19, 2026
@pcharbon70

Copy link
Copy Markdown
Collaborator

Cleaned up PR #126 as discussed.

  • Rebased the branch onto current main (be09413) and force-pushed a single replacement commit: c381964 feat(feedback): add diff banner primitive.
  • Removed the stale widget-component catalog direction from the PR: diff_banner is now a baseline feedback primitive, with explicit tests proving it is not in UnifiedUi.WidgetComponents, UnifiedIUR.Widgets.Components, or AshUI.WidgetComponents.
  • Replaced filter_intent_prefix / raw live_ui_interaction handling with canonical selection interaction attrs generated from filter_intent or selection_intent.
  • Added the missing package integrations for Live UI, Ash UI adapters, Desktop UI, and Elm UI.

Verification:

  • mix format --check-formatted <changed files>
  • git diff --check -- . ':(exclude)_build/**' ':(exclude)deps/**'
  • Targeted test set: 65 tests, 0 failures

Caveat: packages/desktop_ui/test/desktop_ui/phase_eleven_integration_test.exs still fails only at the existing traceability_alignment release-readiness assertion because the required .spec/specs/desktop_ui/* and .spec/planning/desktop_ui/spec-traceability.* files are absent on current main as well. The widget coverage assertions pass.

@pcharbon70
pcharbon70 marked this pull request as ready for review May 20, 2026 08:36
@pcharbon70
pcharbon70 merged commit d46c8a3 into main May 20, 2026
7 of 8 checks passed
@pcharbon70
pcharbon70 deleted the claude/widget-diff-banner-wave-3-7-b branch May 20, 2026 08:53
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.

2 participants