Skip to content

✨ feat(windows): add safe one-click CPA launcher - #378

Closed
systemoutprintlnhelloworld wants to merge 1 commit into
seakee:mainfrom
systemoutprintlnhelloworld:feat/windows-launcher
Closed

✨ feat(windows): add safe one-click CPA launcher#378
systemoutprintlnhelloworld wants to merge 1 commit into
seakee:mainfrom
systemoutprintlnhelloworld:feat/windows-launcher

Conversation

@systemoutprintlnhelloworld

Copy link
Copy Markdown

Summary

  • add a Windows launcher that starts CLIProxyAPI and CPA Manager Plus together without fixed installation paths
  • validate PID start time, executable path, port ownership, authenticated completion, collector health, and SQLite ingestion before opening the panel
  • add current-user Start Menu/Desktop shortcut management, CMD %* forwarding, logs, cross-process locking, rollback, release packaging, and documentation

Test plan

  • go test ./internal/http/controller/health ./internal/http/router
  • go build ./cmd/cpa-manager-plus
  • parse bin/native/cpa-launcher.ps1 with the PowerShell AST parser
  • run cpa-launcher.ps1 status -NoPause
  • git diff --check
  • go test ./... on Windows: all relevant packages pass, but the existing internal/security test expects POSIX mode 0600 and observes 0666 on Windows

Start CPA and Manager Plus together with validated process ownership, end-to-end readiness checks, current-user shortcuts, and packaged Windows scripts.
@seakee

seakee commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Thanks for continuing to improve the Windows launcher and for adding more complete process management, rollback, and readiness handling.

After reviewing the implementation and the current project roadmap, I have decided not to merge this PR.

The project already has an active development branch that integrates CPA and CPAMP through a dedicated runtime scheduler. That branch is intended to become the central place for managing both services, including startup order, shutdown, process state, health checks, recovery, and runtime coordination.

This PR implements many of those same responsibilities independently in PowerShell. Merging it would create two parallel lifecycle-management systems: the runtime scheduler and the Windows launcher. Maintaining both would increase complexity, make behavior dependent on which entry point the user chooses, and create ongoing synchronization work whenever process handling, configuration, ports, or health checks change.

There are also implementation details that would require further redesign, but the main issue is architectural rather than a collection of isolated bugs. Even if those individual issues were fixed, this launcher would still overlap with the runtime-based solution that is already under development.

For that reason, I do not think continuing to revise this PR would be the best use of effort. I am going to close it in favor of completing the unified CPA + CPAMP runtime implementation.

Thank you for the substantial work put into this proposal.

@seakee seakee closed this Aug 3, 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.

2 participants