Skip to content

Release v0.6.0 — UI overhaul + bookmark fix#1

Merged
mgoldsborough merged 1 commit into
mainfrom
release/v0.6.0
May 8, 2026
Merged

Release v0.6.0 — UI overhaul + bookmark fix#1
mgoldsborough merged 1 commit into
mainfrom
release/v0.6.0

Conversation

@mgoldsborough
Copy link
Copy Markdown
Contributor

Summary

Major UI refresh + a critical bookmark bug fix. See commit body for the full breakdown.

Bug fixes

  • Bookmarks now actually link to sessions. New `bookmark_session(session_id)` tool wraps `create_entity` with the `relationships` field set server-side. The auto-generated `create_bookmark` strips `relationships` because it's a base-entity field, so previous bookmarks were unlinked and the UI fell back to the literal string "Bookmarked session".
  • Host theme tokens now apply. Bumped `@nimblebrain/synapse` 0.3.0 → 0.8.0 — earlier version didn't inject `hostContext.styles.variables` in the `createSynapse` path.

UI overhaul — iframe app (`ui://mcp-dev-summit/main`)

  • Self-contained palette in `ui/src/styles.ts` driven by `data-theme`, picking up host accent when present
  • 4-step typography scale (11 / 12.5 / 14 / 18 px), mono for times
  • Breaks demoted to dividers; keynotes get a 3px accent bar; bookmarked rows get a gold bar
  • Pill bookmark button with `+` / `✓` icons (was a unicode star)
  • Centered modal with sticky head + actions, Escape to dismiss
  • Helpful empty states; suggestion chips on search; skeleton loaders
  • Search debounce 600 ms → 250 ms
  • Day picker active state uses accent-soft (was harsh black)

UI overhaul — chat-embedded widgets (`server.py`)

  • Single shared `_WIDGET_CSS` palette mirroring the iframe app
  • `data-theme` switched via `connect().theme.mode` + `theme-changed` event
  • Speaker widget: rule-separated rows, proper flex gap on name+LinkedIn, subtle topic chips
  • Session widget: keynote accent bar, mono times, unified meta line
  • Schedule + speaker-card widgets converted to the same system

Test plan

  • 18 Python tests pass
  • `tsc --noEmit` clean
  • `vite build` clean (343 KB / 100 KB gzipped)
  • Verified iframe app in Chrome via `/__preview` — both light + dark themes
  • Verified bookmark create+display end-to-end (bookmarks now show real titles)
  • Verified all four chat widgets in Chrome at chat-column width — light + dark

Bug fixes
- Fix create_bookmark: relationships were silently stripped by Upjack's
  base-field filter, so bookmarks had no link to a session and the UI
  fell back to the literal string "Bookmarked session". New
  bookmark_session(session_id) tool wraps create_entity with the
  relationship set server-side.
- Fix host theme tokens not applying: synapse SDK 0.3.0 didn't inject
  hostContext.styles.variables in the createSynapse path. Bump to 0.8.0.

UI overhaul (iframe app — ui://mcp-dev-summit/main)
- New self-contained palette in ui/src/styles.ts driven by data-theme,
  using the host's --color-text-accent as the brand override and
  computing the rest in CSS so the widget works with or without host
  tokens.
- Typography hierarchy with real distance (11/12.5/14/18 px), mono
  font for times, line-height tightening.
- Breaks demoted to dividers; keynotes get a 3px accent bar; bookmarked
  rows get a gold bar.
- Bookmark control rebuilt as a 28px pill with + / ✓ icons (was a
  unicode star with no affordance).
- Centered modal with sticky head + sticky action bar, animated entry,
  Escape-to-dismiss.
- Empty states with iconography and helpful copy; bookmarks empty state
  shows the actual + button inline.
- Search debounce 600ms → 250ms; suggestion chips; skeleton loading
  rows.
- Day picker: segmented buttons with day-of-week eyebrow + date,
  active state uses accent-soft (light) instead of harsh black fill.

UI overhaul (chat-embedded widgets — server.py)
- Single shared _WIDGET_CSS palette mirroring the iframe app, switched
  via data-theme from the connect() theme + theme-changed event.
- Speaker widget: rule-separated rows, name + LinkedIn with proper
  flex gap, subtle gray topic chips (not high-saturation pills),
  mono session times.
- Session widget: keynote rows get the accent bar, mono time format,
  badge + room + time meta line.
- Schedule widget: mono time slot headers, keynote accent bar,
  unified meta row.
- Speaker card: same row pattern as the speaker widget.

Other
- Synapse provider name reads version from manifest (0.6.0).
- All 18 Python tests pass; UI type-checks and builds clean
  (343 KB inlined / 100 KB gzipped).
@mgoldsborough mgoldsborough merged commit 74f1a29 into main May 8, 2026
1 check passed
@mgoldsborough mgoldsborough deleted the release/v0.6.0 branch May 8, 2026 08:44
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.

1 participant