refactor(mcp): consume the shared upload-manager app seam - #699
Merged
Merged
Conversation
Bumps go.lumeweb.com/pinner past the upload-manager seam and the mint poll-fragment changes, and drops the CLI's parallel copies: open_upload_manager and its app view + helper tools now come from appswire, the async upload tools from pinnermcp, and the presign-TTL parser from pinner/transfer. Launcher URI, tool names, and wording resolve from the shared shared table; upload_list stays registered because the CLI assembly runs a single-user manager in-process.
Kody Review CompleteGreat news! 🎉 Keep up the excellent work! 🚀 Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
pcfreak30
marked this pull request as ready for review
September 12, 2026 18:33
Code Coverage ReportTotal Coverage: 55.3% Generated from commit: a478d77 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consumes the shared Upload to IPFS app seam from the pinner module (bumps
go.lumeweb.com/pinnerpast the upload-manager and mint-poll-fragment changes):open_upload_manager, its app view + helper tools, the async upload tools, and the presign-TTL parser are now all provided by the module, removing the CLI's parallel copies. The launcher URI, tool names, and launcher wording resolve from the shared table, andupload_liststays registered since the CLI assembly runs a single-user manager in-process.Summary
This refactor consumes the shared Upload to IPFS app seam now provided by the
go.lumeweb.com/pinner/mcp/appswiremodule, replacing the CLI-local implementation. It eliminates duplicated code and ensures the CLI’s upload manager surfaces (launcher, helpers, resource URI, async tools) stay byte-identical with the hosted assembly.Key Changes
Module-owned upload manager
The launcher descriptor (
appswire.UploadManagerDescriptor), installer (appswire.UploadManagerInstaller), and launcher tool name (appswire.LauncherUploadManager) are now sourced from the sharedpinnermodule. The CLI’sappspackage adapts them to the process-global registry and supplies the render function (RenderAppView) and the canonicalui://resource URI (UploadManagerAppURI).Single resource URI
All call sites that set connect domains, unregister resources, or check the URI now use
apps.UploadManagerAppURI()(derived from the shared table) instead of the now-removedupload.IPFSUploadAppURIconstant. This prevents the wire URI from drifting.Shared async upload tools
The
upload_status,upload_cancel, andupload_listdescriptors now come frompinnermcp.NewAsyncUploadTools(module-owned) rather than the CLI-localupload.NewAsyncUploadTools.Unified presign-TTL parser
The presign-TTL parsing (
ParsePresignTTL) is centralized ingo.lumeweb.com/pinner/transfer; all upload paths (upload_file, open_vault_manager, vault_put_file, upload_vault_app) now call that single canonical parser, removing local duplicates.Test alignment
Tests updated to verify the new seam: they reference
appswire.LauncherUploadManager,apps.UploadManagerAppURI(),apps.InstallUploadManagerApp, andpinnermcp.NewAsyncUploadTools. Contract tests for the module-owned descriptors now only check boolean hints and non-empty schema descriptions (theopenai/toolInvocationlabels are module-owned and no longer part of the CLI wire contract).Impact