Skip to content

feat(portal): add conversation bindings management panel#493

Closed
sytone wants to merge 1 commit into
mainfrom
feat/conversation-bindings-ui
Closed

feat(portal): add conversation bindings management panel#493
sytone wants to merge 1 commit into
mainfrom
feat/conversation-bindings-ui

Conversation

@sytone
Copy link
Copy Markdown
Owner

@sytone sytone commented May 22, 2026

Closes #140

Changes

ConversationBindingsPanel.razor

New Blazor component at Components/ConversationBindingsPanel.razor:

  • Renders all channel bindings for a conversation in a table (channel type, address, thread ID, mode, bound-at)
  • Add Binding form with channel type, address, optional thread ID, mode select (Interactive/Notify/ReadOnly)
  • Form validation: both channel type and channel address required before POST
  • Remove Binding with confirmation dialog before DELETE
  • Status notifications (auto-dismiss 4s) for add/remove outcomes
  • Error handling: loading failure shows human-readable error, retry via Reload button
  • Accessible: aria-label, aria-required, role=alertdialog, role=alert, role=status

Tests (8 tests)

  • Shows_loading_spinner_initially
  • Shows_empty_state_when_no_bindings
  • Displays_bindings_in_table
  • Shows_add_binding_form_when_add_button_clicked
  • Cancel_add_form_hides_form
  • Delete_button_shows_confirmation_dialog
  • Shows_error_when_load_fails
  • Add_binding_form_validation_shows_errors

Note: This PR covers the portal UI portion of #140. The REST API (POST /bindings, DELETE /bindings/{id}, POST /bindings/{id}/move) is already implemented and merged in PR #488. The move UI is a follow-up.

@sytone
Copy link
Copy Markdown
Owner Author

sytone commented May 22, 2026

CI: All checks passing
Merge conflicts: Clean / MERGEABLE
Commit title: Conventional commit format correct
Coverage: 8 bUnit tests for view, add, remove, error handling
Spec completeness: Closes partial #140 (portal UI for binding management) - view/add/remove bindings implemented; portal REST calls match existing endpoints

LGTM - ready to merge.

@sytone
Copy link
Copy Markdown
Owner Author

sytone commented May 22, 2026

CI: ✅ All checks passing
Merge: CLEAN — no conflicts
Commit title: feat(portal): add conversation bindings management panel ✅ Conventional commit
Coverage: 8 bunit tests covering view, add, remove, error paths
Spec completeness: Partial #140 — portal binding management view/add/remove; move endpoint in #488; portal move UI still open

LGTM — ready to merge.

Copy link
Copy Markdown
Owner Author

@sytone sytone left a comment

Choose a reason for hiding this comment

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

Farnsworth Review — PR #493

CI: ✅ All checks passing
Merge conflicts: ✅ Clean (MERGEABLE)
Conventional commit title:feat(portal): add conversation bindings management panel

Test coverage:

  • ✅ 8 bunit tests (view, add, remove, error handling)
  • Full suite passes clean

Spec completeness vs #140 (partial): Binding view/add/remove correctly implemented. Portal UI component satisfies the partial scope. Move-binding endpoint is in PR #488.

LGTM. Ready to merge.

@sytone
Copy link
Copy Markdown
Owner Author

sytone commented May 22, 2026

Closing as part of a planned hard-reset of the in-flight branch set so the new domain-model refactor can land on a clean trunk.

Audit verdict: close

Rationale: UI surface for ChannelBinding which changes in Phase 6b. Rebuild on new shape.

The new plan (in session state) reshapes core types: Citizen (User+Agent union), Vogen-generated value objects, ThreadId removed in favour of composite ChannelAddress, mark-not-delete compaction, centralised SessionContextProjector, single-path routing. Many in-flight branches touch contracts that are about to change — rebasing later would be more work than rebuilding on the new shape.

If this work is still wanted, refile as a new issue/PR against the post-refactor contracts.

@sytone sytone closed this May 22, 2026
@sytone sytone deleted the feat/conversation-bindings-ui branch May 22, 2026 18:47
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.

[Conversations] Allow explicit binding management — attach/detach channel address to a conversation

1 participant