v4.66.0
Minor Changes
-
44a9d34: Munin Inspector MCP App: new
@getmunin/inspector-apppackage builds theui://munin/inspectorpanel (React, single self-contained HTML, SDK bundled — no CDN) with an outreach proposal review view and the hello diagnostics view. Newoutreach_approve_proposal/outreach_dismiss_proposaladmin tools expose the existing decision surface over MCP (declared panel-only via_meta.ui.visibility: ["app"]so MCP App hosts hide them from the model — sends require a human click);outreach_list_proposalsandinspector_hellonow declare_meta.ui.resourceUriso supporting hosts render the panel inline, with approve/dismiss round-tripping over the widget channel. Addsskill://outreach/review-proposals. -
abeb2ef: Serve
ui://MCP App resources (SEP-1865): tools can declare_meta.ui.resourceUripointing at an app-audience HTML resource rendered inline by supporting hosts, with resource-level_meta(CSP) passed throughresources/list/resources/read. App resources are kept separate from theskill://catalog. Includes theinspector_hellospike tool +ui://inspector/hellopanel, verified end-to-end against claude.ai including the widget-initiatedcallServerToolround trip. -
768642a: Localize the inspector panel from the MCP App host locale.
- The panel reads
getHostContext()?.localeafter connect (falling back tonavigator.language, thenen) and re-renders ononhostcontextchanged, so it follows the user's Claude language setting rather than the iframe's browser default. - Strings live in a new
inspector.*namespace in@getmunin/dashboard-pages' message catalogs (English + Norwegian), now exposed via a./messages/*.jsonexport; the panel bundles only that namespace (~1 kB per locale) through a smallt(key, params)helper. - Ages in the proposal ledger format through
Intl.RelativeTimeFormatwith the host locale instead of hardcoded English abbreviations.
Server-originated strings (tool error messages) remain English.
- The panel reads
Patch Changes
-
37c95e9: Outreach proposal mutations (
outreach_approve_proposal,outreach_dismiss_proposal, propose/update) now return the same joinedcontactandcampaignsummaries asoutreach_list_proposals. Previously they returnedcontact: null, which made the inspector panel's row title fall back to the raw contact id after a decision. -
fb104ce: fix(docs): use the real
mn_admin_admin key prefix in MCP connect guides and setup placeholder (was the non-existentmn_live_) -
04cab6d: Resume a pending OAuth authorize instead of dropping it at the login page. When better-auth bounced
/auth/oauth2/authorizeto/loginand the user already had a session,redirectIfAuthenticatedignored the OAuth query and redirected to/dashboard, stranding the connector mid-flow. It now detects authorize params (response_type=code+client_id) and redirects back to the authorize endpoint. The consent page's unauthenticated and switch-account bounces now carry the OAuth query to/login(the previous?next=param was never read, and its absolute URL would have been rejected anyway), so the existing post-sign-in resume logic completes the flow. -
45f0e56: Stop MCP App hosts' rounded iframe clipping from slicing the panel border. The panel applies the host's style variables and rounds itself with
--border-radius-lgwhere available; onplatform: 'mobile'hosts (which draw their own rounded card around the embed) it drops its outer border entirely and lets the host frame it. Hosts that send no style tokens keep the square Munin look. -
b84577f: Package the Tailwind theme and brand fonts in @getmunin/ui.
- New
@getmunin/ui/tailwind-presetexport carries the whole Munin theme (token-mapped palette, semantic shadcn colors, radii, fonts, motion). Consumers shrink their Tailwind config topresets: [muninPreset]plus their owncontentglobs; the OSS web app now does exactly that. styles/fonts.cssnow resolves the woff2 files shipped inside the package (src/fonts/) via relative URLs instead of assuming the consumer hosts them at/fonts/…. Next emits them as hashed static assets; Vite (singlefile) inlines them.apps/web/public/fontsand the inspector-app's private font copies are gone.- The inspector-app build now compiles Tailwind (preset + PostCSS), so future panel views can use @getmunin/ui components directly; importing them through the barrel is tree-shaking-safe (
sideEffectsis now declared) and does not pull next-themes or sonner into the iframe bundle.
- New
Published packages
@getmunin/analytics-tracker@4.66.0@getmunin/chat-widget@4.66.0@getmunin/agent-host@4.66.0@getmunin/agent-runtime@4.66.0@getmunin/backend-core@4.66.0@getmunin/core@4.66.0@getmunin/dashboard-pages@4.66.0@getmunin/db@4.66.0@getmunin/docs-pages@4.66.0@getmunin/emails@4.66.0@getmunin/inspector-app@4.66.0@getmunin/mcp-toolkit@4.66.0@getmunin/sdk@4.66.0@getmunin/types@4.66.0@getmunin/ui@4.66.0