Skip to content

fix(plugin): support marketplace preflight without Windows console flashes / 支持市场预检并消除 Windows 黑框#6405

Merged
SivanCola merged 3 commits into
esengine:main-v2from
SivanCola:fix/plugin-marketplace-preflight
Jul 13, 2026
Merged

fix(plugin): support marketplace preflight without Windows console flashes / 支持市场预检并消除 Windows 黑框#6405
SivanCola merged 3 commits into
esengine:main-v2from
SivanCola:fix/plugin-marketplace-preflight

Conversation

@SivanCola

@SivanCola SivanCola commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • detect GitHub-hosted Claude marketplace roots and turn bounded relative-path entries into deterministic per-plugin install actions
  • keep marketplace planning and apply on one pinned clone, validate paths and manifest names, support optional single-plugin selection, and clean temporary resources on every exit path
  • route plugin Git clone/revision/fetch/checkout subprocesses through the Windows hidden-window helper so desktop preflight no longer flashes a console
  • accept both ./plugins/example and bare plugins/example relative sources; entries the subset cannot install (object sources, external URLs, invalid plugin names) skip with a per-entry warning during bulk installs and report a precise error when selected by name
  • validate marketplace plugin names at plan time so broken entries surface in the preview instead of mid-apply
  • hide the rg console window in the desktop bot project search — the one remaining bare spawn in the GUI-process path with the same console-flash shape
  • pin the marketplace planId approval contract (preview planId must match the planId recomputed on apply) with a regression test
  • document the supported marketplace subset in English and Chinese

Verification

  • go test ./internal/installsource ./internal/bot ./internal/pluginpkg ./internal/proc
  • go vet ./internal/installsource ./internal/bot ./internal/pluginpkg
  • DEEPSEEK_API_KEY= go test ./...
  • cd desktop && go test ./...
  • GOOS=windows GOARCH=amd64 go test -c -o /tmp/reasonix-installsource-windows.test.exe ./internal/installsource
  • GOOS=windows GOARCH=amd64 go build ./internal/installsource ./internal/bot
  • real GitHub dry-run against CSlawyer1985/claude-for-legal-ZH: 12 plugin actions and 150 skills planned from one pinned commit
  • isolated-home real apply against the same marketplace: all 12 plugin packages installed and registered successfully

Cache impact

Cache-impact: low - changes install_source plugin discovery, desktop child-process behavior, and bot search child-process flags only; provider-visible tool schemas, system prompts, memory prefixes, and request serialization are unchanged.
Cache-guard: focused install-source/plugin-package/bot tests, full root tests, desktop tests, and Windows target compilation passed.
System-prompt-review: N/A

Plan and install relative-path Claude marketplace entries from one pinned GitHub snapshot. Route plugin Git subprocesses through the Windows hidden-window helper and cover marketplace selection, validation, cleanup, and real install behavior.
@SivanCola SivanCola requested a review from esengine as a code owner July 13, 2026 07:03
@github-actions github-actions Bot added the v2 Go rewrite (1.x) — main-v2 branch, active development label Jul 13, 2026
Real Claude marketplaces spell relative plugin sources both as
./plugins/example and as the bare plugins/example; the preflight now
accepts both (absolute and drive-qualified paths are still rejected
before the join, and escape attempts still fail the plan loudly).

Entries the subset cannot install — object sources, external URLs, and
invalid plugin names — no longer fail the whole marketplace plan: bulk
installs skip them with a per-entry warning, while selecting such an
entry by name reports a precise error. Names are validated at plan time
so broken entries surface in the preview instead of mid-apply.

Also pins the planId approval contract for marketplaces: the preview
planId must match the planId recomputed by the apply call.
The desktop app hosts bot bridges in the GUI process; the project
search rg subprocess was the one remaining child in that path spawned
without the hidden-window flags, flashing a console on Windows.
@SivanCola SivanCola merged commit 8c98922 into esengine:main-v2 Jul 13, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v2 Go rewrite (1.x) — main-v2 branch, active development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant