Skip to content

feat: pre-install the StepPage plugin on startup - #138

Closed
lit26 wants to merge 10 commits into
stepfun-ai:mainfrom
lit26:feat/preinstall-steppage-plugin
Closed

lit26 wants to merge 10 commits into
stepfun-ai:mainfrom
lit26:feat/preinstall-steppage-plugin

Conversation

@lit26

@lit26 lit26 commented Sep 22, 2026

Copy link
Copy Markdown

What

Pre-install the built-in StepPage plugin into a fresh install so its deploy tools (page_deploy, site/version listing, promote/rollback, preview links) are available out of the box — no manual /plugin install steppage required, per the StepPage plugin reference.

How

  • plugins.ts
    • ensureBuiltinPluginsInstalled() — materializes the built-in marketplace and copies the StepPage manifest into the user plugin root. Idempotent and once-only via a .stepcode-preinstalled marker (mirrors the existing .stepcode-builtin-fingerprint pattern), so a plugin the user later uninstalls is not silently resurrected on the next launch.
    • installMarketplacePlugin(entry, dir, { provision }) — new opt to copy the manifest without running the installer.
    • Exported provisionBuiltinPlugin (was the private provisionPluginCommand).
  • mcp.ts — in the MCP session-start block, before discovery: await ensureBuiltinPluginsInstalled() (fast manifest copy, so this session's discovery sees StepPage), then fire provisionBuiltinPlugin in the background so a first launch never blocks on the curl … | sh installer. A still-missing executable surfaces the existing actionable connect-failure remedy.

Behavior notes

  • steppage-mcp is still auto-supplied by the official installer when absent (guarded by command -v, honors STEPCODE_STEPPAGE_INSTALLER_URL, skipped on Windows) — unchanged.
  • STEPFUN_API_KEY / Step-login fallback path unchanged.
  • Activation follows the documented "restart to activate" model: if the executable wasn't present at first launch, it lands via background provision and connects on the next launch.

Verification

  • tsgo --noEmit (repo-wide, via pre-commit): clean.
  • Full coding-agent suite: 3475 passed, 0 failed (adds pre-installs the built-in StepPage plugin once and respects a later uninstall).
  • Production-faithful runtime smoke: after ensureBuiltinPluginsInstalled()discoverStepMcpServers() surfaces steppage__steppage (carrying the steppage-mcp provision) in the same session; idempotent; respects uninstall.

StepCode Contributors and others added 10 commits September 22, 2026 10:05
…ixed-rows

fix: pin list rows to the task and stop per-delta republishes
The two README images were tracked in-repo under images-and-attachments/.
Serve them from static-openapi.stepfun.com instead and drop the local
copies, so cloning the repo no longer pulls a 128 KB screenshot and the
demo can be updated without a commit.

Replace the second image with a GIF showing StepPage publishing, and add
a paragraph above it describing the feature: a local page is published
as a reachable static site with one command, keeping development,
debugging and delivery in the same terminal. Both the English and
Simplified Chinese README carry the same copy.
…e-demo

docs: host README images on the CDN and document StepPage publishing
StepPage previously required a manual `/plugin install steppage` before its
deploy tools were available. Provision the built-in StepPage plugin into a
fresh install automatically so `page_deploy`, site/version listing, and
promote/rollback work out of the box, per the StepPage plugin reference.

- plugins.ts: add `ensureBuiltinPluginsInstalled()` (materializes the built-in
  marketplace and copies the StepPage manifest into the user plugin root).
  Idempotent and once-only via a `.stepcode-preinstalled` marker, mirroring the
  `.stepcode-builtin-fingerprint` pattern, so a plugin the user later uninstalls
  is not silently resurrected on the next launch. Add a `{ provision }` option
  to `installMarketplacePlugin` and export `provisionBuiltinPlugin`.
- mcp.ts: before discovery in session start, copy the manifest (fast, so the
  current session's discovery sees it) and fire the `steppage-mcp` installer in
  the background so a first launch never blocks on the network. A still-missing
  executable surfaces the existing actionable connect-failure remedy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

This PR was auto-closed. Only contributors approved with lgtm can open PRs. Open an issue first and ask a maintainer for approval.

Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in CONTRIBUTING.md will not be reopened or receive a reply.

If a maintainer replies lgtmi, your future issues will stay open. If a maintainer replies lgtm, your future issues and PRs will stay open. The command must be at the start of the reply (optionally after one or more @username mentions) or at the end.

See CONTRIBUTING.md.

@github-actions github-actions Bot closed this Sep 22, 2026
@ZouR-Ma ZouR-Ma reopened this Sep 23, 2026
@ZouR-Ma ZouR-Ma closed this Sep 23, 2026
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.

3 participants