Skip to content

Fix/789#222

Open
conradmugabe wants to merge 4 commits into
mainfrom
fix/789
Open

Fix/789#222
conradmugabe wants to merge 4 commits into
mainfrom
fix/789

Conversation

@conradmugabe

@conradmugabe conradmugabe commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • Tests were added/updated according to the feature/bugfix/change made
  • Version was rolled according to semver requirements
  • API endpoints openapi schema was updated if applicable

Changes

Screenshot from 2026-06-05 05-51-23

conradmugabe and others added 4 commits June 5, 2026 06:59
The custom launcher icon configured on the Embed tab lived only in local
React state, so it reverted to the default on page refresh. Persist it to
the mentor settings: custom mode saves the bubble config as the
`embed_icon_selection_data` JSON map (plus the uploaded image as
`embed_custom_image`), and default mode clears it with an empty object `{}`
(the backend ignores `null`/`''`). Derive custom-vs-default from whether the
persisted JSON is a non-empty object via the form's reactive defaultValues,
rehydrate the bubble config from settings on load, and make the Icon
Selection select controlled so the trigger reflects the hydrated value.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`getBubbleImage` built the default launcher thumbnail URL from
`config.axdUrl()`. On the unified API gateway that resolves to an invalid
`/axd` prefix (HTTP 404 "Use /dm/, /asgi/, /lms/, /studio/"), so the
generated embed code silently fell back to the bundled placeholder. The
thumbnail is a DM endpoint — use `config.dmUrl()` (which the live-preview
default already uses for the same path). Behavior is unchanged in the
legacy config where the two URLs are identical.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Embed tab only had a "Create Embed" action, which always generates the
embed snippet. Add a dedicated "Save" button (left of Create Embed) that
persists the mentor settings without generating an embed — no website-URL
requirement, redirect token, or embed dialog — and toasts on success. It
reuses the extracted `saveMentorSettings`, so it persists the same payload
as Create Embed. Style to match the settings tab: Save is the gradient
primary, Create Embed becomes an outline button.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Unit tests for the Embed tab changes: the icon-selection persistence
helpers (`buildEmbedIconSelectionData`, `hasCustomIconData`,
`buildFloatingBubbleConfigFromSettings`, `dataUrlToFile`), the save/load
round-trip (custom JSON + image, `{}` clear, defaultValues-derived mode,
hydration), the controlled Select, the `getEmbedCode`/`getBubbleImage` dm
endpoint, and the save-only button (`handleSaveSettings`, `isSavingSettings`).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@conradmugabe conradmugabe requested a review from mamigot as a code owner June 5, 2026 08:48
@conradmugabe conradmugabe self-assigned this Jun 5, 2026
@mamigot

mamigot commented Jun 5, 2026

Copy link
Copy Markdown
Member

Claude finished @conradmugabe's task —— View job


E2E Coverage Bot Analysis ✅

Analyzing PR #222 for E2E test coverage requirements...

Todo List

  • Dismiss stale REQUEST_CHANGES reviews from previous runs (no stale reviews found)
  • Identify what files changed (focus on new page.tsx routes)
    • No new page.tsx files found
    • No e2e journey specs modified
    • No coverage files changed
  • Run mechanical coverage check script (PASSED - 402 checkpoints maintained)
  • Read current coverage state files (coverage.json and COVERAGE.md reviewed)
  • Apply decision logic and post GitHub review (APPROVED)

Analysis Complete ✅

Changed files analysis:

  • 8 files modified, all within components/modals/edit-mentor-modal/
  • Changes focused on embed functionality (icon persistence)
  • No new app routes (page.tsx files) added
  • No changes to existing e2e journey specs

Mechanical coverage check result:

✅ Coverage unchanged: 402 checkpoints
✅ All 47 spec files exist in e2e/journeys/
✅ Journey coverage: 24/24 files mapped (100%)
✅ All user-facing changes have E2E journey coverage!

Decision: This falls under Case E - No new page.tsx files and mechanical check PASSED.

Review Posted:APPROVED - No new app routes introduced, existing coverage intact.


@conradmugabe conradmugabe added the run-tests Trigger PR validation pipeline label Jun 5, 2026

@mamigot mamigot left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

✅ E2E Coverage — No Issues

No new app routes were introduced. All existing coverage is intact.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-tests Trigger PR validation pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants