Pulse/scripts
rcourtman 6be2af1c19 Let providers evaluate MSP without asking permission first
Two mandatory round-trips stood between an interested MSP and their first
screen, and neither was technical.

setup.sh required four image digests shipped as literal <pin>
placeholders, so the only way to get them was to ask. All four images are
publicly readable, so there was never anything to hand out. setup.sh now
resolves each blank pin to an immutable digest from its published tag via
buildx imagetools and writes it back to .env; hand-set values are left
alone.

setup.sh then died outright without a licence file, so nobody could start
the stack, create a workspace, or see the portal until a human minted a
licence for them. The control plane already ran unlicensed via
ProviderMSPPlanSourceEnvFallback; only the installer refused. A licence
path that is set but missing is still a hard failure, since that is a
misconfiguration rather than a choice.

Unlicensed now means evaluation rather than the cheapest paid tier. The
env fallback defaulted to msp_starter, handing every unlicensed
deployment the full 5-client Starter allowance and leaving no boundary
between evaluating and buying. Adds msp_eval at 2 workspaces: same
capabilities, smaller cap, not purchasable, not on the public ladder.

An isolation guarantee is the one claim a provider cannot evaluate from a
screenshot, and both MSP leads this year went quiet at exactly this step.

Contracts: cloud-paid records the unlicensed plan rule and the
strictly-below-paid invariant; deployment-installability records
credential-free, correspondence-free installability.

