appplayer_core 0.1.6
appplayer_core: ^0.1.6 copied to clipboard
AppPlayer Core — shared Flutter library for MCP server connection, bundle handling, and UI runtime orchestration.
0.1.6 - 2026-05-04 - flutter_mcp_ui 0.4.0 / 0.5.0 + mcp_bundle 0.3.1 alignment #
- Bumps
flutter_mcp_ui_coreto^0.4.0andflutter_mcp_ui_runtimeto^0.5.0for the spec 1.3.3 alignment cycle. - Bumps
mcp_bundleto^0.3.1(cascade: EthosRecord JSON round-trip,BundleFolder.agentsreserved,AgentsSection/PhilosophySectionmodels,EthosStorePortextensions).
0.1.5 - 2026-05-03 - flutter_mcp_ui 0.3.2 / 0.4.4 alignment #
Changed #
- Bump
flutter_mcp_ui_coreto^0.3.2andflutter_mcp_ui_runtimeto^0.4.4for the M3 token shorthand consumption layer (text.variant,box.padding,card.shape/elevation,button.elevation,icon.size/sizeToken),FormFactorScopetoken tracking, opt-in per-form-factor property override, andboxflat-form constraint properties.
0.1.4 - 2026-05-02 - Field-report logging stack — corrects 0.1.3 wiring #
Supersedes the misaligned 0.1.3 release. The logging primitives shipped in 0.1.3 conflated AppPlayer Core's own diagnostic logger with the MCP notifications/message log channel; this release re-architects them so a single in-app LogBuffer collects both sources, distinguished by LogEntry.source, and the MCP logging spec (notifications/message + logging/setLevel) is wired to its own routing path.
Changed (breaking — 0.1.3 → 0.1.4) #
LogEntrynow requires asource: LogSource(enumcore/mcp).levelfield is nowMcpLogLevel(RFC 5424 8 levels — verbatim) instead of the 4-levelLogLevel. Construct viaLogEntry.fromCore(LogLevel)(4→8 mapping) orLogEntry.fromMcp({serverId, params}).LogBuffer.atLeastparameter changed fromLogLeveltoMcpLogLevel. AddedwithSource(LogSource)filter.
Added #
BufferLogger—Loggeradapter that pushes records into aLogBufferassource=coreentries. Pair with a console adapter insideCompositeLoggerso a single Core diagnostic call lands in DevTools (development) AND the in-appLogBuffer(field report).- MCP logging spec wiring (MOD-RUNTIME-005a, NFR-OBS-006~007):
NotificationRouterroutesnotifications/messageinto a host-providedMcpLogMessageHandlercallback(serverId, params).AppPlayerCoreService.initialize(... onMcpLogMessage: ...)parameter.AppPlayerCoreService.setMcpLoggingLevel(serverId, McpLogLevel)— sendslogging/setLevelso the server filters its own emission (server-side filter, spec-canonical).McpLogMessageHandlertypedef andMcpLogLevel(re-export frommcp_client) in the public barrel.
Rationale #
Two log layers, one destination:
- Development uses OS standard log pipelines (host
ConsoleLogger→dart:developer.log→ DevTools / Console.app / logcat). Core diagnostics also flow there viaCompositeLogger. - Field reports require an in-app surface that production users can export when filing an issue.
BufferLogger(Core diagnostics) andonMcpLogMessage(server logs) both feed the sameLogBuffer, distinguished byLogEntry.source.
0.1.3 - 2026-05-02 - Logging primitives (LogEntry / LogBuffer / ScopedLogger) #
Added #
LogEntry— structured record (timestamp, level, message, context, error, stackTrace).LogBuffer—ChangeNotifierring buffer (default 1000 entries) with scope/level filters. Tier shells (Pro / X / Custom) read this buffer to render in-app log viewers.ScopedLogger—Loggerdecorator that injects a fixed scope map (e.g.{serverId, handle}) into every log call's context, so downstream filters can isolate logs per connection/app.CompositeLogger— fan-out to multiple inner loggers (typical use: console adapter + LogBuffer adapter side-by-side).
Core internal modules (ConnectionManager / ToolDispatcher / AppSession / NotificationRouter / ResourceSubscriber) are unchanged — composition roots inject a ScopedLogger and the existing _logger.debug(...) calls automatically carry the scope.
Note: This release misaligned the LogBuffer wiring with the MCP logging spec — see 0.1.4 for the corrected design (LogEntry.source, LogEntry.fromMcp, NotificationRouter
notifications/messagehandler,setMcpLoggingLevelAPI).
0.1.2 - 2026-05-01 - Tool dispatcher align with runtime 0.4.3 #
Changed #
ToolDispatcher.callnow returnsFuture<dynamic>(the decoded JSON response) instead ofFuture<void>. Host self-fold removed; the runtime applies spec §3.10 auto-merge against its own state.runtimeparameter dropped fromToolDispatcher.call— no longer needed.AppSessionImpl._onToolCallreturns the dispatcher's response so the runtime can fold it.- Runtime dependency raised to
flutter_mcp_ui_runtime: ^0.4.3(carries §3.10 auto-merge + §4.4.2eventvariable + errorBoundary/errorRecoveryevent.{error, stack}fixes).
0.1.1 - 2026-04-30 - mcp_client 2.0 dependency #
Changed #
- Upgraded
mcp_clientconstraint to^2.0.0. Public API of appplayer_core is unchanged — mcp_client is consumed internally and not re-exported.
0.1.0 - 2026-04-28 - Initial Release #
Added #
AppPlayerCoreServiceorchestrator owning connection lifecycle, sessions, bundle install pipeline, and tool dispatch.- Session abstractions —
AppSession,DashboardSession,AppHandle. - Connection observability —
ConnectionInfo,ConnectionResult,ConnectionState,ConnectionHealthMonitorwithHealthMonitorConfig. - Bundle handles and host ports —
BundleRef,BundleEntryPoint,BundleFetcher,InstalledAppBundle. - Dashboard bundle composition —
DashboardBundleRef,BundleSource,SlotDefinition,SlotBindingRule. - Apps registry —
AppsRegistry+RegistryMetadataSinkautomatic metadata refresh. - Tenant model —
TenantContext,TenantSourcefor multi-tenant variants. - Host ports —
ServerStorage,CredentialVault,AppMetadataSink. - Observability ports —
Logger,MetricsPort. - Re-exports from
flutter_mcp_ui_runtime—FormFactor,FormFactorScope,ViewMode/ViewModeResolver,AppSpacing/AppIconSizes/AppTypography/AppDensity(and their scale companions),TrustLevel,TrustLevelManager. - Re-export of
MCPUIDSLVersionfromflutter_mcp_ui_core. - Active-state extension via
app_activity.dart.