fix: pin installs, restrict releases, and follow MCP host contract - #1
Merged
Conversation
Hosts need titles, instructions, field descriptions, and prompts to drive the login-prepare-publish loop. Device-approval URLs are now HTTPS-only (loopback HTTP allowed) before the browser opens.
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.
Review on ArchCode
Problem and author intent
The standalone MCP runs locally with access to user checkouts, OAuth credentials, and short-lived Git material. Installing
@latestwould silently execute new package bytes whenever a harness restarts, and publishing needs to remain tied to reviewedmaincode.This change pins harness installation to
0.1.0, documents explicit upgrades, and puts npm publication behind the protectednpm-releaseenvironment with a main-branch guard.It also brings the stdio server up to the official MCP v2 host contract so Codex and Claude can see titles, instructions, field descriptions, and workflow prompts, and it validates device-approval URLs before opening a browser.
What changed
npxregistration to@archastro/intern-mcp@0.1.0.npm-releaseenvironment andrefs/heads/mainfor publication.intern_sign_in/intern_work_on_siteprompts.package.json.explorer.exeinstead ofcmd /c start.Scope indicator
Repository packaging, release safety, and local MCP host-facing contract. No backend API changes.
Risk assessment
Low. The change narrows execution and release authority. A future release must deliberately update the documented version. Host-contract additions are discoverability-only except for stricter verification-URL validation.
User impact
Harness restarts keep executing the reviewed package version until the user explicitly upgrades. Claude can invoke
/mcp__intern__intern_sign_inand/mcp__intern__intern_work_on_site; all hosts receive workflow instructions at initialize.Testing
npm run check— formatting, ESLint, TypeScript build, 20 tests, and clean npm package/stdin-stdout MCP proof.npm run test:harnesses— real Codex registration and real Claude connection from isolated user profiles (from earlier commits on this branch).Build, test, lint, and formatcheck should re-run on this push.Canonical package proof:
scripts/package-smoke.mjsinstalls the tarball into a clean consumer and lists 11 tools over real MCP stdio. Canonical harness proof:scripts/harness-install-smoke.mjscrosses the real Codex and Claude configuration writers; Claude reports Connected.Follow-ups and known issues
ArchAstro/firstlanding#10040owns the pinned cross-repository backend compatibility proof.intern_loginremains a downstream device-flow tool for hosts that cannot do URL elicitation.