Verification: TestMSPEvalCapStaysBelowCheapestPaidTier,
TestCanonicalizePlanVersion_MSPEval,
TestProviderMSPSetupScriptSupportsUnlicensedEvaluation. The last was
negative-tested by reintroducing a <pin> placeholder and confirming it
fails. ensure_image_pins exercised against the live registries.
licensing, cloudcp, control-plane and installtests all green.
2026-08-03 16:31:24 +01:00
..
dev Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
eval chore: add evaluation scripts, CI workflow and dev tooling 2026-01-30 19:00:48 +00:00
installtests Let providers evaluate MSP without asking permission first 2026-08-03 16:31:24 +01:00
intelligence_lab Document RG-06 autonomy proof runner 2026-07-13 18:32:56 +01:00
lib backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
lint-fixer feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
release_control Enforce browser verification for frontend changes 2026-08-02 20:22:36 +01:00
tests Guard auto-update asset staging and migrate stale update units 2026-07-28 11:56:52 +01:00
.go-version Modernize Unified Agent lifecycle and platform support 2026-07-09 23:20:35 +01:00
audit-private-boundary.sh Ratchet private boundary audit debt 2026-07-29 20:09:23 +01:00
backfill-release-assets.sh Add historical release asset backfill workflow 2026-04-22 17:25:58 +01:00
build-release.sh Allow RCs while Windows signing is pending 2026-07-10 23:12:12 +01:00
bundle.manifest feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
bundle.sh feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
check-bench-regression.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
check-workflow-dispatch-inputs.py fix(release): restore release helper executable bits 2026-03-26 12:26:55 +00:00
check_telemetry_schema_parity.py Add privacy-safe telemetry lifecycle and outcome signals 2026-07-23 01:10:38 +01:00
clean-mock-alerts.sh Route mock alert cleanup through managed runtime 2026-03-24 15:49:29 +00:00
cleanup.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cloud-backup.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
com.pulse.hot-dev.plist.template feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conformance-smoke.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
demo_public_browser_smoke.cjs Harden demo public browser smoke readiness 2026-04-12 17:07:50 +01:00
dev-check.sh Switch script-reference integrity test from rg to git grep for portable CI 2026-05-12 00:30:43 +01:00
dev-deploy-agent.sh Harden dev agent deploy SSH host verification 2026-04-22 11:41:50 +01:00
dev-launchd-setup.sh Prefer managed runtime controls in launchd helper 2026-03-24 16:01:14 +00:00
dev-launchd-wrapper.sh Supervise launchd dev runtime through hot-dev-bg 2026-03-24 15:39:55 +00:00
dev-prepush.sh Parallelize Build and Test and add a local pre-push check 2026-07-29 14:32:01 +01:00
docker-build.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
ensure_test_assets.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
exclusive-lock.mjs feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
generate-pulse-intelligence-docs.go backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
generate-release-notes.sh Add in-app release highlights 2026-07-13 18:30:29 +01:00
generate-self-hosted-feature-catalog.go Format generated self-hosted feature catalog with prettier in the generator 2026-07-27 11:58:05 +01:00
generate-types.go feat(assistant): mid-turn steering of the running response 2026-07-12 23:01:40 +01:00
hot-dev-bg.sh backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
hot-dev.sh Build canonical Patrol attention workbench 2026-07-19 15:11:01 +01:00
install-container-agent.sh Restore Docker agents to Hosts inventory 2026-07-23 22:06:56 +01:00
install-docker.sh Prepare v6.2.0-rc.6 release 2026-08-01 21:19:59 +01:00
install-go-toolchain.sh Modernize Unified Agent lifecycle and platform support 2026-07-09 23:20:35 +01:00
install-mcp.ps1 Stop install-mcp scripts from linking to GitHub blob/main docs 2026-05-11 23:58:45 +01:00
install-mcp.sh Stop install-mcp scripts from linking to GitHub blob/main docs 2026-05-11 23:58:45 +01:00
install.ps1 Run the Windows installer TLS callback off a compiled type 2026-08-02 13:12:17 +01:00
install.sh fix(agent): prevent duplicate QNAP watchdogs (#1617) 2026-07-30 00:40:27 +01:00
package-helm-chart.sh release: prepare v4.25.0 2025-10-22 10:46:18 +00:00
patrol_e2e_matrix.sh feat(patrol): implement patrol findings, evaluation, and investigation logic 2026-01-31 16:23:08 +00:00
pulse-auto-update.sh Fix auto-update leaving service down after installer failure 2026-07-27 09:38:37 +01:00
release_asset_common.sh Fix release key helper module path 2026-05-04 09:44:41 +01:00
release_candidate_manifest.py Build releases once and promote verified candidates 2026-07-09 22:21:34 +01:00
release_ldflags.sh Require signed unified agent release assets 2026-04-22 02:00:29 +01:00
release_update_key.go Fix v6 demo release signing key deployment 2026-05-05 21:40:14 +01:00
remerge-parallel.sh Align v6 release branch governance 2026-03-19 10:18:45 +00:00
render_installers.go Fix RC3 backend release blockers 2026-05-01 21:36:28 +01:00
repo-boundary-paid-surface.allowlist Fix companion compatibility CI 2026-07-29 20:09:23 +01:00
repo-boundary-private-implementation.baseline Ratchet private boundary audit debt 2026-07-29 20:09:23 +01:00
run_cloud_public_signup_smoke.sh Add Pulse Cloud public signup smoke 2026-04-23 23:09:10 +01:00
run_demo_public_browser_smoke.sh Add public browser smoke proof to demo workflows 2026-04-11 13:50:00 +01:00
run_hosted_staging_smoke.sh Auto-select hosted staging tenant 2026-04-15 12:23:57 +01:00
session-handoff.sh feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
standalone.manifest Prepare v6.2.0-rc.4 release 2026-07-29 14:49:51 +01:00
sync-production-config.sh chore: update dev scripts and mock configuration 2026-01-22 22:32:45 +00:00
sync_chart_release_metadata.py fix(deploy): pin docs links to release refs 2026-03-28 21:32:11 +00:00
telemetry_adoption_report.py Fix alert and notification telemetry signals 2026-07-29 14:17:19 +01:00
test-vm-disk.sh Update Proxmox guest agent permissions docs and tooling (refs #548) 2025-10-14 10:21:52 +00:00
toggle-mock.sh fix(mock): backfill the metrics store in mock mode so reports get real history 2026-06-10 21:25:02 +01:00
trigger-release-dry-run.sh Record v6.1.0 unsigned Windows exception 2026-07-22 15:37:48 +01:00
trigger-release.sh Record v6.1.0 unsigned Windows exception 2026-07-22 15:37:48 +01:00
trigger-stable-patch.sh Fix stable patch workflow dispatch input types 2026-07-23 13:31:31 +01:00
uninstall-sensor-proxy.sh Prepare v6.0.0 release candidate 2026-06-04 14:07:14 +01:00
validate-published-release.sh Publish signed release-packet SBOM assets 2026-04-22 16:49:29 +01:00
validate-release.sh Delete the unreachable adapter Execute/Rollback update path and the unused UpdateQueue 2026-07-10 01:14:40 +01:00