Files
pulse/docs/release-control/v6/internal/status.json
T
rcourtman 8ea94d792b Add the Patrol weekly digest endpoint
Nothing in Pulse showed a paying customer what Patrol had done for them:
about 164 runs a month per install, findings raised, investigations and
fixes, and none of it summarised. GET /api/ai/patrol/digest rolls the last
N days (default 7, max 30) up from records Pulse already keeps: run
history, the findings store, Patrol-origin action audits, and the usage
cost store. It adds no telemetry and persists nothing. The payload
reports when the bounded run history no longer covers the window and when
model pricing is unknown, rather than quietly under-counting.

This is the first slice of the "Patrol weekly digest" named bet in the
pulse-pro demand ledger; the in-app "This week" card follows once its
browser pass is recorded. docs/PATROL_WEEKLY_DIGEST.md holds the design
note and the honest limits of each line.

status.json registers the patrol-value-visibility coverage gap, the
candidate lane, and its work claim. It also drops the second, identical
copy of the ai-provider-guided-setup coverage gap that landed with #1853;
the duplicate id fails the status audit on main for every pull request.
2026-09-02 08:53:50 +01:00

11249 lines
401 KiB
JSON

{
"version": "6.0",
"updated_at": "2026-08-08",
"scope": {
"active_repos": [
"pulse",
"pulse-enterprise",
"pulse-mobile",
"pulse-pro"
],
"control_plane_repo": "pulse",
"ignored_repos": [
"pulse-5.1.x",
"pulse-refactor-streams"
],
"repo_catalog": [
{
"id": "pulse",
"purpose": "Core desktop/runtime repo and canonical Pulse v6 release-control authority.",
"visibility": "public"
},
{
"id": "pulse-enterprise",
"purpose": "Closed-source enterprise and paid runtime features that should not ship as open-source surfaces.",
"visibility": "private"
},
{
"id": "pulse-mobile",
"purpose": "Mobile client, mobile relay flows, approval UX, and device-local auth/state handling.",
"visibility": "private"
},
{
"id": "pulse-pro",
"purpose": "Financial, operational, checkout, license-server, and relay-server surfaces that back commercial flows.",
"visibility": "private"
}
]
},
"source_precedence": [
"docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"docs/release-control/v6/internal/status.json",
"docs/release-control/v6/status.schema.json",
"docs/release-control/v6/internal/CANONICAL_DEVELOPMENT_PROTOCOL.md",
"docs/release-control/v6/internal/subsystems/registry.json",
"docs/release-control/v6/internal/subsystems/registry.schema.json"
],
"execution_model": "direct-repo-sessions",
"readiness": {
"repo_ready_rule": "all lanes target-met and evidence-present plus all repo-ready assertions passed",
"rc_ready_rule": "repo_ready plus all rc-ready assertions passed plus zero rc-ready open_decisions plus all rc-ready release_gates passed",
"release_ready_rule": "rc_ready plus all release-ready assertions passed plus zero release-ready open_decisions plus all release-ready release_gates passed"
},
"readiness_assertions": [
{
"id": "RA1",
"summary": "Governed surfaces that should use the unified resource model do not keep shipping on legacy equivalents.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L13"
],
"subsystem_ids": [
"api-contracts",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra1-unified-resource-guardrails",
"run": [
"go",
"test",
"./internal/unifiedresources",
"-run",
"TestNoDirectStateAccessForMigratedResources|TestNoLegacyHostResourceTypeSymbol|TestNoLegacyMigrationHintsInRuntimeCode|TestV6AgentRegistrationArtifactsStayCanonical|TestV6BroadLegacyAliasCoverage|TestV6ReleaseFacingAPITestsCoverLegacyHostRejection|TestV6DirectHostAliasValidatorCoverage",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "cmd/pulse-agent/main.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "cmd/pulse-agent/observers_config_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "cmd/pulse-agent/service_windows.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.workloads-link.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/hooks/__tests__/useUnifiedResources.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/code_standards_test.go",
"kind": "file"
}
]
},
{
"id": "RA2",
"summary": "New users can complete Pulse Pro Relay signup through paid activation without manual operator intervention or ambiguous provisioning steps.",
"kind": "journey",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L2",
"L3",
"L8",
"L12"
],
"subsystem_ids": [
"cloud-paid",
"frontend-primitives"
],
"release_gate_ids": [
"hosted-signup-billing-replay"
],
"proof_commands": [
{
"id": "hosted-signup-api-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestContract_HostedMagicLinkRequestValidatesOriginBeforeMutation|TestHostedLifecycle|TestHostedSignupSuccess|TestHostedSignupValidationFailures|TestHostedSignupHostedModeGate|TestHostedSignupRateLimit|TestHostedSignupRateLimit_NoProvisioningSideEffects|TestHostedSignupCleanupOnRBACFailure|TestHostedSignupFailsClosedWithoutPublicURL|TestStripeWebhook_CheckoutMagicLinkValidatesOriginBeforeMutation",
"-count=1"
]
},
{
"id": "hosted-signup-provisioner-tests",
"run": [
"go",
"test",
"./internal/hosted",
"-run",
"TestProvisionTenantSuccess|TestProvisionTenantIdempotentDuplicateEmail|TestProvisionTenantIdempotentDuplicateEmailCaseInsensitive|TestProvisionTenantValidationFailures|TestProvisionTenantPartialFailureRollback|TestProvisionHostedSignupSuccess",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-production-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-production-fixed-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/BillingAdminPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/hosted_lifecycle_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/hosted_signup_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/stripe_webhook_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hosted/provisioner_test.go",
"kind": "file"
}
]
},
{
"id": "RA3",
"summary": "After first successful entitlement activation, Pulse preserves paid state across supported sessions and upgrades without repeated license entry.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L3",
"L5",
"L8"
],
"subsystem_ids": [
"cloud-paid",
"frontend-primitives"
],
"release_gate_ids": [
"paid-feature-entitlement-gating",
"upgrade-state-and-entitlement-preservation"
],
"proof_commands": [
{
"id": "entitlement-gating-api-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestHandleActivateLicense_ExchangesLegacyJWTInStrictV6|TestHandleActivateLicense_ClearsCommercialMigrationStateOnNativeActivation|TestHandleActivateLicense_ActivationKeyClearsStaleLegacyPersistence|TestGetTenantComponents_AutoExchangesPersistedLegacyJWT|TestGetTenantComponents_SkipsExchange_WhenActivationStateExists|TestGetTenantComponents_PersistsCommercialMigrationState_WhenAutoExchangeFails|TestRequireLicenseFeature_HostedEntitlementsBlockMissingFeature|TestRequireLicenseFeature_HostedEntitlementsAllowGrantedFeature|TestLicenseGatedEmptyResponse_HostedEntitlementsReturnEmptyArrayWhenLocked",
"-count=1"
]
},
{
"id": "upgrade-state-migration-tests",
"run": [
"go",
"test",
"./tests/migration",
"-run",
"TestV5PaidLicenseUpgrade_CommercialMigrationFailureMatrix|TestV5PaidLicenseUpgrade_RealLicenseServerExchange|TestV5DataDir_CSRFLegacyMapFormat|TestV5DataDir_CSRFTokenFileContinuity|TestV5DataDir_SessionLegacyMapFormat|TestV5DataDir_SessionTokenContinuity|TestV5DowngradeSafety|TestV5FullUpgradeScenario",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/upgrade-state-and-entitlement-preservation-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/license_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/licensing_handlers_auto_migrate_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_commercial_migration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_real_exchange_upgrade_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_session_db_test.go",
"kind": "file"
}
]
},
{
"id": "RA4",
"summary": "Typical end users cannot trivially unlock Pulse Pro features by stripping client-only checks while server and hosted entitlements still deny access.",
"kind": "trust-gate",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L2",
"L3",
"L6",
"L9",
"L12"
],
"subsystem_ids": [
"api-contracts",
"cloud-paid"
],
"release_gate_ids": [
"paid-feature-entitlement-gating"
],
"proof_commands": [
{
"id": "entitlement-gating-api-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestHandleActivateLicense_ExchangesLegacyJWTInStrictV6|TestHandleActivateLicense_ClearsCommercialMigrationStateOnNativeActivation|TestHandleActivateLicense_ActivationKeyClearsStaleLegacyPersistence|TestGetTenantComponents_AutoExchangesPersistedLegacyJWT|TestGetTenantComponents_SkipsExchange_WhenActivationStateExists|TestGetTenantComponents_PersistsCommercialMigrationState_WhenAutoExchangeFails|TestRequireLicenseFeature_HostedEntitlementsBlockMissingFeature|TestRequireLicenseFeature_HostedEntitlementsAllowGrantedFeature|TestLicenseGatedEmptyResponse_HostedEntitlementsReturnEmptyArrayWhenLocked",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/__tests__/AIIntelligence.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/license_handlers_test.go",
"kind": "file"
}
]
},
{
"id": "RA5",
"summary": "Ordinary free self-hosted v6 sessions see reactive commercial surfaces (visible paid-feature navigation with panel-owned inline gates, gate CTAs, discoverable Plans & Billing) plus exactly one proactive one-shot business-estate card gated to authenticated sessions; demo mode and white-label runtimes hide all commercial surfaces, the business-estate signal never rides the pre-auth policy, and trial ceremony plus hosted handoff stay absent.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L2",
"L3",
"L8",
"L9",
"L12"
],
"subsystem_ids": [
"cloud-paid",
"frontend-primitives"
],
"release_gate_ids": [
"paid-feature-entitlement-gating"
],
"proof_commands": [
{
"id": "frontend-paid-surface-visibility-tests",
"cwd": "frontend-modern",
"run": [
"npm",
"test",
"--",
"--run",
"src/stores/__tests__/sessionPresentationPolicy.test.ts",
"src/stores/__tests__/license.test.ts",
"src/components/Settings/__tests__/ProLicensePanel.test.tsx",
"src/utils/__tests__/licensePresentation.test.ts",
"src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"src/components/Settings/__tests__/settingsNavigation.integration.test.tsx",
"src/components/Settings/__tests__/AISettings.test.tsx",
"src/components/Settings/__tests__/ReportingPanel.test.tsx",
"src/components/Settings/__tests__/RelaySettingsPanel.runtime.test.tsx",
"src/components/Settings/__tests__/AgentProfilesPanel.test.tsx",
"src/components/Infrastructure/deploy/__tests__/ConfirmStep.test.tsx",
"src/utils/__tests__/deployStatusPresentation.test.ts",
"src/components/shared/__tests__/HistoryChart.test.tsx",
"src/components/shared/__tests__/TrialBanner.test.tsx",
"src/pages/__tests__/AIIntelligence.test.tsx",
"src/features/patrol/__tests__/patrolCommercialBoundary.test.ts"
]
},
{
"id": "self-hosted-paid-prompt-browser-visibility",
"run": [
"env",
"PULSE_E2E_USE_LOCAL_BACKEND=1",
"npm",
"--prefix",
"tests/integration",
"test",
"--",
"tests/58-self-hosted-trial-rate-limit-ui.spec.ts",
"--project=chromium"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-surfaces-revision-2026-08-07.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/ProLicensePanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/settingsNavigation.integration.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useProLicensePanelState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/__tests__/AIIntelligence.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/__tests__/sessionPresentationPolicy.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/licenseCommercial.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/sessionPresentationPolicy.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/58-self-hosted-trial-rate-limit-ui.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA6",
"summary": "Supported upgrades preserve core state, entitlements, and first-session continuity without manual repair steps.",
"kind": "journey",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L3",
"L5",
"L8"
],
"subsystem_ids": [
"cloud-paid",
"frontend-primitives"
],
"release_gate_ids": [
"upgrade-state-and-entitlement-preservation"
],
"proof_commands": [
{
"id": "csrf-state-migration-api-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestCSRFTokenStore_Load_CurrentFormat_SkipsNilAndExpired|TestCSRFTokenStore_Load_MigratesLegacyFormat",
"-count=1"
]
},
{
"id": "upgrade-state-migration-tests",
"run": [
"go",
"test",
"./tests/migration",
"-run",
"TestV5PaidLicenseUpgrade_CommercialMigrationFailureMatrix|TestV5PaidLicenseUpgrade_RealLicenseServerExchange|TestV5DataDir_CSRFLegacyMapFormat|TestV5DataDir_CSRFTokenFileContinuity|TestV5DataDir_SessionLegacyMapFormat|TestV5DataDir_SessionTokenContinuity|TestV5DowngradeSafety|TestV5FullUpgradeScenario",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/upgrade-state-and-entitlement-preservation-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/csrf_store_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/licensing_handlers_auto_migrate_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/11-first-session.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_full_upgrade_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_real_exchange_upgrade_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_session_db_test.go",
"kind": "file"
}
]
},
{
"id": "RA7",
"summary": "Monitored-system volume caps are retired end to end: runtime writes admit infrastructure regardless of stale plan-limit metadata, entitlements scrub retired monitored-system limits, and UI surfaces use monitored-system counts only for informational billing/support context.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L2",
"L3",
"L6",
"L8",
"L12",
"L16"
],
"subsystem_ids": [
"api-contracts",
"cloud-paid",
"frontend-primitives"
],
"release_gate_ids": [
"paid-feature-entitlement-gating"
],
"proof_commands": [
{
"id": "monitored-system-allocation-backend-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestHandleAddNode_AllowsNewCountedSystemWithCapsRetired|TestHandleAutoRegister_AllowsNewCountedSystemWithCapsRetired|TestDockerAgentHandlers_HandleReport_AllowsNewMonitoredSystemWithCapsRetired|TestKubernetesAgentHandlers_HandleReport_AllowsNewMonitoredSystemWithCapsRetired|TestUnifiedAgentHandlers_HandleReport_AllowsNewHostsWithCapsRetired|TestHandleCreateJob_AcceptsAllTargetsWithMonitoredSystemCapsRetired|TestContract_DeployHandlersDoNotSurfaceLicenseSlotCapacityCopy|TestBuildEntitlementPayloadWithUsage_CurrentValues",
"-count=1"
]
},
{
"cwd": "frontend-modern",
"id": "monitored-system-allocation-frontend-tests",
"run": [
"npm",
"test",
"--",
"--run",
"src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx",
"src/components/Settings/__tests__/ProLicensePanel.test.tsx",
"src/components/Settings/__tests__/MonitoredSystemLedgerPanel.test.tsx",
"src/components/Infrastructure/deploy/__tests__/ConfirmStep.test.tsx",
"src/hooks/__tests__/useDeployWizard.test.ts"
]
},
{
"id": "monitored-system-allocation-limit-contract-tests",
"run": [
"go",
"test",
"./pkg/licensing",
"-run",
"TestClaims_EffectiveLimitsScrubsRetiredCloudPlanMonitoringLimit|TestLicenseStatusJSON_OmitsRetiredMonitoredSystemFields|TestBuildEntitlementPayload_ActiveLicenseOmitsRetiredMonitoredSystemLimit|TestNormalizeBillingState_ScrubsRetiredMonitoredSystemLimitAliases",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_handlers_add_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_handlers_auto_register_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/deploy_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/docker_agents_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/entitlement_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/kubernetes_agents_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/truenas_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/unified_agent_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/licensing/features_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/licensing/monitored_system_limit_test.go",
"kind": "file"
}
]
},
{
"id": "RA8",
"summary": "Stable or GA promotion and any production v6 public checkout flip happen only after an exercised RC, live release-pipeline proof, a recorded rollback target, a written v5 maintenance-only support policy, a coherent self-hosted commercial package, and explicit owner-approved launch execution.",
"kind": "trust-gate",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L1",
"L2",
"L9",
"L11",
"L12",
"L17"
],
"subsystem_ids": [],
"release_gate_ids": [
"known-rc-issue-closure-for-ga",
"rc-to-ga-promotion-readiness",
"self-hosted-commercial-ga-coherence"
],
"proof_commands": [
{
"id": "release-promotion-policy-tests",
"run": [
"python3",
"scripts/release_control/release_promotion_policy_test.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": ".github/workflows/release-dry-run.yml",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/PRE_RELEASE_CHECKLIST.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/RC_TO_GA_REHEARSAL_TEMPLATE.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/current-branch-ga-owner-approval-2026-07-02.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/current-branch-ga-release-policy-2026-07-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-blocked-2026-04-21.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pre-ga-public-checkout-posture-2026-06-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-26.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-28.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-04-20.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-06-04.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-blocked-2026-03-26.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-ga-coherence-2026-04-20.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/RELEASE_PROMOTION_POLICY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/V5_MAINTENANCE_SUPPORT_POLICY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/release_promotion_policy_test.py",
"kind": "file"
}
]
},
{
"id": "RA9",
"summary": "A real v5-installed Pulse Unified Agent upgrades through v6 release assets into one canonical v6 pulse-agent identity, preserves one-shot update continuity metadata, keeps self-update preflight token handling out of argv, keeps legacy persisted host-agent token scopes valid at the v6 canonical agent endpoints, and does not drift agent-count or fallback behavior during the crossover.",
"kind": "journey",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L11",
"L12",
"L16"
],
"subsystem_ids": [
"agent-lifecycle"
],
"release_gate_ids": [
"unified-agent-v5-upgrade-continuity"
],
"proof_commands": [
{
"id": "unified-agent-first-report-continuity-tests",
"run": [
"go",
"test",
"./internal/hostagent",
"-run",
"TestNew_CarriesUpdatedFromIntoFirstV6Report|TestAgentSendReport_SetsHeadersAndPostsJSON",
"-count=1"
]
},
{
"id": "unified-agent-install-fallback-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestDownloadUnifiedInstallScript|TestDownloadUnifiedInstallScriptPS|TestProxyInstallScriptFromGitHub|TestContract_InstallScriptReleaseAssetURL|TestDownloadUnifiedAgent|TestUnifiedAgentHandlers_LegacyV5ReportUpgradesToSingleCanonicalUnifiedAgent|TestUnifiedAgentEndpointsAcceptLegacyUnifiedAgentReportScopeAlias|TestNormalizeRequestedScopesCanonicalizesLegacyUnifiedAgentAliases|TestContract_APITokenScopeAliasNormalization",
"-count=1"
]
},
{
"id": "unified-agent-update-handoff-tests",
"run": [
"go",
"test",
"./internal/agentupdate",
"-run",
"TestCheckAndUpdateToFirstHostReportCarriesPreviousVersionOnce|TestUpdateToFirstHostReportCarriesPreviousVersionOnce|TestPerformUpdatePersistsPreviousVersionForNextStart|TestRunDownloadedBinarySelfTestUsesTokenFile|TestRunDownloadedBinarySelfTestPropagatesFailureWithoutTokenArg|TestPerformUpdateSelfTestFailurePreservesCurrentBinary",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/unified-agent-v5-upgrade-continuity-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentupdate/coverage_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentupdate/update_hostagent_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_regression_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_tokens_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/unified_agent_more_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/unified_agent_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/unified_agent_upgrade_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/api_tokens_coverage_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/agent_new_test.go",
"kind": "file"
}
]
},
{
"id": "RA10",
"summary": "Active Pulse v6 guidance reflects the current governed behavior of the codebase, and legacy or historical documentation does not remain part of the active v6 guidance surface.",
"kind": "invariant",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L9"
],
"subsystem_ids": [],
"release_gate_ids": [
"documentation-currentness-and-legacy-cleanup"
],
"proof_commands": [
{
"id": "documentation-currentness-tests",
"run": [
"python3",
"scripts/release_control/documentation_currentness_test.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/control_plane.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/internal/CONTROL_PLANE.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/CANONICAL_DEVELOPMENT_PROTOCOL.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-agent-security-2026-05-04.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/README.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/documentation_currentness_test.py",
"kind": "file"
}
]
},
{
"id": "RA11",
"summary": "Pulse Hosted works as a real offered v6 tier: customers can sign up or sign in to a hosted tenant, enter a working hosted runtime, and use hosted billing/admin surfaces without self-hosted fallback paths or broken post-provisioning behavior.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L3",
"L4",
"L12",
"L17"
],
"subsystem_ids": [
"cloud-paid"
],
"release_gate_ids": [
"cloud-hosted-tier-runtime-readiness"
],
"proof_commands": [
{
"id": "cloud-hosted-tier-runtime-api",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestContract_HostedMagicLinkRequestValidatesOriginBeforeMutation|TestHostedLifecycle|TestHostedOrgAdminHandlers|TestHostedSignupSuccess|TestHostedSignupValidationFailures|TestHostedSignupHostedModeGate|TestHostedSignupRateLimit|TestHostedSignupRateLimit_NoProvisioningSideEffects|TestHostedSignupCleanupOnRBACFailure|TestHostedSignupFailsClosedWithoutPublicURL|TestStripeWebhook_",
"-count=1"
]
},
{
"id": "cloud-hosted-tier-runtime-frontend",
"run": [
"npx",
"vitest",
"run",
"src/pages/__tests__/HostedSignup.test.tsx",
"src/components/Settings/__tests__/BillingAdminPanel.test.tsx",
"src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx"
],
"cwd": "frontend-modern"
},
{
"id": "cloud-hosted-tier-runtime-go",
"run": [
"go",
"test",
"./internal/cloudcp/...",
"./internal/hosted/...",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-fixed-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-followup-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-recovered-2026-03-26.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-remediated-2026-04-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-runtime-build-contract-2026-04-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-storage-blocker-2026-04-23.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-storage-guardrails-production-2026-04-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/BillingAdminPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/hosted_lifecycle_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/hosted_org_admin_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/hosted_signup_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/stripe_webhook_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/stripe/cloud_lifecycle_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hosted/provisioner_test.go",
"kind": "file"
}
]
},
{
"id": "RA12",
"summary": "Multi-tenant Pulse is sound: tenant isolation, organization membership, RBAC scope, tenant-scoped runtime state, sharing, and migration all fail closed outside the intended tenant boundary instead of partially behaving like a single-tenant system.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L4",
"L6",
"L12",
"L13",
"L14",
"L17"
],
"subsystem_ids": [
"api-contracts",
"monitoring",
"organization-settings"
],
"release_gate_ids": [
"multi-tenant-runtime-isolation-and-coherence"
],
"proof_commands": [
{
"id": "multi-tenant-runtime-api",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestOrgHandlers|TestMultiTenant|TestResourceHandlers_NonDefaultOrg|TestSetMultiTenantMonitor_WiresHandlers|TestMultiTenantStateProvider|TestMultiTenantAPITokenRemainsScopedToIssuingOrg",
"-count=1"
]
},
{
"id": "multi-tenant-runtime-frontend",
"run": [
"npx",
"vitest",
"run",
"src/components/Settings/__tests__/OrganizationSharingPanel.test.tsx",
"src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"src/utils/__tests__/rbacPermissions.test.ts",
"src/utils/__tests__/rbacPresentation.test.ts",
"src/utils/__tests__/organizationRolePresentation.test.ts",
"src/utils/__tests__/organizationSettingsPresentation.test.ts"
],
"cwd": "frontend-modern"
},
{
"id": "multi-tenant-runtime-migration",
"run": [
"go",
"test",
"./tests/migration",
"-run",
"TestV5DataDir_MultiTenantMigration",
"-count=1"
]
},
{
"id": "multi-tenant-runtime-monitoring",
"run": [
"go",
"test",
"./internal/monitoring",
"-run",
"TestMultiTenantMonitor",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/multi-tenant-runtime-isolation-and-coherence-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/organization-settings.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationSharingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationRolePresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationSettingsPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/rbacPermissions.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/rbacPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/api_token_org_scope_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/org_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/rbac_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources_tenant_security_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/router_helpers_more_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/multi_tenant_monitor_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/03-multi-tenant.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_to_v6_test.go",
"kind": "file"
}
]
},
{
"id": "RA13",
"summary": "MSP support works as a real v6 product mode: one provider account can onboard, view, and manage multiple client tenants from one control surface with canonical MSP plan handling and without cross-client leakage, scope confusion, or per-client operational drift.",
"kind": "journey",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L3",
"L4",
"L12",
"L17"
],
"subsystem_ids": [
"cloud-paid"
],
"release_gate_ids": [
"msp-provider-tenant-management"
],
"proof_commands": [
{
"id": "msp-account-and-registry-tests",
"run": [
"go",
"test",
"./internal/cloudcp/account",
"./internal/cloudcp/registry",
"-count=1"
]
},
{
"id": "msp-frontend-tests",
"run": [
"npx",
"vitest",
"run",
"src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx",
"src/pages/__tests__/CloudPricing.test.tsx"
],
"cwd": "frontend-modern"
},
{
"id": "msp-lifecycle-tests",
"run": [
"go",
"test",
"./internal/cloudcp/stripe",
"-run",
"TestMSPLifecycle_AccountToPortal",
"-count=1"
]
},
{
"id": "msp-plan-guardrails",
"run": [
"go",
"test",
"./internal/cloudcp",
"./pkg/licensing",
"-run",
"TestPublicCloudSignupCheckoutMetadataRejectsMSPPlanForPublicSignup|TestMSPPlanAliasCanonicalizationContract",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-fixed-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-followup-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationBillingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/account/handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/public_cloud_signup_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/registry/registry_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/stripe/msp_lifecycle_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/licensing/grant_claims_contract_test.go",
"kind": "file"
}
]
},
{
"id": "RA14",
"summary": "API tokens remain least-privilege and correctly scoped: every token stays bound to its intended user, org, and scope, cannot silently widen authority through legacy alias handling, and stops working when revoked.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L1",
"L6",
"L11",
"L14",
"L16"
],
"subsystem_ids": [
"agent-lifecycle",
"api-contracts",
"security-privacy"
],
"release_gate_ids": [
"api-token-scope-and-assignment"
],
"proof_commands": [
{
"id": "api-token-scope-backend",
"run": [
"go",
"test",
"./internal/api",
"-run",
"Test(APIToken|SecurityTokens|SystemSettings|MultiTenant)|TestNormalizeRequestedScopesCanonicalizesLegacyUnifiedAgentAliases|TestUnifiedAgentEndpointsRequireAgentReportScope|TestUnifiedAgentEndpointsAcceptLegacyUnifiedAgentReportScopeAlias|TestMultiTenantAPITokenRemainsScopedToIssuingOrg|TestContract_APITokenScopeAliasNormalization",
"-count=1"
]
},
{
"id": "api-token-scope-frontend",
"run": [
"npx",
"vitest",
"run",
"src/components/Settings/__tests__/APITokenManager.test.tsx",
"src/utils/__tests__/apiClient.org.test.ts",
"src/utils/__tests__/apiTokenPresentation.test.ts"
],
"cwd": "frontend-modern"
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/api-token-scope-and-assignment-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/security.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/APITokenManager.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/apiClient.org.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/apiTokenPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/api_token_org_scope_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_regression_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_status_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_tokens_owner_binding_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_tokens_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/system_settings_telemetry_test.go",
"kind": "file"
}
]
},
{
"id": "RA15",
"summary": "Assigned user privileges fail closed: a user cannot view, mutate, or destroy anything beyond the permissions granted by their effective organization membership and role, including cross-org and destructive paths.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L4",
"L6",
"L12",
"L14",
"L17"
],
"subsystem_ids": [
"api-contracts",
"organization-settings"
],
"release_gate_ids": [
"organization-user-scope-and-rbac"
],
"proof_commands": [
{
"id": "user-privilege-backend",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestOrgHandlersViewerCannotManageOrg|TestOrgHandlersTokenListAllowedButWriteForbidden|TestOrgHandlersCrossOrgIsolation|TestOrgHandlersShareIsolationAcrossOrganizations|TestMultiTenantRBACRoleUpdateChangesPermissions",
"-count=1"
]
},
{
"id": "user-privilege-frontend",
"run": [
"npx",
"vitest",
"run",
"src/components/Settings/__tests__/OrganizationSharingPanel.test.tsx",
"src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"src/utils/__tests__/organizationRolePresentation.test.ts",
"src/utils/__tests__/organizationSettingsPresentation.test.ts",
"src/utils/__tests__/rbacPermissions.test.ts",
"src/utils/__tests__/rbacPresentation.test.ts"
],
"cwd": "frontend-modern"
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/organization-user-scope-and-rbac-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationSharingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationRolePresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationSettingsPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/rbacPermissions.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/rbacPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/org_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/rbac_handlers_test.go",
"kind": "file"
}
]
},
{
"id": "RA16",
"summary": "Commercial continuity fails closed across cancellation and re-entry: active grandfathered v5 recurring customers keep their legacy recurring price plus uncapped self-hosted monitoring and child-resource volume only while the subscription remains continuous, cancellation revokes paid access cleanly, and any later re-entry uses current public v6 pricing rather than reviving grandfathered terms.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L2",
"L3",
"L11",
"L12"
],
"subsystem_ids": [
"cloud-paid"
],
"release_gate_ids": [
"commercial-cancellation-reactivation"
],
"proof_commands": [
{
"id": "commercial-cancellation-reactivation-proof",
"run": [
"python3",
"scripts/release_control/internal/commercial_cancellation_reactivation_proof.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/COMMERCIAL_CANCELLATION_REACTIVATION_E2E_TEST_PLAN.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-cancellation-reactivation-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-cancellation-reactivation-external-e2e-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/ProLicensePanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/licensing/billing_state_normalization_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/internal/commercial_cancellation_reactivation_proof.py",
"kind": "file"
}
]
},
{
"id": "RA17",
"summary": "Pulse Mobile access stays coherent against a real Pulse instance: pairing, secure persistence, relay reconnect, approval flows, and auth or revocation transitions recover cleanly and fail closed instead of leaving stale mobile access behind.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L5",
"L6",
"L7",
"L12"
],
"subsystem_ids": [
"api-contracts",
"relay-runtime"
],
"release_gate_ids": [
"mobile-relay-auth-approvals"
],
"proof_commands": [
{
"id": "mobile-relay-auth-approvals-proof",
"run": [
"python3",
"scripts/release_control/internal/mobile_relay_auth_approvals_proof.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/mobile-relay-auth-approvals-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/internal/mobile_relay_auth_approvals_proof.py",
"kind": "file"
},
{
"repo": "pulse-enterprise",
"path": "internal/aiautofix/handlers_test.go",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/__tests__/mobileRelayAuthApprovals.rehearsal.test.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/hooks/__tests__/useRelayLifecycle.test.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/stores/__tests__/approvalStore.test.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/stores/__tests__/authStore.test.ts",
"kind": "file"
}
]
},
{
"id": "RA18",
"summary": "Relay runtime remains resilient under registration and reconnect pressure: fresh registration, reconnect, stale-session recovery, and disconnect drain all recover predictably without stranding clients in resume loops, dead sessions, or lost inflight work.",
"kind": "invariant",
"blocking_level": "rc-ready",
"proof_type": "hybrid",
"lane_ids": [
"L5",
"L6",
"L7",
"L12"
],
"subsystem_ids": [
"api-contracts",
"relay-runtime"
],
"release_gate_ids": [
"relay-registration-reconnect-drain"
],
"proof_commands": [
{
"id": "relay-registration-reconnect-drain-proof",
"run": [
"python3",
"scripts/release_control/internal/relay_registration_reconnect_drain_proof.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/relay-registration-reconnect-drain-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RelaySettingsPanel.runtime.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/relay/client_managed_runtime_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/internal/relay_registration_reconnect_drain_proof.py",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/relay/__tests__/client-hardening.test.ts",
"kind": "file"
}
]
},
{
"id": "RA19",
"summary": "Comparable Pulse settings surfaces use the canonical settings page-shell contract: shared SettingsPanel framing, consistent header structure, and no ad hoc top-level layout chrome unless explicitly approved.",
"kind": "invariant",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L8"
],
"subsystem_ids": [
"frontend-primitives"
],
"release_gate_ids": [
"settings-surface-layout-consistency"
],
"proof_commands": [
{
"id": "settings-architecture-guardrails",
"cwd": "frontend-modern",
"run": [
"npx",
"vitest",
"run",
"src/components/Settings/__tests__/settingsArchitecture.test.ts"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/settings-surface-layout-consistency-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/settingsArchitecture.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/15-settings-shell-consistency.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA20",
"summary": "Pulse's TrueNAS support claim is bounded to the current API-first floor: onboarding is through platform connections without requiring unified-agent bootstrap; native pool, vdev, dataset, disk, app, and recovery evidence projects into the canonical resource, health, alert-lifecycle, history, and recommendation contracts without inferring failure or recovery from unknown telemetry; Assistant support is read-first with bounded app control; broader TrueNAS administration is not part of the current floor.",
"kind": "invariant",
"blocking_level": "release-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L9",
"L13",
"L15"
],
"subsystem_ids": [
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "truenas-api-contract-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestTrueNASHandlers_",
"-count=1"
]
},
{
"id": "truenas-pool-health-contract-tests",
"run": [
"go",
"test",
"./internal/alerts",
"./internal/api",
"./internal/monitoring",
"./internal/storagehealth",
"./internal/truenas",
"./internal/unifiedresources",
"-run",
"TestAssessZFSPool|TestCephBuildClusterPreservesNativeHealthChecks|TestCephUnknownHealthDoesNotInventIncident|TestCephUsesNativeClusterEvidenceThroughPoolHealthContract|TestNativeTrueNASPoolAlertSuppressesEquivalentSyntheticSignalsOnly|TestParsePoolStatePreservesScanTopologyErrorsAndNativeMissingEvidence|TestProviderProjectsFullZFSHealthAndActionableDatasetAppIncidents|TestResourceListPreservesCanonicalPoolHealthEvidence|TestTrueNASPollerKeepsPoolHealthConnectionLocalAcrossMatchingAppliances|TestUnifiedProviderIncident",
"-count=1"
]
},
{
"id": "truenas-runtime-floor-tests",
"run": [
"go",
"test",
"./internal/monitoring",
"./internal/recovery/mapper/truenas",
"./internal/truenas",
"-run",
"TestFeatureFlagDefaultsTrueNASOnUnlessExplicitlyDisabled|TestGetAppLogsUsesRPCSubscription|TestProviderGetAppConfigReturnsCanonicalApp|TestRegistryIngestRecordsTreatsTrueNASAsGenericDataSource|TestStartAndStopAppUseRPCMethods|TestTrueNASDiskRecordsPopulatePhysicalDiskMeta|TestTrueNASPollerGetAppConfigUsesTenantScopedProvider|TestTrueNASResourcesFlowThroughUnifiedTypesWithoutSpecialCasing",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-truenas-pool-health-2026-07-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/alerts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/monitoring.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Storage/__tests__/DiskList.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Storage/__tests__/Storage.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/hooks/__tests__/useUnifiedResources.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/hooks/__tests__/useWorkloads.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/truenas_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/truenas_poller_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/recovery/mapper/truenas/mapper_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/truenas/client_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/truenas/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/truenas/provider_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/evals/tasks/truenas-node-add.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/21-truenas-connections-workspace.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/28-truenas-alert-resource-links.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/68-platform-pages-shell.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA21",
"summary": "Legacy Pulse-hosted AI aliases are retired for v6 GA: settings and runtime payloads must clear `quickstart:*` model strings, fail closed on the retired provider, and route operators to BYOK or local-provider setup instead of a managed-model promise.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "quickstart-model-alias-browser-proof",
"cwd": "tests/integration",
"run": [
"/usr/bin/env",
"PULSE_E2E_SKIP_DOCKER=1",
"PULSE_E2E_USE_LOCAL_BACKEND=1",
"npm",
"test",
"--",
"tests/51-quickstart-cross-surface.spec.ts",
"--project=chromium"
]
},
{
"id": "quickstart-model-alias-contract-tests",
"run": [
"go",
"test",
"./internal/config",
"./internal/ai",
"./internal/api",
"-run",
"Quickstart|DefaultModelForProvider|HostedAISettings|HostedTenantAISettings|HandleGetPatrolStatus|AISettingsHandler_",
"-count=1"
]
},
{
"id": "quickstart-model-alias-frontend-tests",
"cwd": "frontend-modern",
"run": [
"npm",
"test",
"--",
"--run",
"src/components/Settings/__tests__/AISettings.test.tsx"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/AISettings.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/ai.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/51-quickstart-cross-surface.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA22",
"summary": "Pulse does not hardcode vendor BYOK model IDs into setup or runtime defaults: AI settings may submit credentials without a concrete model, and the backend must resolve and persist the effective provider model from the live provider catalog.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L3",
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "byok-model-resolution-browser-proof",
"cwd": "tests/integration",
"run": [
"/usr/bin/env",
"PULSE_E2E_USE_LOCAL_BACKEND=1",
"npm",
"test",
"--",
"tests/52-ai-settings-provider-setup.spec.ts",
"--project=chromium"
]
},
{
"id": "byok-model-resolution-contract-tests",
"run": [
"go",
"test",
"./internal/config",
"./internal/ai",
"./internal/api",
"-run",
"DefaultModelForProvider|AIConfig_GetModel|AIConfig_GetPreferredModelForProvider|SelectRecommendedProviderModel|Service_TestConnection_Extended|UpdateSettings_ResolvesProviderModelWhenOmitted|TestConnection_Ollama|TestProvider_Ollama|RouteTestConnection|AITestConnectionRouteWithValidScope|RouteTestProvider|AITestProviderRouteWithValidScope",
"-count=1"
]
},
{
"id": "byok-model-resolution-frontend-tests",
"cwd": "frontend-modern",
"run": [
"npm",
"test",
"--",
"--run",
"src/components/Settings/__tests__/AISettings.test.tsx"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/AISettings.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useAISettingsState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/model_resolution.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/model_resolution_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/ai.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/52-ai-settings-provider-setup.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA23",
"summary": "Patrol agentic execution keeps one stable execution identifier across retries, agentic turns, and evaluation so runtime traces and follow-up work describe a single Patrol run without depending on retired hosted quickstart billing.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "patrol-execution-identity-contract-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"./internal/ai",
"-run",
"ExecutePatrolStream|RunEvaluationPass|RetriesWithProviderDerivedSeedBudget",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service_patrol_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_ai.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_ai_more_test.go",
"kind": "file"
}
]
},
{
"id": "RA24",
"summary": "Docker release builds must keep the embedded frontend's shipped-doc inputs available inside the container build context: `Dockerfile` and `.dockerignore` jointly own staging `docs/**`, `SECURITY.md`, and `TERMS.md` so hosted runtime image builds do not depend on workstation-local files or silently drop public docs from the frontend embed sync.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L1"
],
"subsystem_ids": [
"deployment-installability"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "docker-release-build-shipped-doc-contract-tests",
"run": [
"go",
"test",
"./scripts/installtests",
"-run",
"TestDocker(AndDemoBuildsUseCanonicalReleaseLdflags|fileStagesShippedDocsForEmbeddedFrontendBuild)",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": ".dockerignore",
"kind": "file"
},
{
"repo": "pulse",
"path": "Dockerfile",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/deployment-installability.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/installtests/build_release_assets_test.go",
"kind": "file"
}
]
},
{
"id": "RA25",
"summary": "Hosted and self-hosted v6 AI bootstrap must stay BYOK/local-provider only: commercial billing state may authorize hosted tenancy, but it must not create quickstart credits, mint hosted-model tokens, or persist a managed-model AI config.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L3",
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"cloud-paid"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "hosted-ai-bootstrap-retirement-runtime-tests",
"run": [
"go",
"test",
"./internal/api",
"./pkg/licensing",
"-run",
"Quickstart|HostedAISettings|HostedTenantAISettings|HostedEntitlement|TrialStart|BillingState",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/entitlement_billing_state.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/licensing/license_server_client.go",
"kind": "file"
}
]
},
{
"id": "RA26",
"summary": "Infrastructure Settings and Infrastructure realtime identity are release-critical configuration surfaces: they must keep adding, discovering, installing agents, verifying API plus Pulse Agent coverage, cold-start ledger hydration, source grouping, source/member status separation, non-replayed setup success notifications, and websocket plus REST resource identity stable before release-ready claims.",
"kind": "journey",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L6",
"L8",
"L16"
],
"subsystem_ids": [
"agent-lifecycle",
"api-contracts",
"frontend-primitives"
],
"release_gate_ids": [
"settings-surface-layout-consistency"
],
"proof_commands": [
{
"id": "infrastructure-realtime-broadcast-contract-tests",
"run": [
"go",
"test",
"./internal/monitoring",
"-run",
"TestBroadcastResourceProjectionCoalescesSplitHostIdentities|TestConvertResourcesForBroadcastCoalescesSplitHostResources"
]
},
{
"id": "infrastructure-settings-workspace-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"src/utils/__tests__/resourceStateAdapters.test.ts",
"src/stores/__tests__/websocket-unified.test.ts",
"src/stores/__tests__/websocket-resilience.test.ts",
"src/components/Settings/__tests__/connectionsTableModel.test.ts",
"src/components/Settings/__tests__/InfrastructureSourceManager.test.tsx",
"src/components/Settings/__tests__/InfrastructureWorkspace.test.tsx",
"src/components/Settings/__tests__/useConnectionsLedger.test.ts",
"src/components/Settings/__tests__/settingsArchitecture.test.ts",
"src/utils/__tests__/discoveryPresentation.test.ts"
]
},
{
"id": "infrastructure-state-resource-contract-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestContract_StateAndResourceListShareCanonicalMockResourceContract|TestBuildAutoRegisterEventDataUsesCanonicalAutoRegisterTokenIdentity|TestContract_AutoRegisterWebSocketEventJSONSnapshot|TestContract_CanonicalAutoRegisterEventJSONSnapshot|TestAutoRegisterWebSocketEventTypeDistinguishesCreatedFromExistingRefresh"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/connectionsTableModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureSourceManager.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureWorkspace.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/useConnectionsLedger.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/connectionsTableModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/DiscoverySettingsForm.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/InfrastructureInstallerSection.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/InfrastructureSourceManager.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/SettingsPageShell.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useConnectionsLedger.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/__tests__/websocket-resilience.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/__tests__/websocket-unified.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/resourceStateAdapters.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/resourceStateAdapters.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_handlers_canonical_auto_register_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_setup_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/canonical_guardrails_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_unified_state_test.go",
"kind": "file"
}
]
},
{
"id": "RA27",
"summary": "Patrol readiness owns server-authored runtime and configuration safety: provider, model, settings-persistence, and tool-calling prerequisites must travel as structured `/api/ai/patrol/status`, settings-save, and Patrol action errors. Settings saves must persist recoverable provider/model changes while returning structured readiness, and known not-ready states must block manual, scheduled, and scoped Patrol runs before they become generic interrupted-analysis failures.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"patrol-intelligence"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "patrol-readiness-browser-contract-tests",
"run": [
"/usr/bin/env",
"PULSE_E2E_USE_HOT_DEV=1",
"PULSE_E2E_SKIP_PLAYWRIGHT_INSTALL=1",
"npm",
"--prefix",
"tests/integration",
"test",
"--",
"tests/18-patrol-runtime-state.spec.ts",
"--project=chromium"
]
},
{
"id": "patrol-readiness-frontend-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/api/__tests__/patrol.test.ts",
"src/pages/__tests__/AIIntelligence.test.tsx"
]
},
{
"id": "patrol-readiness-runtime-gate-tests",
"run": [
"go",
"test",
"./internal/ai",
"-run",
"RunPatrol_BlocksNotReadyRuntimeBeforeLLM|RunScopedPatrol_BlocksNotReadyRuntimeBeforeLLM",
"-count=1"
]
},
{
"id": "patrol-readiness-settings-save-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"UpdateSettingsPersistsNotReadyPatrolModelWithReadiness|UpdateSettingsDoesNotLockUnrelatedSavesBehindExistingPatrolReadiness|HandleForcePatrol_BlocksNotReadyPatrolModel",
"-count=1"
]
},
{
"id": "patrol-readiness-status-contract-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"PatrolReadiness|PatrolStatus|Contract_PatrolStatusResponseJSONSnapshot",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/patrol-intelligence.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/patrol.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/patrol.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolIntelligenceBanners.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolIntelligenceHeader.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/usePatrolIntelligenceState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/__tests__/AIIntelligence.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_coverage_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_init.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_readiness.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_readiness_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_run.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_runtime_failure.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_runtime_failure_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers_patrol_actions_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_patrol_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/18-patrol-runtime-state.spec.ts",
"kind": "file"
}
]
},
{
"id": "RA28",
"summary": "Pulse Patrol remains a simple scheduled LLM probe and governance surface: Pulse supplies observed infrastructure context, evidence, policy posture, approval state, and governed execution boundaries, while the configured LLM owns diagnosis, alert-resolution judgment, remediation reasoning, tool choice, and next-step reasoning. Patrol UI, Assistant session summaries, and Assistant handoffs must not present or persist Patrol-authored remediation plans, internal step lists, command summaries, next-step recommendations, route-owned recommendation metadata, or suggested prompt chips as the answer.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L8",
"L20",
"L23"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"frontend-primitives",
"patrol-intelligence"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "patrol-assistant-compact-briefing-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/components/AI/Chat/__tests__/AIChat.test.tsx",
"src/components/AI/Chat/__tests__/ChatMessages.test.tsx",
"src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"src/components/patrol/__tests__/ApprovalSection.test.tsx",
"src/components/AI/__tests__/FindingsPanel.test.ts",
"src/pages/__tests__/AIIntelligence.test.tsx",
"src/utils/__tests__/patrolEmptyStatePresentation.test.ts",
"src/utils/__tests__/patrolPagePresentation.test.ts",
"src/utils/__tests__/patrolSummaryPresentation.test.ts",
"src/utils/__tests__/aiChatPresentation.test.ts",
"src/api/__tests__/aiChat.test.ts",
"src/stores/__tests__/aiChat.test.ts"
]
},
{
"id": "patrol-assistant-session-summary-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"-run",
"TestSessionStore_List|TestService_ExecuteStream_AttachesModelOnlyHandoffContext"
]
},
{
"id": "patrol-model-owned-probe-runtime-tests",
"run": [
"go",
"test",
"./internal/ai",
"-run",
"TestRunAIAnalysis_TriageQuietStillCallsLLM|TestRunEvaluationPass",
"-count=1"
]
},
{
"id": "patrol-model-owned-remediation-runtime-tests",
"run": [
"go",
"test",
"./internal/ai",
"-run",
"TestPatrolService_RecordFindingDoesNotGenerateTemplateRemediationPlan|TestShouldResolveAlert|TestReviewAndResolveAlerts"
]
},
{
"id": "patrol-unified-finding-no-auto-remediation-tests",
"run": [
"go",
"test",
"./internal/ai/unified",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/patrol-intelligence.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/__tests__/FindingsPanel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/AIChat.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/ChatMessages.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/index.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/FindingsPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/patrol/__tests__/ApprovalSection.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/__tests__/AIIntelligence.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/patrolEmptyStatePresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/patrolPagePresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/aiChatPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/patrolPagePresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/session.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/types.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_ai.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_findings.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_run.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_triage_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/unified/integration.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/unified/integration_test.go",
"kind": "file"
}
]
},
{
"id": "RA29",
"summary": "Pulse intelligence comes from the operator-selected large language model using governed Pulse tools over data the model cannot reach on its own: agent-collected machine evidence, canonical APIs, metrics, discovery records, and resource state. Interactive Pulse Assistant chat therefore behaves like a governed LLM tool surface, not a Pulse-authored intent router: the operator's selected model receives the user turn and governed tools, decides whether tools are needed, and Pulse must not use prompt heuristics to force tool_choice, force a named tool, retry because an expected tool was not used, hide tools from the model by keyword detection, rewrite recent-context turns into Pulse-targeted instructions, fuzzy-match plain chat text into resource context before the model acts, synthesize/prefill/auto-submit product-authored Assistant prompts from handoffs, keyword-match prior remediation history into suggested fixes, or generate Patrol handoff attention/decision/remediation guidance before the model reasons. Pulse only provides current context and enforces approvals, resource resolution, FSM gates, and tool policy after that model choice; any model-visible policy block must describe the boundary without naming a required next tool. The chat surface must echo user messages before network/session creation finishes and must not render Pulse-owned explore or internal workflow status cards as assistant output.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "assistant-backend-handoff-policy-boundary-tests",
"run": [
"go",
"test",
"./internal/ai",
"./internal/ai/chat",
"./internal/api",
"-run",
"TestBuildPatrolRunAssistantHandoffUsesBackendSafeRunContext|TestFSM|TestService_ExecuteStream_InteractiveChatLetsModelChooseTools|TestHandleChat_|TestContract_AIHandler",
"-count=1"
]
},
{
"id": "assistant-chat-model-owned-routing-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"-run",
"TestService_ExecuteStream_InteractiveChatLetsModelChooseTools|TestFilterToolsForPrompt_ReadOnlyAndSpecialty|TestAgenticLoop",
"-count=1"
]
},
{
"id": "assistant-chat-optimistic-echo-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/components/AI/Chat/__tests__/useChat.test.ts",
"src/components/AI/Chat/__tests__/MessageItem.test.tsx",
"src/components/AI/Chat/__tests__/activeTurnStatus.test.ts"
]
},
{
"id": "assistant-chat-stream-contract-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/api/__tests__/aiChatEvents.test.ts"
]
},
{
"id": "assistant-chat-stream-json-contract-tests",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestContract_ChatStreamEventJSONSnapshots",
"-count=1"
]
},
{
"id": "assistant-context-prefetch-structured-mentions-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"-run",
"TestContextPrefetcher",
"-count=1"
]
},
{
"id": "assistant-model-selector-workflow-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"src/components/shared/__tests__/AIModelPicker.test.tsx",
"src/components/AI/Chat/__tests__/ModelSelector.test.tsx",
"src/components/AI/Chat/__tests__/AIChat.test.tsx",
"src/components/shared/__tests__/SearchField.test.tsx"
]
},
{
"id": "assistant-neutral-session-context-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"-run",
"TestInjectRecentSessionContext",
"-count=1"
]
},
{
"id": "assistant-no-automatic-tool-retry-tests",
"run": [
"go",
"test",
"./internal/ai/chat",
"-run",
"TestAgenticLoop_DoesNotAutoRecoverStructuredToolCall|TestEnsureFinalTextResponse|TestCommandExtraction",
"-count=1"
]
},
{
"id": "assistant-patrol-handoff-neutral-context-tests",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"src/components/AI/Chat/__tests__/AIChat.test.tsx"
]
},
{
"id": "assistant-remediation-memory-context-tests",
"run": [
"go",
"test",
"./internal/ai",
"./internal/ai/memory",
"-run",
"TestService_Remediation|TestService_BuildRemediationContext_Empty|TestService_BuildSystemPrompt_FindingContextDoesNotForceLifecycleTool|TestRemediationLog_(LogAndRetrieve|Stats|RecentStatsBranches|FormatAndStats)",
"-count=1"
]
},
{
"id": "assistant-tool-policy-facts-tests",
"run": [
"go",
"test",
"./internal/ai/tools",
"-run",
"TestExecuteReadLogs|TestRoutingMismatch|TestWriteExecutionContext|TestExecutionIntent|TestReadExec|TestStrictResolution",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/agent-lifecycle.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/patrol-intelligence.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/registry.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/aiChatEvents.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/generated/aiChatEvents.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/__tests__/FindingsPanel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/AIChat.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/ChatMessages.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/MessageItem.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/ModelSelector.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/useChat.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/ChatMessages.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/hooks/useChat.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/index.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/MessageItem.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/ModelSelector.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/types.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/FindingsPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Alerts/alertAssistantHandoffModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Alerts/incidentAssistantHandoffModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/__tests__/AIModelPicker.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/__tests__/SearchField.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/AIModelPicker.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/useSearchFieldState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/__tests__/aiChat.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/aiChat.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/aiChatPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/frontendResourceTypeBoundaries.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/aiChatPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/agentic.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/agentic_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/agentic_final.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/agentic_prompt.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/context_prefetch.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/context_prefetch_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/fsm.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/fsm_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/read_routing_hints.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service_execute_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service_recent_context_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service_tooling_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/types.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/memory/memory_coverage_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/memory/memory_extended_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/memory/memory_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/memory/remediation.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/memory/remediation_memory_regression_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_assistant_handoff.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_assistant_handoff_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/service_remediation_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/tools_file.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/tools_query.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/tools_read.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/tools_read_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/unified/alerts.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handler.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handler_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/generate-types.go",
"kind": "file"
}
]
},
{
"id": "RA30",
"summary": "Inside-guest runtime visibility is explicit and privacy-bounded: Pulse may show Docker/Podman workloads from a VM or LXC when a guest-local agent or another explicit guest reporting path reports them. Pulse may additionally show Docker workloads from LXC guests through a Proxmox host agent only when explicit LXC Docker inventory opt-in is enabled; that path must stay read-only, VMID-allowlistable, and limited to Docker host/container summary plus aggregate stats without docker inspect, environment values, mounts, files, commands, or process details. A local Unified Agent Docker/Podman disable must remain a hard opt-out that remote profiles and auto-detection cannot reverse.",
"kind": "trust-gate",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L14",
"L16"
],
"subsystem_ids": [
"agent-lifecycle",
"security-privacy"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "agent-docker-privacy-opt-out-tests",
"run": [
"go",
"test",
"./cmd/pulse-agent",
"-run",
"TestApplyRemoteSettingsHonorsLocalDockerOptOut|TestDockerAutoDetectHonorsExplicitDisable|TestLoadConfig_Comprehensive",
"-count=1"
]
},
{
"id": "proxmox-guest-docker-collection-opt-in-tests",
"run": [
"go",
"test",
"./internal/monitoring",
"./internal/api",
"./internal/config",
"-run",
"TestProxmoxGuestDockerInventoryUsesCanonicalReportIngestPath|TestAgentDockerInventoryCollector|TestMonitorCollectProxmoxGuestDockerInventory|TestParseProxmoxGuestDockerInventoryVMIDs|TestContract_ProxmoxGuestDockerDetectionRequiresExplicitOptIn|TestLoad_EnvOverrides_ProxmoxGuestDockerDetectionOptIn|TestLoad_ProxmoxGuestDockerDetectionEnvOptIn",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "cmd/pulse-agent/main.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "cmd/pulse-agent/main_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/AGENT_SECURITY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/CENTRALIZED_MANAGEMENT.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/CONFIGURATION.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/agent-lifecycle.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/monitoring.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/performance-and-scalability.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/UNIFIED_AGENT.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/router.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/config.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/config_env_overrides_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/config/config_load_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/canonical_guardrails_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/docker_detection.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/docker_detection_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_pve_guest_poll.go",
"kind": "file"
}
]
},
{
"id": "RA31",
"summary": "Platform overview inventory stays table-first: native provider facts belong in dense provider tables and governed platform tabs, not standalone summary-card strips or decorative card grids.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L8",
"L21"
],
"subsystem_ids": [
"frontend-primitives"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "platform-overview-table-first-guardrails",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/features/platformPage/__tests__/platformOverviewLayout.guardrails.test.ts"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/platformPage/__tests__/platformOverviewLayout.guardrails.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/truenas/TrueNASPageSurface.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/truenas/TrueNASSystemsTable.tsx",
"kind": "file"
}
]
},
{
"id": "RA32",
"summary": "Pulse v6 must be agent-operable for infrastructure onboarding at the canonical API contract layer, not only through UI automation or an MCP-only shim: agents can discover LAN candidates, list configured sources, validate proposed credentials, add/update/remove/test/refresh Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway sources through typed manifest schemas, and source reads must keep credential secrets redacted.",
"kind": "trust-gate",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L16",
"L20"
],
"subsystem_ids": [
"api-contracts"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "agent-provisioning-capability-contract",
"run": [
"go",
"test",
"./internal/api",
"-run",
"TestHandleAgentCapabilitiesManifest|TestAgentCapabilitiesManifest|TestAgentSubstrate_NodeProvisioningCapabilitiesRouteThroughHTTPBoundary"
]
},
{
"id": "mcp-manifest-schema-projection",
"run": [
"go",
"test",
"./cmd/pulse-mcp"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "cmd/pulse-mcp/main.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "cmd/pulse-mcp/main_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "cmd/pulse-mcp/README.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/agent_capabilities.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/agent_capabilities_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/agent_substrate_e2e_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA33",
"summary": "Comparable Pulse pages must compose repeated user-facing affordances from shared templates once a pattern exists: resource actions, fields, state badges, table controls, row affordances, and launch links must be owned in one shared primitive/model boundary with automated usage guardrails instead of drifting into page-local variants.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L8",
"L13"
],
"subsystem_ids": [
"frontend-primitives",
"monitoring"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "shared-primitive-guardrails",
"run": [
"npm",
"--prefix",
"frontend-modern",
"test",
"--",
"--run",
"src/components/shared/SharedPrimitives.guardrails.test.ts"
]
},
{
"id": "shared-template-drift-guardrails",
"run": [
"node",
"frontend-modern/scripts/shared-template-audit.mjs"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/status.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/scripts/shared-template-audit.mjs",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "frontend-modern/scripts/shared-template-registry.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/SharedPrimitives.guardrails.test.ts",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/WebInterfaceLink.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/GuestRow.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/platformPage/sharedPlatformPage.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/standalone/agentMachineTableModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/standalone/AgentsMachinesTable.tsx",
"kind": "file"
}
]
},
{
"id": "RA34",
"summary": "Every authenticated Pulse product and Settings page remains usable at supported phone widths, including capability-gated organization and hosted-administration surfaces rendered under their real runtime modes: page-level overflow stays contained; dense tables and tab rails scroll instead of compressing or wrapping; active destinations, expanded inline detail, and Settings navigation remain visible; primary touch actions keep a 40-pixel mobile floor; and exact-route browser proof must not count redirects as audited pages.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L3",
"L6",
"L8",
"L10",
"L14"
],
"subsystem_ids": [
"api-contracts",
"cloud-paid",
"frontend-primitives",
"organization-settings",
"performance-and-scalability"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "hosted-billing-admin-mobile-browser-proof",
"run": [
"env",
"PULSE_E2E_USE_LOCAL_BACKEND=true",
"PULSE_HOSTED_MODE=true",
"PULSE_MULTI_TENANT_ENABLED=true",
"PULSE_E2E_ENTITLEMENT_PROFILE=multi-tenant",
"npm",
"--prefix",
"tests/integration",
"test",
"--",
"tests/05-settings-mobile-audit.spec.ts",
"--project=mobile-chrome",
"--grep",
"billing-admin"
]
},
{
"id": "multi-tenant-settings-mobile-browser-proof",
"run": [
"env",
"PULSE_MULTI_TENANT_ENABLED=true",
"PULSE_E2E_ENTITLEMENT_PROFILE=multi-tenant",
"npm",
"--prefix",
"tests/integration",
"test",
"--",
"tests/05-settings-mobile-audit.spec.ts",
"--project=mobile-chrome",
"--grep",
"/settings/organization"
]
},
{
"id": "route-wide-mobile-browser-proof",
"run": [
"npm",
"--prefix",
"tests/integration",
"test",
"--",
"tests/04-mobile.spec.ts",
"tests/05-settings-mobile-audit.spec.ts",
"--project=mobile-chrome"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/api/billingAdmin.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/orgs.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/SettingsPageShell.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/shared/InlineDetailTableRow.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/WorkloadsTable.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/platformPage/sharedPlatformPage.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/apiClient.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/04-mobile.spec.ts",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "tests/integration/tests/05-settings-mobile-audit.spec.ts",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA35",
"summary": "The closed RG-01 through RG-12 matrix independently reached GO for bounded limited autonomy at core a63b3eae2b5a62ee6803bfb4eee8fadbbba8e449 and Pulse Mobile a1ddb451618664025d22a986fbd3fd837e4ffe97. Covered Patrol investigations remain read-only; supported mutation candidates use typed proposals and the canonical action lifecycle; unsupported and raw-command paths fail closed; exact-SHA Docker and Debian/Ubuntu labs, clean Product Trust browser proof, and a physical-iPad/live-Relay pairing, reconnect, inert decision, revocation, and cleanup journey passed. RG06/RG09 product outcomes remain agent-attested fix_verification_unknown even where separate Colima-control readback supplies independent facts. This assertion does not certify arbitrary infrastructure mutations, general MSP-scale autonomy, or broader L20 residuals.",
"kind": "invariant",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L6",
"L20"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts"
],
"release_gate_ids": [
"pulse-intelligence-rg-01-rg-12"
],
"proof_commands": [
{
"id": "ra35-apt-product-trust-browser",
"run": [
"env",
"PLAYWRIGHT_BASE_URL=http://127.0.0.1:5173",
"tests/integration/node_modules/.bin/playwright",
"test",
"--config=tests/integration/playwright.config.ts",
"tests/78-monitor-first-patrol-workbench.spec.ts",
"tests/81-actions-inbox.spec.ts",
"--project=chromium",
"--grep",
"APT"
]
},
{
"id": "ra35-chat-authority-boundary",
"run": [
"go",
"test",
"./internal/agentcapabilities",
"./internal/agentexec",
"./internal/ai",
"./internal/ai/tools",
"./internal/api",
"-run",
"TestParseProviderToolInputRejectsInternalApprovalMetadata|TestValidateDeclaredToolArgumentsRejectsUnknownProviderProperties|TestExecuteCommand_RoundTripViaWebSocket|TestExecuteCommand_InvalidApprovalAuthorizationNeverMintsOrDispatches|TestService_ExecuteStream_AutonomousRawCommandRequiresApproval|TestService_Execute_RepeatedDeniedToolCallTerminatesBounded|TestServiceToolLoop_|TestPulseToolExecutor_ExecuteRunCommand|TestHandleChat_CannotElevateAutonomousModePerRequest|TestVerifyAndConsumeCommandAuthorization",
"-count=1"
]
},
{
"id": "ra35-dispatch-time-policy-revocation",
"run": [
"go",
"test",
"./internal/actionlifecycle",
"./internal/api",
"-run",
"TestExecuteUnderPolicyBarrierRevocationsMemoryStore|TestExecuteUnderPolicyBarrierRevocationsSQLite|TestPolicyAdmissionCommitsApprovalAndExecutingAtomicallyMemoryStore|TestPolicyAdmissionCommitsApprovalAndExecutingAtomicallySQLite|TestHumanApprovalSurvivesAutomaticPolicyRevocationMemoryStore|TestHumanApprovalSurvivesAutomaticPolicyRevocationSQLite|TestEmergencyStopBlocksHumanAndPolicyAdmissionMemoryStore|TestEmergencyStopBlocksHumanAndPolicyAdmissionSQLite|TestLegacyPolicyApprovalWithoutLeaseFailsClosedAfterRestart|TestQueuedPolicyActionRevalidatesAfterSQLiteRestart|TestPatrolActionBrokerDispatchTimePolicyRevocation",
"-count=1"
]
},
{
"id": "ra35-typed-host-storage-cleanup-vertical",
"run": [
"go",
"test",
"./internal/api",
"./internal/agentexec",
"./internal/hostagent",
"./internal/unifiedresources",
"-run",
"TestAPTCacheCleanupDetectorProposalApprovalDispatchAuditAndFindingReconciliation|TestAPTCacheCleanupCallbackLossServerRestartReconcilesTerminalAuditAndFindingWithoutResend|TestHostStorageCleanupReconcileDelayedTerminalReceiptPreservesAgentAttestedEvidenceWithoutResend|TestHostStorageCleanupPartialTruthIsNonRollbackableAndRequiresRescan|TestPatrolFullModeRunsStorageCleanupThroughCanonicalLifecycle|TestExecuteHostStorageCleanupRoundTripUsesPathAndCommandFreeEnvelope|TestStorageCleanupManagerApplyUsesClosedAPTCatalogAndVerifiesBytes|TestStorageCleanupManagerFailurePhasesPreserveMeasuredEffect|TestStorageCleanupManagerRefusesFingerprintDriftBeforeMutation|TestHostStorageCleanupTargetDiskUsesLongestContainingMount",
"-count=1"
]
},
{
"id": "ra35-typed-host-update-vertical",
"run": [
"go",
"test",
"./internal/api",
"./internal/agentexec",
"./internal/hostagent",
"-run",
"TestAPTUpdateDetectorProposalApprovalDispatchAuditAndFindingReconciliation|TestAPTUpdateEmptyExecutionPhaseCannotVerifyResolveOrReplay|TestAPTUpdateCallbackLossServerRestartReconcilesTerminalAuditAndFindingWithoutResend|TestHostUpdateReconcileDelayedTerminalReceiptPreservesAgentAttestedEvidenceWithoutResend|TestHostUpdateReconcileLegacyTerminalReceiptDowngradesUnknownHealthWithoutResend|TestHostUpdatePartialTruthProjectsPhaseHealthRemainingAndRecovery|TestLegacyHostUpdateResultWithoutHealthFieldsRemainsStrictlyDecodableAsUnknown|TestPackageUpdateManagerApplyUsesClosedAPTCommandCatalogAndVerifies|TestPackageUpdateManagerFailsClosedWhenRefreshFails|TestPackageUpdateManagerPreInstallHealthUnknownRefusesWithoutMutationOrRecoveryClaim|TestPackageUpdateManagerPartialInstallAndVerifyFailureCarryExplicitHealthAndRecovery|TestPackageUpdateManagerRefusesRefreshTimeInventoryDriftBeforeInstall|TestPackageUpdateManagerZeroPendingAfterRefreshIsDriftWithoutInstallOrVerifiedClaim|TestRealServerAndUnifiedAgentWebSocketExecutesAPTThroughFakeTypedManagersAndReplaysWithoutMutation",
"-count=1"
]
},
{
"id": "ra35-typed-proposal-channel",
"run": [
"go",
"test",
"./internal/ai/tools",
"-run",
"TestConcurrentValidProposalsLatchAmbiguityWithNoProposal|TestProposalReplaySemanticsByInvocationID|TestFailedAttemptsWithoutSuccessAreATypedError|TestSensitiveProposalParamsRejectedWithoutEcho|TestProposeActionIsInvestigationProfileOnly|TestCapturedProposalIsImmuneToCallerMutation|TestProposalCapabilityMatchingIsExactLikePlanning|TestPatrolDetectionProfileEnforcesAllowlistedPulseState|TestPatrolInvestigationProfileIsStructurallyReadOnly",
"-count=1"
]
},
{
"id": "ra35-typed-proposal-contract",
"run": [
"go",
"test",
"./pkg/aicontracts",
"-run",
"TestOrchestratorChatServiceIsInvestigationOnly|TestOrchestratorDepsHasNoCommandOrAutonomyDeps|TestOrchestratorActionBrokerIsProposeOnly|TestActionCapabilityParamInfoCarriesPattern|TestInvestigationResultCarriesStructuredProposal",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/pulse-intelligence-release-gate.json",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pulse-intelligence-rg-01-rg-12-external-e2e-2026-07-12.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/actions/__tests__/aptActionPresentation.test.ts",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/actions/aptActionPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/agentcapabilities/schema.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentcapabilities/schema_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentexec/server.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentexec/server_websocket_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentexec/types.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/chat/service_investigation.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/service_tool_loop.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/service_tool_loop_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/ai/tools/control_run_command_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/execution_profile.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/proposal_capture.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/proposal_capture_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/tools/tools_propose.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_command_authorization.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_command_authorization_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/host_storage_cleanup_action_executor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/host_update_action_executor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/package_updates.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/storage_cleanup.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/aicontracts/action_broker.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/aicontracts/contracts_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/aicontracts/orchestrator_deps.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/pulse_intelligence_gate.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/pulse_intelligence_gate_test.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "tests/integration/tests/78-monitor-first-patrol-workbench.spec.ts",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "tests/integration/tests/81-actions-inbox.spec.ts",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA36",
"summary": "Deterministic governed-action replay is create-once and monotonic: concurrent identical proposals return the authoritative current audit, terminal states cannot rewind, record and lifecycle events commit atomically, and exactly one successful transition to executing may admit the executor.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L13",
"L20"
],
"subsystem_ids": [
"api-contracts",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra36-action-lifecycle-contract",
"run": [
"go",
"test",
"./internal/unifiedresources",
"./internal/api",
"-run",
"TestProductionActionLifecycleDoesNotUseRecordActionAuditAsUpsert|TestContract_ActionLifecycleReplayIsCreateOnceAndMonotonic|TestContract_ActionExecutorAdmissionRequiresExecutingCASWinner",
"-count=1"
]
},
{
"id": "ra36-atomic-action-lifecycle",
"run": [
"go",
"test",
"./internal/unifiedresources",
"./internal/actionlifecycle",
"./internal/api",
"-run",
"TestMemoryStoreCreateActionAuditConcurrentReturnsCurrent|TestSQLiteStoreCreateActionAuditConcurrentAcrossTwoInstances|TestSQLiteStoreActionTransitionCASAcrossTwoInstances|TestSQLiteStoreConcurrentExecutionStartAcrossTwoInstancesHasOneWinner|TestSQLiteStoreCreateActionAuditRollsBackWhenInitialEventInsertFails|TestSQLiteStoreActionDecisionRollsBackWhenDecisionEventInsertFails|TestSQLiteStoreActionDecisionRollsBackWhenResultingTransitionInsertFails|TestSQLiteStoreLifecycleRestartPreservesMonotonicState|TestSQLiteStoreRestartDoesNotReadmitExecutingAction|TestConcurrentPlanReplayCannotRewindTerminalActionMemoryStore|TestConcurrentPlanReplayCannotRewindTerminalActionSQLiteStore|TestConcurrentExecuteAdmitsExecutorExactlyOnceMemoryStore|TestConcurrentExecuteAdmitsExecutorExactlyOnceSQLiteStore|TestPlanReplayRejectsConflictingOriginForDeterministicActionID|TestPatrolActionBrokerBarrierReplayAdmitsExecutorExactlyOnce|TestPatrolActionBrokerTerminalReplayPreservesAuditAndEvents|TestPatrolActionReconciliationHydratesTerminalAuditAfterRestart|TestPatrolActionReconciliationCannotRegressFromOutOfOrderCallback",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "internal/actionlifecycle/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA37",
"summary": "Governed-action actor and approval strength are server-owned: requester attribution is derived from authenticated authority, current tenant/RBAC/token scope is rechecked at decision and execution, approvals are revision-CAS append-only facts, and no surface may claim MFA without server-verified action-bound cryptographic evidence.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L7",
"L13",
"L14",
"L20"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"organization-settings",
"relay-runtime",
"security-privacy",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra37-server-owned-action-authority",
"run": [
"go",
"test",
"./internal/actionplanner",
"./internal/actionlifecycle",
"./internal/unifiedresources",
"./internal/api",
"-run",
"TestHandlePlanActionBindsActorAndPlanHashToAuthenticatedOrg|TestHandlePlanActionRejectsOrIgnoresPublicRequestedByAndStampsAuthenticatedActor|TestHandleDecideActionRejectsViewerSessionDespiteSessionScopeBypass|TestHandleDecideActionRejectsDetachedTokenAsHumanApprover|TestHandleDecideActionRejectsOwnerBoundTokenAfterRoleRevocation|TestHandleExecuteActionRejectsCrossOrgAuditLookup|TestHandleExecuteActionRejectsExecutorWithoutCurrentCapability|TestActionAuthorityAllowsOwnerBoundTokenWithCanonicalApproveAndExecuteScopes|TestActionAuthorityRejectsOwnerBoundTokenWithoutApplicableScope|TestActionAuthorityLegacyCompatibilityScopesAreExactlyEnumerated|TestDecideRejectsMFAPolicyWithAPIMethodOnly|TestDecideRejectsUnsignedOrTamperedStepUpEvidence|TestDecideRejectsEvidenceForDifferentActorOrgActionPlanOrOutcome|TestDecideRejectsExpiredOrReplayedChallenge|TestConcurrentDistinctApprovalsRetainQuorumMemoryStore|TestConcurrentDistinctApprovalsRetainQuorumAcrossSQLiteHandles|TestDecisionEventIdentityAndTransitionUniquenessMemoryStore|TestDecisionEventIdentityAndTransitionUniquenessSQLiteStore|TestRejectedDecisionPersistsDecisionAndRejectedTransitionAtomically|TestSQLiteReopenPreservesDecisionEventRevisionOrdering|TestSQLiteActionLifecycleMigrationRetainsHistoricalDuplicatesAndRestoresTransitionUniqueness|TestSQLiteStoreActionDecisionRollsBackWhenDecisionEventInsertFails|TestSQLiteStoreActionDecisionRollsBackWhenResultingTransitionInsertFails",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "internal/actionlifecycle/actor_approval_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/action_authority.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/action_authority_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "pkg/auth/scopes.go",
"kind": "file"
}
]
},
{
"id": "RA38",
"summary": "Canonical terminal action truth preserves execution and verification as independent axes: no terminal consumer may collapse one into the other, no nil or unknown-effect executor tuple may infer success, and no result may claim independent verification without bounded durable evidence from a distinct trust domain.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L7",
"L13",
"L15",
"L16",
"L20"
],
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"api-contracts",
"patrol-intelligence",
"relay-runtime",
"storage-recovery",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra38-action-result-truth-and-persistence",
"run": [
"go",
"test",
"./internal/unifiedresources",
"-run",
"TestNormalizeActionResultTruthMatrix48|TestValidateActionResultEvidenceClassMatrix|TestActionResultLegacyProjectionMatrix48|TestCompleteActionExecutionRequiresExplicitResult|TestKnownPreDispatchRefusalIsNotRunAndNotVerified|TestLegacyTimeoutAndDisconnectMigrateInconclusive|TestMalformedStoredActionResultV2FailsClosed|TestActionResultV2MemoryStoreRoundTrip|TestActionResultV2SQLiteRoundTrip|TestActionResultV2SurvivesSQLiteReopen|TestCompensationFailureSurvivesSQLiteReopen|TestCompensationSucceededRestoredStateSurvivesSQLiteReopen|TestMalformedActionResultV2PersistsFailClosed|TestLegacyCompletedNilResultMigratesInconclusive|TestLegacyMissingVerificationMigratesNotAttempted|TestActionEvidenceCanonicalDigestStable|TestActionEvidenceCanonicalDigestChangesWithRetainedSemanticFields|TestActionEvidenceRedactionPreservesTruthAndCanonicalDigest|TestActionEvidenceRejectsUnboundedPayload|TestActionEvidenceBoundsApplyBeforeSecretRedaction|TestActionResultRedactionDeepCopiesAndRecomputesDigest|TestActionResultRedactionFailsClosedOnMalformedEvidence|TestCompensationNeverRewritesPrimaryResult|TestCompensationSucceededRequiresRestorationVerification|TestCompensationStateShapeValidationMatrix|TestActionTruthTypesStayUnifiedResourceOwned",
"-count=1"
]
},
{
"id": "ra38-executor-and-terminal-consumer-projections",
"run": [
"go",
"test",
"./internal/actionlifecycle",
"./internal/api",
"./internal/relay",
"./pkg/aicontracts",
"-run",
"TestExecutorTupleNilNilPersistsInconclusiveContractViolation|TestExecutorTupleResultAndErrorIsContractViolation|TestExecutorTuplePostDispatchErrorPreservesReceiptPending|TestActionResultV2EventFindingContextTelemetryProjectionMatrix|TestActionResultV2JSONContractSnapshot|TestMalformedStoredActionResultV2CannotProjectSuccessOrVerification|TestPatrolActionBrokerTerminalReplayPreservesAuditAndEvents|TestPatrolActionReconciliationHydratesTerminalAuditAfterRestart|TestPatrolActionReconciliationCannotRegressFromOutOfOrderCallback|TestCanonicalActionOutcomeNotificationMatrix|TestActionBrokerPolicyMetadataCarriesNoAuthorizationMethod",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "internal/actionlifecycle/service_action_result_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/action_result_v2_contract_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/relay/push_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_result_store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_result_v2.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_result_v2_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA39",
"summary": "Patrol Autopilot activation is server-owned: a static per-version contract registry preserves immutable historical scope and limits while effective full mode requires a current-version human acknowledgement bound to organization, actor, credential, and an atomic activation; rotation requires new evidence, and legacy booleans, stale or malformed evidence, cross-tenant records, API tokens, and revoked acknowledgements fail closed without rewriting authority history.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L10",
"L13",
"L14",
"L15",
"L16",
"L20"
],
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"api-contracts",
"organization-settings",
"patrol-intelligence",
"performance-and-scalability",
"security-privacy",
"storage-recovery",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra39-server-owned-patrol-autopilot-activation",
"run": [
"go",
"test",
"./internal/unifiedresources",
"./internal/config",
"./internal/ai",
"./internal/api",
"-run",
"TestPatrolAutopilot|TestEvaluatePatrolAutopilot|TestAIConfigPatrolAutopilot|TestServicePatrolAutopilotPolicyProviderControlsRuntimeVersion|TestGetPatrolSystemPrompt_ModeSwitch|TestRouterRouteInventory|TestProtectedAPIRoutesRejectUnauthenticatedRequests",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "internal/api/patrol_autopilot_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/config/patrol_autopilot_persistence_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/patrol_autopilot.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/patrol_autopilot_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA40",
"summary": "Pending governed actions expose one server-authored, versioned policy-decision provenance object: bounded capability and applicable tenant/resource authorities, source revisions, scope, approval requirement, and stable reason codes are immutable plan-hash inputs and durable audit/API evidence, while dispatch still requires a fresh Task 04 authorization lease and current-policy recheck.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L6",
"L10",
"L13",
"L14",
"L15",
"L16",
"L20"
],
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"api-contracts",
"patrol-intelligence",
"performance-and-scalability",
"security-privacy",
"storage-recovery",
"unified-resources"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra40-server-authored-action-policy-provenance",
"run": [
"go",
"test",
"./internal/unifiedresources",
"./internal/actionplanner",
"./internal/actionlifecycle",
"./internal/api",
"-run",
"TestActionPolicyDecision|TestMemoryStoreActionAuditReadsDeepCopyPolicyProvenance|TestMemoryStoreActionStateQueryDeepCopiesPolicyProvenance|TestActionPolicyDecisionProvenanceHasOneOwner|TestCanonicalActionPlanConstructionCannotBypassPolicyProvenancePlanner|TestPlannerPolicyDecisionChangesPlanHashWithoutReusingExecutionAuthority|TestActionPolicyProvenanceParticipatesInFreshnessWithoutAuthorizingDispatch|TestHandlePlanActionBindsActorAndPlanHashToAuthenticatedOrg|TestHandlePlanActionRejectsClientSuppliedPolicyProvenance|TestApprovalPlanInfoRejectsMalformedCanonicalPolicyDecision|TestPatrolActionBrokerSnapshotsTenantResourceAndCapabilityPolicyAtPlanTime|TestPatrolActionBrokerDispatchTimePolicyRevocation|TestContract_ActionPlanJSONSnapshot|TestContract_ActionPlanAuditLifecycleSnapshot|TestContract_PatrolActionBrokerKeepsPolicyExecutionCoreOwned",
"-count=1"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "internal/actionlifecycle/service_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/actionplanner/planner_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/actions_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_dispatch_store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_dispatch_store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_policy_provenance.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_policy_provenance_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA41",
"summary": "The released self-hosted commercial surface remains coherent across the canonical offer, Stripe billing, Pulse Account, license-server persistence, runtime and Relay entitlements, and support policy: Community, Relay, and Pro keep distinct jobs with Pro bundling Relay, while unproved self-service plan and cadence transitions remain unavailable and unadvertised until their external lifecycle and Relay version-floor proof passes.",
"kind": "trust-gate",
"blocking_level": "release-ready",
"proof_type": "manual",
"lane_ids": [
"L2",
"L3",
"L7",
"L12",
"L17"
],
"subsystem_ids": [
"cloud-paid",
"relay-runtime"
],
"release_gate_ids": [
"self-hosted-commercial-transition-exposure-safety"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-offer-lifecycle-contract-2026-07-14.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-transition-coherence-production-remediation-2026-07-15.md",
"kind": "file",
"evidence_tier": "production-observed"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/relay-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/selfHostedPlans.test.ts",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/report_schedules_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "pkg/licensing/installation_status_poll_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "pkg/licensing/subscription_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/main_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_commercial_transitions_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_reconcile_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_status_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "relay-server/bridge_v6_grant_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "relay-server/revocation_feed_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "scripts/tests/test_license_runtime_config_contract.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "scripts/tests/test_remediate_stripe_commercial_state.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "scripts/tests/test_validate_stripe_catalog.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "RA42",
"summary": "Operational Trust remains contradiction-free across lifecycle, evidence, protection posture, resource attachment, notification linkage, Patrol attention, and governed action verification: limited or unavailable evidence cannot become healthy or resolved, provider success cannot become detector recovery, and every customer-visible state consumes one canonical lifecycle.",
"kind": "trust-gate",
"blocking_level": "release-ready",
"proof_type": "hybrid",
"lane_ids": [
"L6",
"L8",
"L10",
"L13",
"L14",
"L15",
"L16",
"L20",
"L22",
"L23"
],
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"frontend-primitives",
"monitoring",
"notifications",
"patrol-intelligence",
"performance-and-scalability",
"security-privacy",
"storage-recovery",
"unified-resources"
],
"release_gate_ids": [
"operational-trust-canonical-lifecycle"
],
"proof_commands": [
{
"id": "ra42-operational-trust-browser",
"cwd": "tests/integration",
"run": [
"npm",
"test",
"--",
"tests/90-operational-trust-protection-posture.spec.ts",
"tests/91-operational-trust-attention-workbench.spec.ts",
"tests/92-operational-trust-availability-facet.spec.ts",
"--project=chromium"
]
},
{
"id": "ra42-operational-trust-core",
"run": [
"go",
"test",
"./internal/operationaltrust",
"./internal/alerts",
"./internal/notifications",
"./internal/recovery",
"./internal/unifiedresources",
"./internal/actionlifecycle",
"./internal/api",
"./internal/ai",
"-count=1"
]
},
{
"id": "ra42-operational-trust-frontend",
"cwd": "frontend-modern",
"run": [
"npm",
"run",
"type-check"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/OPERATIONAL_TRUST.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "internal/alerts/operational_state_writers_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "tests/integration/tests/91-operational-trust-attention-workbench.spec.ts",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "RA43",
"summary": "Pulse and Pulse Mobile remain compatible at exact repository revisions: one canonical provider manifest generates the server route/scope inventory, pairing schema, push constants, and mobile TypeScript projection; the checked-in mobile consumer minimum preserves every route, method, field, pairing, and push behavior it uses; and the released-line OTA probe remains an independent skew check against stable and RC servers.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L5",
"L6",
"L7"
],
"subsystem_ids": [
"api-contracts",
"relay-runtime"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra43-pulse-mobile-exact-revision-compatibility",
"run": [
"python3",
"scripts/release_control/mobile_compatibility.py",
"--mobile-repo",
"../pulse-mobile"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/MOBILE_COMPATIBILITY_MANIFEST.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/mobile_compatibility.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/mobile_compatibility_test.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-mobile",
"path": "config/mobile-api-surface.json",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "scripts/ota-compat-gate.mjs",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-mobile",
"path": "src/generated/coreCompatibility.ts",
"kind": "file"
}
]
},
{
"id": "RA44",
"summary": "Every commit with a user-visible Pulse frontend source change carries fresh browser verification bound to that commit's parent and final staged content: the current build is exercised through the deepest changed interaction, actual rendered pixels are inspected at desktop and narrow widths, affected states and cross-control behavior are recorded, and DOM-only, stale, or pre-final-edit proof cannot satisfy completion.",
"kind": "invariant",
"blocking_level": "repo-ready",
"proof_type": "automated",
"lane_ids": [
"L8"
],
"subsystem_ids": [
"frontend-primitives"
],
"release_gate_ids": [],
"proof_commands": [
{
"id": "ra44-frontend-browser-verification-guard",
"run": [
"python3",
"scripts/release_control/browser_verification_guard_test.py"
]
}
],
"evidence": [
{
"repo": "pulse",
"path": ".github/workflows/canonical-governance.yml",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": ".husky/pre-commit",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/CANONICAL_DEVELOPMENT_PROTOCOL.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/repoctl/canonical_development_protocol_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/browser_verification_guard.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/browser_verification_guard_test.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
}
],
"evidence_reference_policy": {
"format": "repo-qualified-relative-paths",
"allowed_kinds": [
"file",
"dir"
],
"absolute_paths_forbidden": true,
"local_repo": "pulse"
},
"priority_engine": {
"formula": "behind_score = (max(0,target-current)*4) + criticality + staleness + dependency + blocker_bonus",
"floor_rule": {
"release_critical_lanes": [
"L1",
"L2",
"L3",
"L7",
"L8",
"L9",
"L10",
"L11",
"L12"
],
"minimum_score": 6
},
"weights": {
"gap_multiplier": 4,
"criticality_range": "0-5",
"staleness_range": "0-3",
"dependency_range": "0-3",
"blocker_bonus": 8
}
},
"lanes": [
{
"id": "L1",
"name": "Self-hosted release confidence",
"target_score": 9,
"current_score": 9,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Self-hosted release confidence reached its target and was re-proved for v6.3.1 with exact-SHA dry-run, stable activation, published-asset integrity, installer, demo, container, Helm, private paid-runtime convergence, and bounded recovery from GitHub activation-marker propagation.",
"tracking": []
},
"blockers": [],
"subsystems": [
"deployment-installability"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-proxmox-runtime-token-permission-proof-2026-05-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-installer-bundle-fallback-2026-05-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-08-22.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-installer-disk-preflight-2026-05-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.2.0-stable-cutoff-owner-approval-2026-08-09.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.0-stable-cutoff-owner-approval-2026-08-22.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.0-stable-publication-proof-2026-08-22.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.1-stable-publication-proof-2026-08-23.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/deployment-installability.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "install.sh",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/installtests/root_install_sh_test.go",
"kind": "file"
}
]
},
{
"id": "L2",
"name": "Conversion/commercial readiness",
"target_score": 9,
"current_score": 9,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "The approved Community / Relay / Pro contract is now projected into local public/account copy, support and legal policy, atomic license-server entitlement state, quoted Relay/Pro and cadence transition sagas, runtime downgrade preservation, and the live Stripe catalog/portal contract. Local Go, copy-model, and desktop/phone browser proof is green; the 2026-07-15 production GET-only re-audit passed all 25 governed prices and the invoice/payment-method-only portal after bounded remediation. Self-service remains unreleased until the governed Stripe transition/event-reconciliation matrix and Relay license-version-floor activation follow-up passes.",
"tracking": [
{
"kind": "lane-followup",
"id": "pulse-intelligence-pro-activation-loop"
},
{
"kind": "lane-followup",
"id": "self-hosted-commercial-transition-coherence"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/COMMERCIAL_CANCELLATION_REACTIVATION_E2E_TEST_PLAN.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-msp-price-audit-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/paid-feature-claim-proof-matrix-2026-04-29.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pre-ga-public-checkout-posture-2026-06-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-ga-coherence-2026-04-20.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-paid-services-opt-in-surface-2026-04-25.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/paid_feature_claims_proof.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "V6_LAUNCH_CHECKLIST.md",
"kind": "file"
}
]
},
{
"id": "L3",
"name": "Cloud paid readiness",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "The local commercial projection now changes Stripe catalog identity, tier, cadence, features, continuity epoch, license version, transition history, and revocation outbox atomically, with a quote-bound transition authority for self-hosted plan and cadence changes. Cloud remains unavailable and MSP remains an assisted preview. The bounded production Stripe remediation and GET-only catalog/portal re-audit passed; the remaining governed residuals are the external Stripe transition/event-reconciliation matrix and Relay license-version-floor proof.",
"tracking": [
{
"kind": "lane-followup",
"id": "cloud-commercial-transition-external-proof"
}
]
},
"blockers": [],
"subsystems": [
"cloud-paid"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/BillingAdminPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/BillingAdminPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/CommercialBillingSections.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/commercialBillingModel.ts",
"kind": "file"
}
]
},
{
"id": "L4",
"name": "Hosted MSP readiness",
"target_score": 6,
"current_score": 6,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Hosted MSP support is at the current tracked RC floor, including real tenant-management behavior and the exercised MSP provisioning and replay proof.",
"tracking": []
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-2026-03-13.md",
"kind": "file"
}
]
},
{
"id": "L5",
"name": "Mobile go-live readiness",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Mobile go-live readiness is at the current GA floor: the build 4 candidate has current simulator/emulator evidence plus physical Android and iOS proof for the native companion role, hosted pairing, reconnect, push routing, approval actions, instance switching, and revoked-access fail-closed behavior. The remaining bounded residual is explicit store-publication execution and post-GA mobile hardening, not a release-readiness blocker.",
"tracking": [
{
"kind": "lane-followup",
"id": "mobile-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/PRE_RELEASE_CHECKLIST.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/mobile-product-purpose-ga-blocker-2026-04-24.md",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "store/listing.md",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "store/release-readiness.json",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "V6_LAUNCH_CHECKLIST.md",
"kind": "file"
}
]
},
{
"id": "L6",
"name": "Architecture coherence",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Architecture coherence now carries the canonical Connected infrastructure projection and frontend state contract by construction; the remaining residual is limited to later cross-surface cleanup outside those normalized contracts.",
"tracking": [
{
"kind": "lane-followup",
"id": "architecture-post-rc-canonicalization"
}
]
},
"blockers": [],
"subsystems": [
"ai-runtime",
"alerts",
"api-contracts",
"notifications",
"patrol-intelligence"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/notifications.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/responseUtils.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/streaming.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/alerts/OverviewTab.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/alertIncidentPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/alertOverviewPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/connectionErrorPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/connections_grouping.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/connections_grouping_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources.go",
"kind": "file"
},
{
"repo": "pulse-enterprise",
"path": "docs/V6_REPO_REALIGNMENT.md",
"kind": "file"
}
]
},
{
"id": "L7",
"name": "Relay infrastructure readiness",
"target_score": 9,
"current_score": 9,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Relay infrastructure now carries an explicit backend-owned mobile capability boundary: the dedicated Pulse Mobile relay credential is limited to the governed runtime route inventory instead of depending on scattered compatibility gates.",
"tracking": []
},
"blockers": [],
"subsystems": [
"relay-runtime"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/RELAY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/relay_mobile_capability.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/relay",
"kind": "dir"
},
{
"repo": "pulse-mobile",
"path": "src/relay",
"kind": "dir"
},
{
"repo": "pulse-pro",
"path": "relay-server",
"kind": "dir"
}
]
},
{
"id": "L8",
"name": "First-session & UX polish",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "First-session UX reached the RC floor with the runtime wizard reduced to welcome and security, direct handoff into Infrastructure Operations install, and setup completion retained only as a separate preview surface; broader polish and parity work remain intentionally outside the current prerelease target.",
"tracking": [
{
"kind": "lane-followup",
"id": "first-session-post-rc-polish"
}
]
},
"blockers": [],
"subsystems": [
"frontend-primitives"
],
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/AppLayout.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/Settings.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/SetupWizard/SetupWizard.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/Proxmox.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/RuntimeHome.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/11-first-session.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/19-telemetry-disclosure.spec.ts",
"kind": "file"
}
]
},
{
"id": "L9",
"name": "Documentation readiness",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Documentation is current enough for the RC floor, and the remaining residual is the lane-local GA-facing promotion and release communication follow-up.",
"tracking": [
{
"kind": "lane-followup",
"id": "documentation-ga-promotion-package"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs",
"kind": "dir"
},
{
"repo": "pulse",
"path": "docs/releases/RELEASE_NOTES_v6.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "README.md",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page",
"kind": "dir"
}
]
},
{
"id": "L10",
"name": "Performance & scalability",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Performance is at the current release floor, but additional scalability headroom and non-blocking performance polish remain post-RC follow-up.",
"tracking": [
{
"kind": "lane-followup",
"id": "performance-post-rc-headroom"
}
]
},
"blockers": [],
"subsystems": [
"performance-and-scalability"
],
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.performance.contract.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/infrastructureSelectors.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/resourceDetailMappers.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/UnifiedResourceTable.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/__tests__/workloadInventorySourceIssues.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/__tests__/WorkloadsSurface.performance.contract.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/useWorkloadsState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/workloadInventorySourceIssues.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/workloadSelectors.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Workloads/WorkloadsSurface.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/hooks/__tests__/useWorkloads.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/hooks/useWorkloads.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/http_metrics.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/metrics/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/02-navigation-perf.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/64-workloads-proxmox-refresh-stability.spec.ts",
"kind": "file"
}
]
},
{
"id": "L11",
"name": "v5-to-v6 migration safety",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Migration safety is at the RC floor; any remaining same-lane hardening is outside the current release-gate slice.",
"tracking": [
{
"kind": "lane-followup",
"id": "migration-post-ga-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/LEGACY_HOST_CLASSIFICATION_2026-03-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/V5_TO_V6_COMMERCIAL_MIGRATION_AUDIT_2026-03-07.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/UPGRADE_v6.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/scripts/sync-embed-dist.mjs",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/frontend_embed_sync_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/12-v5-commercial-migration.spec.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_commercial_migration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_full_upgrade_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_session_db_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/migration/v5_to_v6_test.go",
"kind": "file"
}
]
},
{
"id": "L12",
"name": "E2E journey coverage",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "The end-to-end journey suite covers the RC floor; broader same-lane journey expansion remains outside the current release-gate slice.",
"tracking": [
{
"kind": "lane-followup",
"id": "journey-post-ga-expansion"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/COMMERCIAL_CANCELLATION_REACTIVATION_E2E_TEST_PLAN.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-cancellation-reactivation-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/journeys",
"kind": "dir"
}
]
},
{
"id": "L13",
"name": "Core monitoring runtime",
"target_score": 8,
"current_score": 8,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Core monitoring runtime is at the current tracked floor: discovery, metrics-history, and platform-runtime proof routing now land on explicit governed routes, while broader ReadState convergence remains owned by architecture coherence.",
"tracking": []
},
"blockers": [],
"subsystems": [
"monitoring",
"unified-resources"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-docker-agent-reconnect-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-pbs-health-authority-2026-07-24.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-proxmox-cluster-address-authority-2026-07-23.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-proxmox-cluster-snapshots-2026-06-16.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/monitoring.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/registry.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/TRUENAS.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/UNIFIED_RESOURCES.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/UnifiedResourceTable.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/canonical_guardrails_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/metrics_history.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_backup_poll_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_backups.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_unified_state_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/poll_providers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/code_standards_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/metrics_targets.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/registry.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/pbs/client.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/pbs/client_http_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/subsystem_lookup_test.py",
"kind": "file"
}
]
},
{
"id": "L14",
"name": "Security, identity, and privacy",
"target_score": 8,
"current_score": 8,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Security, identity, and privacy is at the current governed floor: privacy disclosures, telemetry controls, RBAC boundaries, and shared token/auth settings surfaces now route through explicit subsystem ownership with exercised proof across the remaining shared token and auth boundaries.",
"tracking": []
},
"blockers": [],
"subsystems": [
"organization-settings",
"security-privacy"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/PRIVACY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/organization-settings.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/security.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/OrganizationSharingPanel.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/RBACPaywallPanels.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/SecurityPostureSummary.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationRolePresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/organizationSettingsPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/api_token_org_scope_integration_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/org_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/rbac_handlers_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_status_additional_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/security_tokens_owner_binding_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/system_settings_telemetry_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/telemetry/telemetry.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "SECURITY.md",
"kind": "file"
}
]
},
{
"id": "L15",
"name": "Storage and recovery",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Storage and recovery have reached the governed RC floor. Filter coherence is proven across all four transport surfaces (rollups, points, series, facets), storage URL state now normalizes canonical source/status/node/resource selections, and recovery route-backed query, provider, outcome, and stale-only filters round-trip through shared links while facets still narrow with the selected timeline day. Broader storage health UX polish and additional recovery timeline hardening remain post-RC follow-up.",
"tracking": [
{
"kind": "lane-followup",
"id": "storage-recovery-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [
"storage-recovery"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/RECOVERY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/STORAGE_ARCHITECTURE.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Storage/__tests__/storagePageState.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Storage/Storage.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/recovery/recovery_test.go",
"kind": "file"
}
]
},
{
"id": "L16",
"name": "Agent lifecycle and fleet operations",
"target_score": 8,
"current_score": 8,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Agent lifecycle and fleet operations are at the current governed RC floor: canonical auto-register converges on one v6 contract, install-command consumers fail closed through shared validated boundaries, and one Unified Agent can fan a single collection to one authoritative primary plus isolated report-only observers. Observer tokens, TLS policy, retry buffers, delivery metrics, and Proxmox credentials are destination-scoped; Proxmox token mutation is gated on a successful destination registration check.",
"tracking": []
},
"blockers": [],
"subsystems": [
"agent-lifecycle"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/AGENT_SECURITY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-agent-privilege-docs-2026-05-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-ai-discovery-adapter-origin-2026-05-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-proxmox-api-first-onboarding-2026-05-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-proxmox-runtime-token-permission-proof-2026-05-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-proxmox-setup-permission-proof-2026-05-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-root-agent-hardening-2026-05-05.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/unified-agent-v5-upgrade-continuity-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/agent-lifecycle.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/UNIFIED_AGENT.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/UPGRADE_v5.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/agentProfiles.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/nodes.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/connectionsTableModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureSourceManager.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureWorkspace.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/useConnectionsLedger.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/AgentProfilesPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/ConnectionEditor/ConnectionEditor.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/ConnectionEditor/CredentialSlots/NodeCredentialSlot.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/connectionsTableModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/InfrastructureSourceManager.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/NodeModalAuthenticationSection.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/NodeModalSetupGuideSection.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useConnectionsLedger.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useNodeModalState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/infrastructureOnboardingPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/nodeModalPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agenttarget/config.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agenttarget/config_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentupdate/update.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_install_command_shared_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_handlers_setup_script_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/config_setup_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/configapi/setup_script_render.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/unified_agent.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/dockeragent/multi_target_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/agent.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/observer_delivery_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/proxmox_setup.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/proxmox_setup_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/kubernetesagent/multi_target_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/install.ps1",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/install.sh",
"kind": "file"
}
]
},
{
"id": "L17",
"name": "Customer account portal",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "The self-hosted manage entry point is now Pulse-named and job-first, with verified invoice/payment access, quoted Relay/Pro and cadence changes, cancellation, reactivation, and scheduled-change cancellation. Retrieve, refund, and data-request utilities remain separate specialist jobs. The lane stays residual until real Stripe transition/reconciliation and Relay entitlement proofs satisfy the governed activation follow-up.",
"tracking": [
{
"kind": "lane-followup",
"id": "account-commercial-transition-external-proof"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/CUSTOMER_ACCOUNT_PORTAL_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-recovered-2026-03-26.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-followup-2026-03-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/organization-user-scope-and-rbac-2026-03-12.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/portal/frontend/src/shell_view.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/portal/frontend/src/shell_view.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/cloudcp/portal/page.go",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/manage.html",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/retrieve-license.html",
"kind": "file"
}
]
},
{
"id": "L18",
"name": "Policy-aware data governance",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Policy-aware data governance now has a first-class governed floor: resource sensitivity, handling-boundary, and redaction posture remain available through the route-backed Resource Privacy/Data Handling surface without occupying the normal Settings sidebar as an empty read-only destination, non-local AI provider requests use the shared resource-policy sanitizer at the final model boundary, and privacy copy reflects the runtime behavior. Broader enterprise DLP, provider-retention posture, and non-resource prompt-secret detection remain a named post-RC hardening track.",
"tracking": [
{
"kind": "lane-followup",
"id": "policy-aware-data-governance-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/PRIVACY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/public/docs/PRIVACY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/AISettingsDialogs.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/DataHandlingPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/quickstartCopyContract.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/modelboundary/resource_policy_sanitizer.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/modelboundary/resource_policy_sanitizer_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/policy_metadata.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/policy_metadata_test.go",
"kind": "file"
}
]
},
{
"id": "L19",
"name": "Resource change intelligence",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Resource change intelligence now has a first-class governed floor: canonical resource relationships, durable resource-change envelopes, AI/Patrol recent-change presentation, dedicated resource timeline/facet reads, relationship-aware resource timelines, and an operator-visible resource relationship map are all owned by the unified-resource and API-contract boundary. Broader surfaced timeline IA, enterprise correlation depth, and cross-resource investigation workflows remain a named post-RC hardening track.",
"tracking": [
{
"kind": "lane-followup",
"id": "resource-change-intelligence-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/resource-relationship-map-surface-2026-04-29.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/resources.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/__tests__/ResourceCorrelationSummary.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/ResourceChangeSummary.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/ResourceCorrelationSummary.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/ResourceDetailDrawerOverviewTab.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/useResourceDetailDrawerDerivedState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/useResourceDetailDrawerHistoryState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/types/resource.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/resourceCorrelationPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/resourceChangePresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/resourceCorrelationPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/intelligence.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_ai.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/change_emission.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/change_emission_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/change_filters.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/change_presentation.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/change_presentation_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/changes.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/relationship_presentation.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/relationship_presentation_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/relationships.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store_test.go",
"kind": "file"
}
]
},
{
"id": "L20",
"name": "Action governance and auditability",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Action governance has reached the bounded limited-autonomy floor. Covered Patrol investigations are read-only; typed proposals cross shared planning, policy, approval, plan-hash, durable delivery, audit, verification, and ActionResultV2 contracts; covered raw and unsupported paths fail closed. The exact audited core/mobile pair passed the closed RG-01 through RG-12 matrix, including Docker and Debian/Ubuntu Colima journeys, clean Product Trust browser proof, and physical-iPad/live-Relay pairing, notification registration, encrypted reconnect, inert approval and denial, exact-token revocation with HTTP 401, fail-closed UI, and complete cleanup. Agent-executed RG06/RG09 product outcomes remain honestly fix_verification_unknown; separate Colima-control observations do not upgrade product verification. Limited autonomy is GO only for this proved capability set. Arbitrary infrastructure mutations, general MSP-scale autonomy, agent-native discovery, operable onboarding/import planning, and the lane's existing post-RC hardening residuals remain outside this certification, so L20 stays partial with bounded residual tracking.",
"tracking": [
{
"kind": "lane-followup",
"id": "action-governance-auditability-post-rc-hardening"
},
{
"kind": "lane-followup",
"id": "agent-native-continuous-discovery-findings"
},
{
"kind": "lane-followup",
"id": "agent-operable-onboarding-import-planning"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "cmd/pulse-mcp/main.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "cmd/pulse-mcp/main_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/action-approval-readiness-refresh-2026-08-07.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/action-audit-resource-history-surface-2026-04-29.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/patrol-intelligence.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/V6_BRIDGE_RELEASE_FOUNDATION_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/actionAudit.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/actionAudit.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/ResourceActionHistory.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/ResourceOperatorStateSection.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Infrastructure/useResourceDetailDrawerHistoryState.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/patrol/__tests__/ApprovalSection.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/patrol/ApprovalSection.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/types/actionAudit.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/actionAuditPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/actionAuditPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/actor_approval_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/actionlifecycle/service_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentcontext/resource_context_sections.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/agentcontext/resource_context_sections_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/agentexec/apt_codec_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/agentexec/server_websocket_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/agentexec/types.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/approval/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/approval/store_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/findings_apt_workflows_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/ai/tools/action_audit.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/action_authority.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/action_authority_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_capabilities.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_capabilities_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agent_substrate_e2e_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/apt_workflows_colima_real_lab_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/host_apt_action_result_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/host_storage_cleanup_action_executor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/host_storage_cleanup_action_executor_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/host_update_action_executor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/host_update_action_executor_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_broker_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/patrol_action_reconciliation.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/patrol_autopilot_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/testdata/rg09/apt_workflows_colima.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/testdata/rg09/test_apt_workflows_colima.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/config/patrol_autopilot_persistence_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/hostagent/package_manager_lease_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/hostagent/package_updates.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/package_updates_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/hostagent/storage_cleanup.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/storage_cleanup_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_dispatch.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_dispatch_store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/action_dispatch_store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/actions.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/actions_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/adapters.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/adapters_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/patrol_autopilot.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/patrol_autopilot_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/resource_operator_state_policy_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/unifiedresources/store_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "pkg/agents/host/report.go",
"kind": "file"
},
{
"repo": "pulse-enterprise",
"path": "internal/investigation/orchestrator_test.go",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/api/__tests__/approvals.test.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/api/approvals.ts",
"kind": "file"
}
]
},
{
"id": "L21",
"name": "Platform admission execution",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Platform admission execution now has a first-class governed floor: the platform support manifest carries readiness stage, primary mode, canonical projections, onboarding paths, and per-surface support-floor classification into a generated frontend projection, while VMware vSphere remains admitted at first-lab-ready instead of being mislabeled as fully supported. Live vCenter proof, deeper recovery/control coverage, and future admitted-platform runtime depth remain a named post-RC hardening track.",
"tracking": [
{
"kind": "lane-followup",
"id": "platform-admission-execution-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/PLATFORM_SUPPORT_MANIFEST.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/PLATFORM_SUPPORT_MODEL.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-blocked-2026-03-30.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/agent-lifecycle.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/alerts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/monitoring.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/registry.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ALERTS_AND_ASSISTANT_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_API_RUNTIME_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ONBOARDING_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_PROOF_MATRIX.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_RESOURCE_PROJECTION_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/scripts/canonical-platform-audit.mjs",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/types/__tests__/resource.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/infrastructureOnboardingPresentation.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/sourcePlatformOptions.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/__tests__/sourcePlatforms.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/infrastructureOnboardingPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/platformSupportManifest.generated.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/platformSupportManifest.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/sourcePlatformOptions.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/sourcePlatforms.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/vmware_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/mock/platform_support_contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/vmware_poller.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/vmware/provider.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/generate_platform_support_frontend_module.py",
"kind": "file"
}
]
},
{
"id": "L22",
"name": "Fleet governance and rollout control",
"target_score": 6,
"current_score": 6,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Fleet governance and rollout control now has a first-class governed floor: /api/connections carries enrollment, liveness, version drift, adapter health, config rollout, credential status, update posture, and remote-control posture as a canonical fleet projection, Infrastructure systems surfaces those facts as a central fleet-governance strip plus row-level attention signals without paid-surface or monitor-count gating, and first-login Infrastructure resource snapshots rehydrate recent standalone agent continuity instead of waiting for a fresh live report. Deeper desired-vs-applied config drift, staged rollout operations, richer credential rotation state, and command-policy enforcement remain a named post-RC hardening track.",
"tracking": [
{
"kind": "lane-followup",
"id": "fleet-governance-rollout-control-post-rc-hardening"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/agent-lifecycle.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/registry.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/storage-recovery.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/V6_BRIDGE_RELEASE_FOUNDATION_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/__tests__/connections.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/api/connections.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/connectionsTableModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureSourceManager.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/InfrastructureWorkspace.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/useConnectionsLedger.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/connectionsTableModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/InfrastructureSourceManager.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/useConnectionsLedger.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/connections_aggregator.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/connections_aggregator_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/connections_types.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/resourceapi/resources.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/canonical_guardrails_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_unified_state_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/remoteconfig/signature.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/remoteconfig/signature_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/75-settings-infrastructure-fleet-status-coherence.spec.ts",
"kind": "file"
}
]
},
{
"id": "L23",
"name": "Monitor-first Patrol operations",
"target_score": 8,
"current_score": 8,
"status": "target-met",
"completion": {
"state": "complete",
"summary": "Monitor-first Patrol operations now has a one-task-at-a-time, decision-first governed floor: authenticated launch stays on infrastructure monitoring; a compact secondary status row gives way to mutually exclusive Inbox, Protection, and Activity modes; Inbox defaults to one full-width ranked decision queue without duplicate counters, generic row state, or an empty preview; selection alone creates the persistent desktop inbox-and-context workspace or true mobile master/detail flow with identity-stable review progress, previous/next navigation, automatic advancement after reviewed or temporarily suppressed occurrences, and explicit remaining-work feedback over canonical lifecycle, evidence, protection, availability, approval, action, and verification truth; objectives, verified receipts, approvals, and records remain deliberately accessible without competing on the same canvas; calm states stay honest; and Assistant remains contextual explanation for the selected thing rather than the operations front door.",
"tracking": []
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/AI.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/operational-trust-patrol-attention-workbench-2026-07-19.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/ai-runtime.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/api-contracts.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/patrol-intelligence.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/security-privacy.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/unified-resources.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/__tests__/FindingsPanel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/__tests__/AIChat.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/Chat/index.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/AI/FindingsPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/__tests__/PatrolAttentionWorkbench.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolAttentionWorkbench.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolIntelligenceHeader.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolIntelligenceSurface.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolObjectivesPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolRecentWorkPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/__tests__/AIIntelligence.test.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/patrolPagePresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/attention.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_assistant_handoff.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_assistant_handoff_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handler.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_handler_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/attention_handlers.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "tests/integration/tests/91-operational-trust-attention-workbench.spec.ts",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "L24",
"name": "Localized product surfaces",
"target_score": 8,
"current_score": 8,
"status": "partial",
"completion": {
"state": "bounded-residual",
"summary": "Localized product surfaces now have a first-class governed floor across the public site, install guidance, desktop first-session and operator journeys, Pulse Mobile, checkout handoff, and license delivery: English remains the source and fallback language; German and Spanish have explicit first-wave catalogs and locale normalization; and machine-facing identifiers, commands, configuration keys, API fields, logs, payloads, product names, and user data remain untranslated. Broader journey coverage, native-speaker and pseudo-locale QA, extraction tooling, and later locale waves remain a named expansion track.",
"tracking": [
{
"kind": "lane-followup",
"id": "localized-product-surfaces-expansion"
}
]
},
"blockers": [],
"subsystems": [],
"evidence": [
{
"repo": "pulse",
"path": "docs/i18n/de/README.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/i18n/es/README.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/i18n/README.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/README.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/localized-product-surfaces-alerts-overview-2026-06-14.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/localized-product-surfaces-first-session-monitoring-2026-06-14.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/localized-product-surfaces-foundation-2026-06-13.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/localized-product-surfaces-lane-2026-08-06.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/cloud-paid.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/subsystems/frontend-primitives.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/__tests__/i18n.test.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/index.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/locales.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/messages.de.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/messages.es.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/messages.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/i18n/policy.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/pages/PricingHandoff.tsx",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "docs/evidence/localized-mobile-alerts-overview-2026-07-22.md",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "docs/evidence/localized-mobile-operator-journey-2026-07-21.md",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "docs/LOCALIZATION.md",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/i18n/mobileI18n.tsx",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/i18n/mobileLocales.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/i18n/mobileMessages.ts",
"kind": "file"
},
{
"repo": "pulse-mobile",
"path": "src/i18n/mobilePolicy.ts",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/de/index.html",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/es/index.html",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/locales/landing-page.de.json",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/locales/landing-page.es.json",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "landing-page/README.md",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_email_locales.go",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_email_locales_test.go",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_locale.go",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_locale_test.go",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "scripts/build_landing_locales.py",
"kind": "file"
},
{
"repo": "pulse-pro",
"path": "scripts/tests/test_landing_page_localization.py",
"kind": "file"
}
]
}
],
"release_gates": [
{
"id": "api-token-scope-and-assignment",
"summary": "Confirm API tokens are assigned to the correct user and org context, enforce scope boundaries including legacy persisted host-agent scope aliases, and revoke cleanly.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1",
"L6",
"L11",
"L14",
"L16"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/api-token-scope-and-assignment-2026-03-12.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "cloud-hosted-tier-runtime-readiness",
"summary": "Confirm the actual hosted Pulse tier works end to end after provisioning: hosted auth, runtime entry, and hosted billing/admin surfaces all function coherently.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L3",
"L4",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-2026-03-13.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-account-portal-proxy-2026-04-24.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-blocked-2026-03-25.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-fixed-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-followup-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-recovered-2026-03-26.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-production-remediated-2026-04-24.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-runtime-build-contract-2026-04-24.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-storage-blocker-2026-04-23.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/cloud-hosted-tier-runtime-readiness-storage-guardrails-production-2026-04-24.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "commercial-cancellation-reactivation",
"summary": "Confirm grandfathered v5 recurring continuity holds while active, completed cancellation revokes paid state, and re-entry after cancellation uses current public v6 pricing.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L3",
"L11",
"L12"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-cancellation-reactivation-2026-03-12.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-cancellation-reactivation-external-e2e-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "commercial-support-operations-canonical-case",
"summary": "Confirm commercial support operations resolve customer, invoice, subscription, Stripe, local license, license-transfer, configuration-review, and diagnostics-review records through canonical Pulse Pro support systems before data-protection-sensitive handling; operators must not rely on ad hoc Gmail-to-Stripe or Gmail-to-license matching for those actions.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "local-rehearsal",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2"
],
"evidence": [
{
"repo": "pulse-pro",
"path": "landing-page/manage.html",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse-pro",
"path": "license-server/admin_support.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/admin_support_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/main.go",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse-pro",
"path": "license-server/support_cases.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/support_cases_test.go",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "documentation-currentness-and-legacy-cleanup",
"summary": "Confirm active v6-facing guidance is current, and any legacy or historical docs are clearly archived or demoted instead of remaining current guidance.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "local-rehearsal",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L9"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-2026-03-13.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-agent-security-2026-05-04.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-contribution-policy-2026-05-01.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-v6-rc3-packet-2026-05-01.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/documentation-currentness-and-legacy-cleanup-v6-rc4-packet-2026-05-05.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
}
]
},
{
"id": "historical-credential-containment",
"summary": "Contain every historically reachable credential identity across Pulse and Pulse Pro before prerelease: record authoritative provider revocation, expiry, decommissioning, or fresh inventory absence plus replacement-deployment or verified-retirement evidence for every redacted subject. Repository prose, approval, current-value differences, and optional history rewriting cannot close this gate.",
"owner": "release-owner-and-provider-owners",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "production-observed",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1",
"L2",
"L14"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-open-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
],
"closure_contract": {
"kind": "historical-credential-containment",
"subject_ids": [
"PBS-01",
"PBS-02",
"PRO-CLOUDFLARE-01",
"PRO-DIGITALOCEAN-01",
"PRO-LICENSE-ADMIN-01",
"PRO-RESEND-01",
"PRO-STRIPE-WEBHOOK-01",
"PULSE-01",
"PULSE-02",
"PULSE-03",
"PULSE-04",
"PXM-01",
"PXM-02",
"SLACK-01",
"TELEGRAM-01"
],
"provider_closure_records": [
{
"subject_id": "PBS-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PBS-02",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-CLOUDFLARE-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-DIGITALOCEAN-01",
"disposition": "inventory-absent",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-LICENSE-ADMIN-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-RESEND-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-STRIPE-WEBHOOK-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-01",
"disposition": "inventory-absent",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-02",
"disposition": "inventory-absent",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-03",
"disposition": "inventory-absent",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-04",
"disposition": "inventory-absent",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PXM-01",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PXM-02",
"disposition": "revoked",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "SLACK-01",
"disposition": "decommissioned",
"recorded_at": "2026-08-08T16:22:17Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "TELEGRAM-01",
"disposition": "decommissioned",
"recorded_at": "2026-08-08T16:22:17Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
}
],
"replacement_deployment_records": [
{
"subject_id": "PBS-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PBS-02",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-CLOUDFLARE-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:48:18Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-DIGITALOCEAN-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-LICENSE-ADMIN-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-RESEND-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PRO-STRIPE-WEBHOOK-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-02",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-03",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PULSE-04",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PXM-01",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "PXM-02",
"disposition": "validated",
"recorded_at": "2026-08-08T16:15:00Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "SLACK-01",
"disposition": "not-applicable-retired",
"recorded_at": "2026-08-08T16:22:17Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
},
{
"subject_id": "TELEGRAM-01",
"disposition": "not-applicable-retired",
"recorded_at": "2026-08-08T16:22:17Z",
"verifier": "credential-containment-audit",
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/historical-credential-containment-execution-2026-08-08.md",
"kind": "file",
"evidence_tier": "production-observed"
}
]
}
],
"history_rewrite": {
"blocking": false,
"status": "optional-after-containment"
}
}
},
{
"id": "hosted-signup-billing-replay",
"summary": "Confirm hosted signup, org provisioning, billing-admin visibility, and webhook replay succeed in the real checkout path.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L3",
"L4",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-2026-03-12.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-production-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/hosted-signup-billing-replay-production-fixed-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "known-rc-issue-closure-for-ga",
"summary": "Confirm Pulse v6 GA is feature-complete relative to the prerelease issue set: every known RC-era user-visible issue intended for v6 is fixed in the candidate, proven invalid, or conservatively superseded instead of being carried knowingly into GA.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1",
"L2",
"L8",
"L10",
"L12",
"L13",
"L15",
"L16"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/agent-lifecycle-ai-discovery-adapter-origin-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-2026-04-21.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-audit-log-store-resilience-2026-05-28.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-authorized-keys-symlink-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-backup-orphan-readiness-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-blocked-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-ceph-monitors-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-docker-agent-reconnect-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-docker-update-alert-disable-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-duplicate-metrics-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-host-agent-reenrollment-2026-07-23.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-installer-bundle-fallback-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-late-issue-intake-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-late-issue-integration-2026-05-28.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-metric-threshold-coloring-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-metrics-write-amplification-2026-05-03.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-pbs-health-authority-2026-07-24.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-proxmox-cluster-address-authority-2026-07-23.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-proxmox-cluster-snapshots-2026-06-16.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-rc3-followup-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-summary-sparkline-tooltip-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-truenas-smart-unavailable-2026-05-28.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/known-rc-issue-closure-for-ga-v5-129-delta-2026-05-01.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "mobile-product-purpose-and-first-run-clarity",
"summary": "Confirm Pulse Mobile communicates its GA role in the actual app experience: a normal paired self-hosted or Relay-backed operator should understand it as a native companion for status, alerts, push/device trust, Relay-backed Open Pulse handoff, and contextual recovery, not as a miniature web dashboard or command-approval control center.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L5"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/mobile-product-purpose-ga-blocker-2026-04-24.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse-mobile",
"path": "store/release-readiness.json",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "mobile-relay-auth-approvals",
"summary": "Confirm pulse-mobile pairing, persistence, relay reconnect, auth transitions, and approval flows work against a real instance.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L5",
"L7",
"L12"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/mobile-relay-auth-approvals-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "msp-provider-tenant-management",
"summary": "Confirm MSP mode behaves as a real provider workflow: one account can manage multiple client tenants coherently without cross-client leakage or MSP/public-plan confusion.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L3",
"L4",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-2026-03-13.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-fixed-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/msp-provider-tenant-management-production-followup-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/multi-tenant-ga-readiness-revalidation-2026-04-23.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
}
]
},
{
"id": "multi-tenant-runtime-isolation-and-coherence",
"summary": "Confirm multi-tenant Pulse behaves as a coherent tenant-isolated product across org scope, runtime state, sharing, and migration.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L4",
"L6",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/multi-tenant-ga-readiness-revalidation-2026-04-23.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/multi-tenant-runtime-isolation-and-coherence-2026-03-13.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "operational-trust-canonical-lifecycle",
"summary": "Confirm every customer-facing active state, evidence explanation, protection assertion, notification consequence, and governed action resolves through one contradiction-free canonical lifecycle and evidence model.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L6",
"L8",
"L10",
"L13",
"L14",
"L15",
"L16",
"L20",
"L22",
"L23"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "organization-user-scope-and-rbac",
"summary": "Confirm user creation, organization membership, RBAC scope, and cross-org sharing fail closed outside intended access.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L4",
"L9",
"L12",
"L14",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/multi-tenant-ga-readiness-revalidation-2026-04-23.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/organization-user-scope-and-rbac-2026-03-12.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "paid-feature-entitlement-gating",
"summary": "Confirm free-versus-paid feature gating and agent allocation accounting match entitlements across UI, API, hosted, and upgrade surfaces.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L3",
"L6",
"L9",
"L12",
"L16"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/paid-feature-claim-proof-matrix-2026-04-29.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/paid-feature-entitlement-gating-2026-03-12.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "scripts/release_control/paid_feature_claims_proof.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "paid-runtime-build-attribution-alerting",
"summary": "Confirm active paid licenses cannot silently run on the public community runtime or on a stale private Pro release line: Pulse must detect non-Pro or unknown runtime identity for paid installs, surface a clear private-runtime warning in-product, preserve runtime-build telemetry for support, expose Pro/community/unknown runtime status in admin support views, and block future v6 public release success when matching private Pro R2/Docker publication or live broker promotion fails.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L3",
"L9",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/paid-runtime-build-attribution-alerting-2026-05-07.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/paid-runtime-build-attribution-alerting-automatic-private-pro-release-2026-06-15.md",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "prerelease-maturity-integrity",
"summary": "Confirm published previews use alpha for incomplete evaluation, beta for user testing with expected product changes, and RC only for promotable-intent builds; only RC provides normal stable lineage, RC runs stable-depth integration, and runtime identity keeps every published prerelease on the Preview channel.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "test-proof",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1"
],
"evidence": [
{
"repo": "pulse",
"path": "internal/updates/version_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/installtests/build_release_assets_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/release_promotion_policy_test.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/resolve_release_promotion_test.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "pulse-intelligence-rg-01-rg-12",
"summary": "The closed RG-01 through RG-12 Pulse Intelligence matrix reached independent GO for bounded limited autonomy at core a63b3eae2b5a62ee6803bfb4eee8fadbbba8e449 and Pulse Mobile a1ddb451618664025d22a986fbd3fd837e4ffe97. Exact-SHA unit/integration, Docker and Debian/Ubuntu Colima, clean Product Trust browser, and physical-iPad/live-Relay proof are sealed by /Volumes/Development/.pulse-proof-artifacts/rg12-a63b3eae-a1ddb451-final-20260712T234230Z with SHA256SUMS hash 58778244cb370be4bf7bd74a8316a5bf4e8ec4dca23f08e45c5bc8cfec152397 and aggregate evidence /Volumes/Development/.pulse-proof-artifacts/pulse-intelligence-evidence-a63b3eae2b5a62ee6803bfb4eee8fadbbba8e449-final.json. This gate does not certify arbitrary infrastructure mutation or general MSP-scale autonomy.",
"owner": "task-12",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L6",
"L20"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/pulse-intelligence-release-gate.json",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pulse-intelligence-rg-01-rg-12-external-e2e-2026-07-12.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "scripts/release_control/pulse_intelligence_gate.py",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "scripts/release_control/pulse_intelligence_gate_test.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "rc-to-ga-promotion-readiness",
"summary": "Confirm Pulse v6 stable promotion uses a governed exact-SHA rehearsal, published prerelease lineage, explicit owner risk acceptance for any shortened soak or bounded post-RC cutoff, exact rollback instructions, and the written v5 maintenance-only policy; v6.3.0 promoted from rc.6 after clean privacy-safe production telemetry and converged from the unchanged stable cutoff SHA.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1",
"L9",
"L11",
"L12"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/current-branch-ga-owner-approval-2026-07-02.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/current-branch-ga-release-policy-2026-07-01.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-13.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-26.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-03-28.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-blocked-2026-04-04.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-04-20.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-06-04.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-2026-08-22.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/rc-to-ga-promotion-readiness-rehearsal-blocked-2026-03-26.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.0-stable-cutoff-owner-approval-2026-08-22.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.0-stable-publication-proof-2026-08-22.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "relay-registration-reconnect-drain",
"summary": "Confirm relay fresh registration, reconnect, stale-session recovery, and disconnect drain behavior hold under real pressure.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "managed-runtime-exercise",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L5",
"L7",
"L12"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/relay-registration-reconnect-drain-2026-03-13.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "self-hosted-commercial-ga-coherence",
"summary": "Confirm the self-hosted GA commercial package is coherent end-to-end: public landing, explicit in-app commercial handoff, checkout/account/license-management flows, and GA-facing guidance all describe the same Community / Relay / Pro product without proactive self-hosted trial pressure, legacy v5 bridge posture, or contradictory plan copy.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L9",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/pre-ga-public-checkout-posture-2026-06-01.md",
"kind": "file",
"evidence_tier": "production-observed"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-ga-coherence-2026-04-20.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-ga-coherence-paid-runtime-docker-policy-2026-04-24.md",
"kind": "file",
"evidence_tier": "managed-runtime-exercise"
}
]
},
{
"id": "self-hosted-commercial-transition-exposure-safety",
"summary": "Confirm unproved self-service Relay/Pro plan and cadence transitions remain unavailable and unadvertised while the released commercial surface stays limited to the production-observed canonical offer, checkout, activation, cancellation/reactivation, invoice access, and payment-method management contract.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "production-observed",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L2",
"L3",
"L7",
"L12",
"L17"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/commercial-offer-lifecycle-contract-2026-07-14.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-transition-coherence-production-audit-blocked-2026-07-14.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-transition-coherence-production-remediation-2026-07-15.md",
"kind": "file",
"evidence_tier": "production-observed"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-transition-coherence-read-only-reconciliation-2026-07-21.md",
"kind": "file",
"evidence_tier": "production-observed"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/self-hosted-commercial-transition-coherence-remediation-prepared-2026-07-14.md",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/contract_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "internal/api/report_schedules_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "pkg/licensing/installation_status_poll_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse",
"path": "pkg/licensing/subscription_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_commercial_transitions_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_reconcile_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_status_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "license-server/v6_store_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "relay-server/bridge_v6_grant_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "relay-server/revocation_feed_test.go",
"kind": "file",
"evidence_tier": "test-proof"
},
{
"repo": "pulse-pro",
"path": "scripts/tests/test_remediate_stripe_commercial_state.py",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "settings-surface-layout-consistency",
"summary": "Confirm comparable settings surfaces present the canonical page shell, with consistent header framing and no ad hoc top-level layout chrome.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "local-rehearsal",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L8"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/settings-surface-layout-consistency-2026-03-13.md",
"kind": "file",
"evidence_tier": "local-rehearsal"
},
{
"repo": "pulse",
"path": "frontend-modern/src/components/Settings/__tests__/settingsArchitecture.test.ts",
"kind": "file",
"evidence_tier": "test-proof"
}
]
},
{
"id": "single-build-release-promotion-path",
"summary": "Confirm normal RC, stable, and patch releases build one exact-SHA candidate with policy-required native signing in parallel with checks, promote that candidate without rebuilding, validate GitHub asset digests without full packet downloads, and run independent post-publication lanes concurrently.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/single-build-release-promotion-path-2026-07-09.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/v6.3.0-stable-publication-proof-2026-08-22.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "stable-patch-unattended-release-path",
"summary": "Confirm routine stable patches use one noninteractive publish dispatch with integrated exact-SHA candidate checks, awaited Docker and demo deployment, and a definitive release verdict without manual SSH recovery.",
"owner": "project-owner",
"blocking_level": "release-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L1"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/stable-patch-unattended-release-path-2026-07-09.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "unified-agent-v5-upgrade-continuity",
"summary": "Confirm a real v5-installed Pulse Unified Agent upgrades through candidate v6 RC assets into one canonical v6 agent identity without duplicate registration, stale fallback or legacy-scope breakage, or agent-count drift.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L11",
"L12",
"L16"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/unified-agent-v5-upgrade-continuity-2026-03-12.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
},
{
"id": "upgrade-state-and-entitlement-preservation",
"summary": "Confirm supported upgrades preserve state, entitlements, and first-session continuity without repair flows.",
"owner": "project-owner",
"blocking_level": "rc-ready",
"minimum_evidence_tier": "real-external-e2e",
"status": "passed",
"verification_doc": "docs/release-control/v6/internal/HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md",
"lane_ids": [
"L3",
"L5",
"L8"
],
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/upgrade-state-and-entitlement-preservation-2026-03-13.md",
"kind": "file",
"evidence_tier": "real-external-e2e"
}
]
}
],
"lane_followups": [
{
"id": "architecture-post-rc-canonicalization",
"summary": "Track the remaining post-RC architecture cleanup that still belongs to L6 after canonicalizing Connected infrastructure and the frontend state contract by construction, including retirement of newly legacy or clearly obsolete old-way internal paths unless a boundary-only exception is explicitly governed.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-13",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime",
"alerts",
"notifications",
"patrol-intelligence"
]
},
{
"id": "documentation-ga-promotion-package",
"summary": "Track the GA-facing documentation and release communication package that should only be finalized when promotion is actually being executed.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-13",
"lane_ids": [
"L9"
],
"subsystem_ids": []
},
{
"id": "first-session-post-rc-polish",
"summary": "Track broader first-session polish and parity work that is intentionally outside the RC stabilization floor after the default landing surface moved from Dashboard to provider-first platform handoff; future first-session orientation belongs to the selected provider/runtime platform plus Add infrastructure, not a dashboard-home or legacy Infrastructure default surface.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-13",
"lane_ids": [
"L8"
],
"subsystem_ids": [
"frontend-primitives"
]
},
{
"id": "mobile-post-rc-hardening",
"summary": "Track explicit Pulse Mobile store-publication execution and remaining post-GA mobile hardening beyond the current proof floor. Exact-revision Pulse/Pulse Mobile API, route-scope, pairing, push, and payload compatibility is now enforced by RA43 and the Canonical Governance workflow, while the mobile OTA gate independently protects released-server skew. Governed action parity keeps approval and execution separately authenticated and bound to the reviewed plan identity. Public rollout still requires a separate human-triggered release operation, and future hardening must not reopen the GA readiness gate unless new evidence regresses.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-13",
"lane_ids": [
"L5"
],
"subsystem_ids": []
},
{
"id": "performance-post-rc-headroom",
"summary": "Track additional scalability headroom and non-blocking performance polish beyond the current release floor. Release Dry Runs 31307581484 and 31308753863 on exact SHA e2a2e7d4d2016428a502347248af925200e44ee0 both passed native policy, macOS signing and notarization, and complete immutable candidate validation, then failed the backend lane on runner-local wall-clock performance thresholds. The first separately claimed harness slice replaced the obsolete fixed-duration 800-request quota with fixed concurrent work normalized to a same-run serial baseline, retained the absolute concurrent p95 ceiling, added the required metrics-store maintenance barrier, and amortized the fast single-request SLO samples. Five strict GITHUB_ACTIONS repetitions passed locally. Fresh exact-SHA dry run 31320692142 on 53d9d00d8d478d537e12aa496533900acafe3bbc again passed native policy, macOS signing and notarization, and complete immutable candidate validation, then exposed the remaining fixed-window minimum in TestLoad_500Node_MixedEndpoints (seven metrics-stats requests versus ten) and measured a sustained 11.980ms median / 12.230ms p95 against the 12ms hosted store ceiling. The follow-up converts every mixed endpoint group to fixed work while retaining its absolute p95 guards, keeps the strict local store target at 5ms, and narrowly recalibrates the hosted-runner store envelope to 15ms. Three strict focused repetitions passed with exact 60/50/10 mixed request counts, zero errors, sub-0.85s mixed wall time, and 7.58-7.60ms store p95; the complete internal/api package-order proof also passed under GITHUB_ACTIONS=true in 153.837s. Exact-SHA dry run 31322445793 passed every canonical release gate on cba3b3e85771e44f89f08169804b83f4dd2aa037, and release run 31324538001 attempt 2 consumed that unchanged SHA and activated v6.2.0. Remaining work in this follow-up is non-blocking scalability headroom and performance polish beyond the released floor.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-13",
"lane_ids": [
"L10"
],
"subsystem_ids": [
"performance-and-scalability"
]
},
{
"id": "storage-recovery-post-rc-hardening",
"summary": "Track broader storage health UX polish and recovery timeline hardening beyond the current RC floor, including additional filter coherence edge cases and storage panel presentation improvements.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-03-14",
"lane_ids": [
"L15"
],
"repo_ids": [
"pulse"
],
"subsystem_ids": [
"storage-recovery"
],
"cross_repo": false
},
{
"id": "journey-post-ga-expansion",
"summary": "Track broader same-lane end-to-end journey expansion beyond the current GA floor now that prerelease-to-GA promotion proof is recorded.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-20",
"lane_ids": [
"L12"
],
"subsystem_ids": []
},
{
"id": "migration-post-ga-hardening",
"summary": "Track remaining same-lane migration-safety hardening beyond the current GA floor now that prerelease-to-GA promotion proof is recorded.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-20",
"lane_ids": [
"L11"
],
"subsystem_ids": []
},
{
"id": "action-governance-auditability-post-rc-hardening",
"summary": "Task 07 durable delivery and generic agent-operation receipts are accepted: transactional dispatch admission, one-shot send CAS, immutable attempt/action/operation/digest/agent binding, query-only restart reconciliation, strict sanitized terminal envelopes, and permanent replay-denial tombstones. Task 09 consumes that owner for both APT workflows and completes the detector-to-finding, exact empty-parameter proposal, shared policy/approval, typed dispatch, delayed/callback-loss/reopened-server receipt reconciliation, ActionResultV2 truth, terminal audit, and finding reconciliation floor without blind resend. Task 11 adds the desktop/browser tier-5 Product Trust consumer: bounded command/path/package-free Patrol evidence; exact empty parameter and elevated-versus-low-risk review; separate execution, evidence-sourced verification, and recovery cards; agent-attested confirmed updates; reboot fact without reboot authority; partial/unknown-health recovery; measured irreversible cleanup; and one durable receipt across reconnect, all exercised in current-build Chromium and a 390-pixel viewport. Malformed phases, counts, timestamps, usage, or cleanup arithmetic fail closed. The closed RG-01 through RG-12 matrix now supplies the disposable Debian/Ubuntu tier-6, Docker, browser, physical-device, live-Relay, revocation, cleanup, and independent Task 12 proof that previously kept claims 16 and 17 and both workflow scorecards operationally open. Task 10 remains sole owner of execution, verification, evidence, compensation, and rollback truth, and RG06/RG09 product outcomes remain agent-attested fix_verification_unknown. Proxmox VM/LXC lifecycle now supplies the first production distinct-trust-domain verification path: the node agent executes, the tenant-scoped server Proxmox client observes status and uptime, reboot requires an uptime reset, and ActionResultV2 keeps execution success independent from postcondition contradiction. The 2026-08-07 readiness slice moves live executor, emergency-stop, policy, expiry, resource-lock, contract-drift, and executor-owned availability checks to the human approval boundary; keeps rejection available; exposes exact remediation; and adds hash-bound replacement planning that reconstructs current Patrol policy and origin without copying approval. This follow-up now tracks only broader post-RC auditability beyond the proved bounded capability set, including additional operation and platform coverage, deeper compensation and rollback proof, and MSP or fleet aggregation; it does not reopen the accepted matrix. Raw model command, file write, arbitrary pod exec, legacy run_command, /api/ai/run-command, and enterprise command remediation remain retired with no replacement or executable historical authority.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-25",
"lane_ids": [
"L20"
],
"subsystem_ids": []
},
{
"id": "fleet-governance-rollout-control-post-rc-hardening",
"summary": "Track broader fleet-governance rollout control beyond the current fleet projection floor, including desired-versus-applied config drift, staged config rollout state, richer credential rotation/expiry health, agent command-policy enforcement, and runtime proof across remote-control safety states.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-25",
"lane_ids": [
"L22"
],
"subsystem_ids": []
},
{
"id": "platform-admission-execution-post-rc-hardening",
"summary": "Track broader platform-admission execution beyond the current first-lab-ready support-floor projection, including live vCenter proof before VMware can move to supported, recovery/control expansion, and future admitted-platform proof across setup, canonical projections, alerts, assistant read, and bounded control.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-25",
"lane_ids": [
"L21"
],
"subsystem_ids": []
},
{
"id": "policy-aware-data-governance-post-rc-hardening",
"summary": "Track broader policy-aware data-governance hardening beyond the current resource-policy floor, including enterprise DLP posture, provider-retention disclosure, non-resource prompt-secret detection, and additional external-model boundary proof where future paid or hosted AI surfaces add new data paths.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-25",
"lane_ids": [
"L18"
],
"subsystem_ids": []
},
{
"id": "resource-change-intelligence-post-rc-hardening",
"summary": "Track broader resource-change intelligence hardening beyond the current canonical timeline and relationship-map floor, including surfaced cross-resource timeline IA, enterprise correlation depth, and investigation workflows that promote relationship-aware timelines from backend foundation into deeper operator workflows.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-04-25",
"lane_ids": [
"L19"
],
"subsystem_ids": []
},
{
"id": "agent-native-continuous-discovery-findings",
"summary": "Track the agent-native reconciliation loop beyond one-shot LAN discovery: manual and continuous discovery should keep scan state, scope, results, and candidate review visible from Connected systems, and newly detected unconfigured infrastructure candidates should become durable findings that agents can investigate, plan, approve, and resolve by validating credentials and adding the source through the canonical provisioning capabilities.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-05-28",
"lane_ids": [
"L20"
],
"subsystem_ids": []
},
{
"id": "agent-operable-onboarding-import-planning",
"summary": "Track the remaining agent-operable onboarding hardening beyond the current typed node lifecycle and LAN-discovery manifest floor: candidate import plans, credential-grant handoffs, dry-run diffs, human approval before applying multi-source imports, and richer discovery-to-provisioning verification.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-05-28",
"lane_ids": [
"L20"
],
"subsystem_ids": []
},
{
"id": "pulse-intelligence-pro-activation-loop",
"summary": "Track Pulse Intelligence as the default governed Pro operations experience beyond the current feature floor: a new Pro user should choose what Patrol may handle automatically, then Patrol should watch the infrastructure, investigate real issues, act automatically or ask for approval according to that policy, verify outcomes, and record what happened. Assistant and Pulse MCP must expose the same governed capabilities as contextual and external-agent access paths, but they are not the primary first-party success condition. Pro should record whether completing this Patrol control loop improves activation, retention, and paid conversion. This is L2-owned commercial activation work with explicit dependencies on the L6 Assistant architecture, L20 action governance, and L23 Pulse Intelligence floor.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-06-20",
"lane_ids": [
"L2"
],
"repo_ids": [
"pulse",
"pulse-pro"
],
"subsystem_ids": []
},
{
"id": "account-commercial-transition-external-proof",
"summary": "Prove the desktop and phone buyer/account journey for self-service Relay/Pro plan and cadence transitions before activation, including quote amount, effective date, cancellation/recovery state, and agreement with Stripe and runtime truth.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-07-22",
"lane_ids": [
"L17"
],
"repo_ids": [
"pulse",
"pulse-mobile",
"pulse-pro"
],
"subsystem_ids": []
},
{
"id": "cloud-commercial-transition-external-proof",
"summary": "Prove the Stripe event-order, reconciliation, atomic projection, and production Relay/Pulse license-version-floor boundary before self-service plan and cadence transitions are activated.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-07-22",
"lane_ids": [
"L3"
],
"repo_ids": [
"pulse",
"pulse-mobile",
"pulse-pro"
],
"subsystem_ids": [
"cloud-paid"
]
},
{
"id": "self-hosted-commercial-transition-coherence",
"summary": "Prove the complete self-service Relay/Pro plan and cadence transition offer before activation, including the approved timing/proration matrix and released-surface boundaries; the L3 and L17 follow-ups own external authority and buyer-journey proof.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-07-22",
"lane_ids": [
"L2"
],
"repo_ids": [
"pulse",
"pulse-pro"
],
"subsystem_ids": []
},
{
"id": "localized-product-surfaces-expansion",
"summary": "Track localization beyond the accepted German and Spanish first-wave floor: migrate remaining desktop, mobile, account, checkout-completion, alert-configuration/history, monitoring-table, settings, install, and troubleshooting journeys; add native-speaker review, pseudo-locale and extraction tooling, and broader screenshot QA; then admit French, Brazilian Portuguese, Japanese, Simplified Chinese, or Korean only when audience evidence and review capacity justify each locale.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-08-06",
"lane_ids": [
"L24"
],
"repo_ids": [
"pulse",
"pulse-mobile",
"pulse-pro"
],
"subsystem_ids": []
}
],
"coverage_gaps": [
{
"id": "host-identity-fork-heal-on-reenrollment",
"summary": "Host identities fork onto a '<base>-<hex>' spelling when an agent re-enrolls under a new token against an existing record (re-running an install with --proxmox is enough), and the only heal path (hostRenameHealSource in internal/monitoring/monitor_agents.go) requires the same token plus a changed hostname plus three missed health windows, so a re-enrollment fork fails two of the three conditions structurally and is held open forever. The PVE node keeps reporting the base agent UUID as LinkedAgentID while the host record carries the forked ID, so every identity consumer must resolve equivalent spellings indefinitely; discovery lookups were fixed symptom-side in 0e8f63cdd (PR #1715). Healing at the source is clone-safety territory (#1584): the machine-id evidence already on host records and the cross-estate veto signals from 53ba9786c plausibly let a re-enrollment rebind the existing base identity instead of forking, but that needs an owned slice with clone-safety regression coverage.",
"owner": "project-owner",
"status": "triaged",
"recorded_at": "2026-08-24",
"lane_ids": [
"L16"
],
"subsystem_ids": [
"agent-lifecycle"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 3,
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/host-identity-fork-heal-on-reenrollment-2026-08-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_agents.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_host_agents_test.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/servicediscovery/service.go",
"kind": "file"
}
]
},
{
"id": "resource-payload-static-metadata",
"summary": "The client-facing resource stream ships ~3KB of mostly-static metadata per resource (duplicated capabilities blobs with only 10 distinct values across 1,508 resources, canonicalIdentity alias/superseded-id history, aiSafeSummary prose, and policy routing) on every snapshot, REST recovery, and reconnect. At 50-node scale the snapshot is a single 4.73MB websocket frame and browser main-thread cost per delta reaches ~1s even on desktop hardware. Slimming the stream is a wire-format change with consumers beyond frontend-modern (pulse-mobile OTA compatibility, Pro surfaces, AI runtime), so it needs an owned slice with contract updates and cross-client verification.",
"owner": "project-owner",
"status": "triaged",
"recorded_at": "2026-08-24",
"lane_ids": [
"L6",
"L10",
"L13"
],
"subsystem_ids": [
"api-contracts",
"performance-and-scalability",
"unified-resources"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 6,
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/resource-payload-static-metadata-2026-08-24.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/stores/websocket.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/websocket/state_delta.go",
"kind": "file"
}
]
},
{
"id": "agent-privilege-boundary-separation",
"summary": "The Unified Agent still combines networked collection, root or root-equivalent host access, self-update authority, and optional arbitrary command execution in one runtime. The optional least-privilege profile reduces some access but adds the service account to the rootful Docker group when present, lets it own and replace its binary, forwards caller-controlled arguments through privileged sudo helpers, and does not separate monitoring credentials from remediation authority consistently. Addressing the trust concern requires a governed cross-surface redesign: API-first monitoring, an unprivileged collector, a typed no-network privileged helper, and a separately installed and credentialed action runner, with explicit migration and per-platform qualification.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-08-29",
"lane_ids": [
"L1",
"L6",
"L14",
"L16",
"L20"
],
"subsystem_ids": [
"agent-lifecycle",
"api-contracts",
"deployment-installability",
"security-privacy"
],
"proposed_resolution": "new-lane",
"coverage_impact": 8,
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/AGENT_PRIVILEGE_BOUNDARY_PLAN.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/secure-agent-runtime-committed-main-attestation-v6-2026-08-31.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/records/secure-runtime-rootless-v1-local-qualification-2026-09-01.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/agenttokens/install.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/hostagent/commands.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/install.sh",
"kind": "file"
}
]
},
{
"id": "infrastructure-aware-service-assurance",
"summary": "Pulse can execute and correlate basic availability probes, but it does not yet preserve trustworthy categorical history, verify application response contracts, combine runtime, platform, network, application, dependency, location, and freshness evidence into one service-delivery journey, or synthesize infrastructure-aware incidents and timelines. Without one governed product model, incremental protocol additions would produce a parallel monitor inventory and imitate endpoint-monitoring products instead of extending Pulse's canonical resource, relationship, fleet, and Patrol strengths.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-08-30",
"lane_ids": [
"L6",
"L8",
"L13",
"L16",
"L19",
"L22",
"L23"
],
"subsystem_ids": [
"agent-lifecycle",
"alerts",
"api-contracts",
"frontend-primitives",
"monitoring",
"patrol-intelligence",
"unified-resources"
],
"proposed_resolution": "new-lane",
"coverage_impact": 9,
"evidence": [
{
"repo": "pulse",
"path": "docs/AVAILABILITY_HISTORY_CONTRACT.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/SERVICE_ASSURANCE_PLAN.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/availability_poller.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/servicediscovery/availability_suggestion.go",
"kind": "file"
}
]
},
{
"id": "alert-lifecycle-replay-startup-scalability",
"summary": "Alert lifecycle projection replay walks the entire durable event log on every boot, twice (monitor start and the canonical resource-store boundary), synchronously on the HTTP serving path, and every replayed event triggers a full incident-store JSON rewrite. With a large event log (64k events on the dev mock instance) startup exceeds the dev supervisor's health-kill window, so the backend restarts forever and never serves. Replay needs a durable projection watermark so boot only walks the un-projected tail, needs to run off the serving path, and incident-store persistence needs save coalescing so replay and live bursts stop rewriting the full store per event.",
"owner": "project-owner",
"status": "triaged",
"recorded_at": "2026-08-31",
"lane_ids": [
"L6",
"L13"
],
"subsystem_ids": [
"alerts",
"monitoring"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 6,
"evidence": [
{
"repo": "pulse",
"path": "internal/ai/memory/incidents.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/alerts/event_emission.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/alerts/eventlog/eventlog.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/monitoring/monitor_alerts.go",
"kind": "file"
}
]
},
{
"id": "release-train-exact-candidate-promotion",
"summary": "Stable promotions built whatever the dispatch branch was at that second: the resolver checked that HEAD descends from the promoted RC but not that its content matches, so v6.4.0 shipped 64 changed files that v6.4.0-rc.12 never soaked, and every v6 version was mapped to main, which moves every few minutes under the autonomous maintainer. The release train needs a branch per train declared in the control plane, a resolver rule that refuses stable content beyond release metadata without a recorded hotfix reason, and a seven day soak for minor releases so the two-week cadence carries a real soak.",
"owner": "project-owner",
"status": "triaged",
"recorded_at": "2026-09-01",
"lane_ids": [
"L1"
],
"subsystem_ids": [
"deployment-installability"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 5,
"evidence": [
{
"repo": "pulse",
"path": "docs/release-control/control_plane.json",
"kind": "file"
},
{
"repo": "pulse",
"path": "docs/release-control/v6/internal/RELEASE_PROMOTION_POLICY.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "scripts/release_control/resolve_release_promotion.py",
"kind": "file"
}
]
},
{
"id": "ai-provider-guided-setup",
"summary": "Paying installs choose a Patrol model and schedule with no guidance on which models work with Patrol or what a schedule costs: 38 of 120 paid installs had no AI provider and 12 more had AI without Patrol in the 2026-09-01 assessment, a Pro customer picked Gemini Flash-Lite to save money and Patrol could not file verdicts, and a mispriced Opus row tripped the 20 USD budget and silently disabled Patrol (issue 1789). The provider settings need recommended, suggested, and caution markers drawn from the qualified set and known failures, a projected monthly Patrol cost from the price table and the install's run history, a cost-model schedule default for per-token providers, and a visible Patrol pause with a budget action when the budget is used up.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-09-02",
"lane_ids": [
"L6",
"L8"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"frontend-primitives",
"patrol-intelligence"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 3,
"evidence": [
{
"repo": "pulse",
"path": "docs/AI_PATROL_QUALIFICATION.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/utils/aiPatrolCostPresentation.ts",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_cost_projection.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol_model_guidance.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/api/ai_patrol_cost_preview.go",
"kind": "file"
}
]
},
{
"id": "patrol-findings-hygiene-attention-noise",
"summary": "Two users in a row (discussions #1623 and #1699) could not find Patrol's durable outcomes because Remember as expected, Dismiss: Not an issue, Dismiss: Later, and Create rule sat two levels below the Needs attention detail, which offered only Acknowledge and Suppress. The same screenshot showed an alert with eleven open/resolved transitions in a day rendered as eleven timeline rows, and Patrol findings that restate an active alert (same resource, same condition) listed as separate items. Telemetry on 2026-09-01 showed 4,709 findings across 736 installs but only 255 investigations across 27, so most findings are seen and ignored. Attention needs: alert-mirroring findings folded under the alert, flapping collapsed to one labelled item with a count, and the durable decisions on the detail with one-line explanations.",
"owner": "project-owner",
"status": "triaged",
"recorded_at": "2026-09-02",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"patrol-intelligence"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 3,
"evidence": [
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolAttentionWorkbench.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/findings_alert_mirror.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/findings_storm_throttler.go",
"kind": "file"
}
]
},
{
"id": "patrol-value-visibility",
"summary": "Nothing in Pulse shows a paying customer what Patrol has done for them. Patrol runs roughly 164 times per install per month, raises findings, investigates, proposes and executes fixes, and records model spend, but no surface adds that up: run history is per run, findings are per finding, action audits live under Actions, and spend sits on the AI cost dashboard. The 2026-09-01 assessment found 33 of 175 Pro subscriptions past due and 80 percent of paying installs never seeing the paid loop fire; a customer who cannot see the work stops paying for it. The gap is a read-only rollup over records Pulse already keeps, first as an in-app card on the Patrol page and second as a weekly email through existing notification channels.",
"owner": "project-owner",
"status": "planned",
"recorded_at": "2026-09-02",
"lane_ids": [
"L6"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"patrol-intelligence"
],
"proposed_resolution": "lane-expansion",
"coverage_impact": 4,
"evidence": [
{
"repo": "pulse",
"path": "docs/PATROL_WEEKLY_DIGEST.md",
"kind": "file"
},
{
"repo": "pulse",
"path": "frontend-modern/src/features/patrol/PatrolRecentWorkPanel.tsx",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/cost/store.go",
"kind": "file"
},
{
"repo": "pulse",
"path": "internal/ai/patrol.go",
"kind": "file"
}
]
}
],
"candidate_lanes": [
{
"id": "secure-agent-runtime-separation",
"name": "Secure Agent Runtime Separation",
"summary": "Separate monitoring, exceptional host privilege, update activation, and remediation into independently owned and credentialed runtimes: API-only collection where sufficient, an unprivileged collector by default, a typed no-network privileged helper, and an explicit action runner. Qualify the boundary through migration, rollback, adversarial, platform, and live telemetry proof before changing the product-wide default claim.",
"status": "proposed",
"recorded_at": "2026-08-29",
"target_id": "v6-product-lane-expansion",
"current_lane_ids": [
"L1",
"L6",
"L14",
"L16",
"L20"
],
"coverage_gap_ids": [
"agent-privilege-boundary-separation"
],
"subsystem_ids": [
"agent-lifecycle",
"api-contracts",
"deployment-installability",
"security-privacy"
],
"demand_evidence": [
"community-feedback: https://www.youtube.com/watch?v=cdaA-CJG-Ds",
"architecture-plan: docs/release-control/v6/internal/AGENT_PRIVILEGE_BOUNDARY_PLAN.md"
]
},
{
"id": "infrastructure-aware-service-assurance",
"name": "Infrastructure-Aware Service Assurance",
"summary": "Extend Pulse from infrastructure-state monitoring into service-delivery assurance by attaching active application verification to canonical resources, preserving coverage-aware history, using discovered services and remote agents for setup and observation, correlating failures through infrastructure relationships, and presenting the resulting evidence through fleet, incident, timeline, and Patrol workflows instead of a standalone monitor clone.",
"status": "accepted",
"recorded_at": "2026-08-30",
"target_id": "v6-product-lane-expansion",
"current_lane_ids": [
"L6",
"L8",
"L13",
"L16",
"L19",
"L22",
"L23"
],
"coverage_gap_ids": [
"infrastructure-aware-service-assurance"
],
"subsystem_ids": [
"agent-lifecycle",
"alerts",
"api-contracts",
"frontend-primitives",
"monitoring",
"patrol-intelligence",
"unified-resources"
],
"demand_evidence": [
"architecture-plan: docs/release-control/v6/internal/SERVICE_ASSURANCE_PLAN.md",
"demand-contract: docs/AVAILABILITY_HISTORY_CONTRACT.md",
"product-demand: pulse-pro/FEATURE_REQUESTS.md#fleet-scale-machine-availability-and-service-probes",
"telemetry: 339 of 6578 active persistent installs configured 2449 availability targets on 2026-08-29; 70 installs had at least 10 targets"
]
},
{
"id": "ai-provider-guided-setup",
"name": "Guided AI provider setup with cost preview",
"summary": "Answer 'which model should I pick and what will it cost' at the point of choice: recommended, suggested, and caution markers on the Patrol model pickers drawn from the qualified set and known failures; a projected monthly Patrol cost next to the model choice from Pulse's price table, the schedule, and the install's own run history; a cost-model schedule default for per-token providers that leaves chosen schedules untouched; 30-day spend against budget in the same place; and budget exhaustion surfaced as a Patrol pause with a budget action instead of a log line and a tripped breaker.",
"status": "accepted",
"recorded_at": "2026-09-02",
"target_id": "v6-product-lane-expansion",
"current_lane_ids": [
"L6",
"L8"
],
"coverage_gap_ids": [
"ai-provider-guided-setup"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"frontend-primitives",
"patrol-intelligence"
],
"demand_evidence": [
"product-demand: pulse-pro/FEATURE_REQUESTS.md#guided-ai-provider-setup-with-cost-preview",
"support: 2026-07-20 Pro customer Flash-Lite could not file Patrol verdicts; 2026-07-30 prospect asked which models Pulse recommends",
"issue: https://github.com/rcourtman/Pulse/issues/1789 (104k-token full run, mispriced budget trip silently disabled Patrol)",
"telemetry: 2026-09-01 clean basis, 38 of 120 paid installs without an AI provider and 12 more without Patrol",
"named-bet: cloud starting points are price-driven and labelled unqualified until the install's own readiness pass verifies them"
]
},
{
"id": "patrol-weekly-digest",
"name": "Patrol Weekly Digest",
"summary": "Show paying customers what Patrol did for them: a read-only weekly rollup of runs, findings raised and resolved, investigations, Patrol-origin actions, alerts reviewed, estimated model spend, and the current mode, computed only from records Pulse already retains. The first slice is the aggregation endpoint and an in-app This week card on the Patrol page; the weekly email through existing notification channels is the unscheduled second slice.",
"status": "proposed",
"recorded_at": "2026-09-02",
"target_id": "v6-product-lane-expansion",
"current_lane_ids": [
"L6"
],
"coverage_gap_ids": [
"patrol-value-visibility"
],
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"patrol-intelligence"
],
"demand_evidence": [
"named-bet: the 2026-09-01 assessment found nothing in Pulse shows a customer what Patrol did for them while 33 of 175 Pro subscriptions are past due and 80 percent of paying installs never saw the paid loop fire",
"product-demand: pulse-pro/FEATURE_REQUESTS.md#patrol-weekly-digest-what-patrol-did-for-you",
"design-note: docs/PATROL_WEEKLY_DIGEST.md"
]
}
],
"work_claims": [
{
"id": "claude-ai-provider-guided-setup-candidate-lane-ai-provider-guided-setup",
"agent_id": "claude-ai-provider-guided-setup",
"summary": "Guided AI provider setup with cost preview",
"target_id": "v6-product-lane-expansion",
"claimed_at": "2026-09-02T05:31:42Z",
"heartbeat_at": "2026-09-02T05:31:42Z",
"expires_at": "2026-09-02T09:31:42Z",
"work_item": {
"kind": "candidate-lane",
"id": "ai-provider-guided-setup"
}
},
{
"id": "claude-patrol-digest-candidate-lane-patrol-weekly-digest",
"agent_id": "claude-patrol-digest",
"summary": "Patrol weekly digest: aggregation endpoint and in-app This week card",
"target_id": "v6-product-lane-expansion",
"claimed_at": "2026-09-02T05:37:43Z",
"heartbeat_at": "2026-09-02T05:37:43Z",
"expires_at": "2026-09-02T11:37:43Z",
"work_item": {
"kind": "candidate-lane",
"id": "patrol-weekly-digest"
}
}
],
"open_decisions": [],
"source_of_truth_file": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
"resolved_decisions": [
{
"id": "ga-floor-policy",
"summary": "Staged release policy locked; deeper Hosted MSP and Pulse Account portal expansion is post-GA and not a GA floor gate.",
"kind": "release-policy",
"decided_at": "2026-02-27",
"subsystem_ids": [],
"lane_ids": [
"L4",
"L17"
]
},
{
"id": "msp-pricing-band-lock",
"summary": "Superseded by `msp-provider-tier-limit-lock`: MSP pricing originally used Starter/Growth/Scale = $149/$249/$399 monthly with 10/25/50 workspace breakpoints, but the current public/provider-hosted launch posture keeps the same monthly price points with tighter 5/15/40 workspace limits.",
"kind": "pricing",
"decided_at": "2026-02-27",
"subsystem_ids": [],
"lane_ids": [
"L2",
"L4"
]
},
{
"id": "stripe-mapping-contract-lock",
"summary": "Cloud/MSP Stripe mapping contract is locked; concrete price IDs remain operational fill-in tasks.",
"kind": "contract",
"decided_at": "2026-02-27",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4"
]
},
{
"id": "host-type-migration-boundary-audit",
"summary": "Host-type migration audit completed; remaining host references are compatibility boundaries, internal shims, or non-resource terminology.",
"kind": "architecture",
"decided_at": "2026-03-05",
"subsystem_ids": [
"agent-lifecycle",
"alerts",
"api-contracts",
"monitoring",
"unified-resources"
],
"lane_ids": [
"L6",
"L11",
"L13",
"L16"
]
},
{
"id": "trial-authority-saas-controlled",
"summary": "Trial acquisition for ordinary self-hosted v6 is retired: SaaS/cloud may own hosted trial/signup state, but the local runtime must not expose local trial start or the retired trial activation return path.",
"kind": "contract",
"decided_at": "2026-03-06",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L11"
]
},
{
"id": "v5-license-bridge-landed",
"summary": "The v5-to-v6 license migration bridge landed, including upgrade exchange, activation input acceptance, and aligned public migration guidance.",
"kind": "migration",
"decided_at": "2026-03-06",
"subsystem_ids": [],
"lane_ids": [
"L11"
]
},
{
"id": "browser-proof-commercial-migration",
"summary": "Browser-level proof exists for unresolved v5 commercial migration states via the upgraded-fixture commercial migration spec.",
"kind": "migration",
"decided_at": "2026-03-07",
"subsystem_ids": [],
"lane_ids": [
"L11"
]
},
{
"id": "commercial-migration-truth-table-owned",
"summary": "The v5 commercial migration truth table is owned by v6 release-control and unresolved paid-license states must remain preserved through migration.",
"kind": "migration",
"decided_at": "2026-03-07",
"subsystem_ids": [],
"lane_ids": [
"L11"
]
},
{
"id": "embedded-frontend-drift-protection",
"summary": "Embedded frontend drift protection landed through synced dist assets, embed parity tests, and native embedded migration UI proof.",
"kind": "governance",
"decided_at": "2026-03-07",
"subsystem_ids": [],
"lane_ids": [
"L11"
]
},
{
"id": "orchestrator-retired",
"summary": "The v6 release-control orchestrator was retired; direct repo-aware sessions and governance guardrails are the only supported execution path.",
"kind": "governance",
"decided_at": "2026-03-11",
"subsystem_ids": [],
"lane_ids": [
"L6",
"L9"
]
},
{
"id": "top-level-governance-split",
"summary": "SOURCE_OF_TRUTH.md now owns only stable governance and locked decisions; live lane state and evidence references live only in status.json.",
"kind": "governance",
"decided_at": "2026-03-11",
"subsystem_ids": [],
"lane_ids": [
"L6",
"L9"
]
},
{
"id": "stable-release-promotion-model",
"summary": "v6 and later releases use an opt-in RC preview channel plus a promotion-only stable channel; stable customers must receive only already-validated builds, unattended auto-update exposure remains stable-only, and GA stays blocked until rollback instructions and the v5 maintenance-only policy are explicit.",
"kind": "release-policy",
"decided_at": "2026-03-12",
"subsystem_ids": [],
"lane_ids": [
"L1",
"L3",
"L11",
"L12"
]
},
{
"id": "v5-maintenance-support-policy",
"summary": "Once v6 reaches stable or GA, v5 moves to a 90-day maintenance-only window for critical security issues, critical correctness/data-loss issues, and safe migration blockers only; after that window, v5 is unsupported.",
"kind": "release-policy",
"decided_at": "2026-03-12",
"subsystem_ids": [],
"lane_ids": [
"L9"
]
},
{
"id": "v5-pro-price-grandfathering",
"summary": "Legacy recurring Pulse Pro subscriptions already active before the public v6 pricing cutover keep their existing recurring price plus uncapped self-hosted monitoring and child-resource volume through the v6 pricing change until they cancel; renewals must preserve that grandfathered state, while any return after cancellation re-enters on current v6 pricing.",
"kind": "pricing",
"decided_at": "2026-03-12",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L11"
]
},
{
"id": "cloud-msp-price-id-propagation",
"summary": "The 13 canonical Cloud/MSP v6 price IDs are populated in the governed pulse-pro operations doc, launch checklist, and license-server env mapping template.",
"kind": "contract",
"decided_at": "2026-03-13",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4"
]
},
{
"id": "cloud-msp-stripe-prices",
"summary": "The 13 canonical Cloud/MSP v6 price IDs already exist as active live recurring Stripe prices and match the governed commercial mappings.",
"kind": "pricing",
"decided_at": "2026-03-13",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4"
]
},
{
"id": "mobile-usefulness-floor",
"summary": "Pulse Mobile is considered useful enough for the v6 RC line when it preserves at least one trusted paired instance across relaunches, surfaces relay/runtime state clearly in the main shell, fails closed into a recoverable disconnected state on stale or revoked access, and supports live approval visibility and action recovery; broader parity remains post-RC scope.",
"kind": "release-policy",
"decided_at": "2026-03-13",
"subsystem_ids": [
"frontend-primitives",
"relay-runtime"
],
"lane_ids": [
"L5",
"L7",
"L8",
"L12"
]
},
{
"id": "accidental-prerelease-tags-do-not-count-as-shipped-rcs",
"summary": "Accidental prerelease git tags do not count as shipped prerelease lineage. Local-only false-start prerelease tags must be cleared or superseded before the first real governed prerelease is published, and only actually published prerelease tags may be treated as valid stable-promotion `promoted_from_tag` lineage.",
"kind": "release-policy",
"decided_at": "2026-03-14",
"subsystem_ids": [],
"lane_ids": [
"L1",
"L9",
"L11",
"L12"
]
},
{
"id": "monitored-systems-counting-contract",
"summary": "Commercial counting for Pulse v6 is based on monitored systems, not installed agents: each top-level monitored system counts once regardless of collection path, while child resources remain included and API-only monitoring must consume the same cap as agent-backed monitoring.",
"kind": "contract",
"decided_at": "2026-03-17",
"subsystem_ids": [],
"lane_ids": [
"L2"
]
},
{
"id": "pulse-not-agent-sandbox-boundary",
"summary": "Pulse is not a universal agent sandbox; it is the infrastructure-specific context, policy, and action plane that sandboxed agents should use.",
"kind": "architecture",
"decided_at": "2026-03-17",
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"security-privacy",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L14"
]
},
{
"id": "self-hosted-pricing-band-lock-v2",
"summary": "Historical RC1 self-hosted pricing lock: Pulse v6 temporarily carried a capped Community / Relay / Pro / Pro+ self-hosted ladder during RC1, but that direction was superseded on 2026-04-16 by `self-hosted-core-monitoring-free` and must not be treated as the final GA self-hosted pricing truth.",
"kind": "pricing",
"decided_at": "2026-03-17",
"subsystem_ids": [],
"lane_ids": [
"L2"
]
},
{
"id": "v6-bridge-release-foundation",
"summary": "Pulse v6 is a bridge release toward a resource + policy + control platform: it must land irreversible primitives for canonical resources, policy-aware routing, governed actions, and fleet control without attempting the full private operational broker in one release.",
"kind": "architecture",
"decided_at": "2026-03-17",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"api-contracts",
"security-privacy",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L14",
"L16"
]
},
{
"id": "canonical-timeline-source-precedence",
"summary": "Unified-resource change history is the canonical durable backend timeline; alert incident memory remains a derived investigation projection for alert-local notes, analysis, commands, runbooks, and lifecycle breadcrumbs.",
"kind": "architecture",
"decided_at": "2026-03-20",
"subsystem_ids": [
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"unified-resources"
],
"lane_ids": [
"L6",
"L13"
]
},
{
"id": "mobile-public-release-stays-non-public-until-product-ready",
"summary": "Pulse Mobile may complete store setup and candidate submission plumbing before GA, but public rollout stays non-public until a human explicitly runs the separate release operation. The build 4 product bar was met on 2026-04-26 through fresh physical Android and iOS proof plus the explicit product-ready judgment recorded in the mobile blocker record.",
"kind": "release-policy",
"decided_at": "2026-03-28",
"subsystem_ids": [],
"lane_ids": [
"L5"
]
},
{
"id": "mixed-private-infrastructure-operations-direction",
"summary": "Pulse is moving toward the unified operations layer for mixed private infrastructure: operators should get one coherent place to monitor, investigate, and safely act across mixed estates, and new platform work is admitted only when it strengthens that operator surface rather than landing opportunistically.",
"kind": "governance",
"decided_at": "2026-03-30",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15",
"L16"
]
},
{
"id": "mobile-incident-companion-ia-v1",
"summary": "Superseded for GA by `mobile-product-role-and-audience`: Pulse Mobile's public-facing IA now centers on Status, Alerts, Open Pulse, Access, and Settings as a native companion for paired status, alert recovery, push/device trust, Relay-backed dashboard handoff, and safe contextual action. The earlier Home/Findings/Instances/Approvals/More incident-companion shape is not the current GA surface.",
"kind": "governance",
"decided_at": "2026-03-30",
"subsystem_ids": [],
"lane_ids": [
"L5"
]
},
{
"id": "platform-support-model-v1",
"summary": "Pulse v6 platform support is governed by one canonical model: owning platform surfaces declare primary ingestion, canonical resource projections, and support-floor surfaces; `docker` is the canonical Docker / Podman container-runtime lens and workload surface rather than an exclusive owning platform, and the shell labels that destination as Docker for operator recognition while shared runtime badges and management copy keep Docker / Podman or containers wording where precise; `kubernetes` remains a first-class orchestrator platform; runtime variants such as `podman` plus transport helpers are not top-level platforms.",
"kind": "architecture",
"decided_at": "2026-03-30",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15",
"L16"
]
},
{
"id": "vmware-vsphere-vcenter-first-admission-model",
"summary": "VMware vSphere is the current admitted strategic platform direction under the governed platform model: phase 1 stays vCenter-first and API-first, projects ESXi hosts as `agent`, VMs as `vm`, datastores as `storage`, keeps direct ESXi out of scope, treats snapshots as read-side workload context rather than recovery support, and leaves assistant control read-only until the governed action model expands.",
"kind": "architecture",
"decided_at": "2026-03-30",
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15"
]
},
{
"id": "vmware-vsphere-vcenter-support-claim-ratchet",
"summary": "VMware vSphere is already an admitted strategic platform direction, but it is not a supported Pulse platform until one real vCenter capability is recorded in LOCAL_CAPABILITIES.md and the governed phase-1 proof matrix passes; implementation and contract work may proceed against the locked model before that point, but product, settings, and assistant surfaces must not claim VMware support.",
"kind": "governance",
"decided_at": "2026-03-30",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15",
"L16"
]
},
{
"id": "platform-admission-first-lab-ready-stage",
"summary": "Admitted but not yet supported platforms now have one governed pre-support checkpoint, `first-lab-ready`: the architecture is locked, the shared phase floor is implemented, automated non-live proof is strong enough that the next highest-value step is live validation, and the support claim remains blocked until that live proof passes.",
"kind": "governance",
"decided_at": "2026-03-31",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15",
"L16"
]
},
{
"id": "rc-publication-judgment",
"summary": "Pulse v6 current `pulse/v6-release` candidate is approved for the first governed RC publication after the 2026-04-09 packet recorded a passing full active-target proof; `rc-publication-judgment` is resolved and prerelease publication may proceed on the governed v6 release line.",
"kind": "release-policy",
"decided_at": "2026-04-09",
"subsystem_ids": [],
"lane_ids": [
"L1",
"L8",
"L9",
"L12"
]
},
{
"id": "legacy-grandfathering-eligibility-cutoff",
"summary": "Uncapped grandfathered recurring continuity applies only to legacy recurring Pulse Pro subscriptions that were already active before the public v6 pricing cutover; public pricing and checkout copy must not imply that brand-new pre-cutover purchases automatically qualify for that legacy continuity.",
"kind": "pricing",
"decided_at": "2026-04-15",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L9"
]
},
{
"id": "self-hosted-core-monitoring-free",
"summary": "Pulse v6 self-hosted core monitoring is not a paid gate: homelab users must not be monetized on monitored-system volume itself, monitored systems remain the canonical counted unit for product understanding and migration truth, and paid self-hosted value must come from optional extras, hosted convenience, business workflow, support, or similar non-core surfaces.",
"kind": "pricing",
"decided_at": "2026-04-16",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L9"
]
},
{
"id": "self-hosted-paid-extras-packaging",
"summary": "Pulse v6 self-hosted paid packaging is now locked to Community / Relay / Pro with core monitoring included and not sold by monitored-system volume on every self-hosted tier: Relay sells remote access, mobile, push, and convenience plus 14-day history; Pro sells Relay plus AI operations, automation, advanced administration, and 90-day history; legacy Pro+ remains continuity-only and is not a public no-cap self-hosted checkout tier; Cloud and MSP continue as separate hosted/commercial offers.",
"kind": "pricing",
"decided_at": "2026-04-16",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L9"
]
},
{
"id": "patrol-product-language-ai-boundary",
"summary": "Patrol product-language migration boundary audited: customer-facing page titles, nav, route chrome, summary copy, actions, and empty states lead with Patrol/Pulse Patrol/Pulse Assistant. Internal file, store, type, transport, and log identifiers retain the shared AI-runtime boundary. The `/settings/system-ai` route remains the explicit provider/configuration carve-out; its visible chrome now lives under Pulse Intelligence > Provider & Models rather than generic AI settings. The remaining AgentProfilesPanel 'Ideas' tooltip was product-neutralized to 'Suggest profiles for your estate'.",
"kind": "architecture",
"decided_at": "2026-04-17",
"subsystem_ids": [
"patrol-intelligence"
],
"lane_ids": [
"L6"
]
},
{
"id": "self-hosted-plans-surface-entitlement-first",
"summary": "The self-hosted v6 commercial settings surface is plan-owned rather than tier-owned: the settings nav label is `Plans`, the page title is `Self-hosted plan`, and the canonical plan state must foreground the current tier plus available capabilities so paid upgrades can confirm what their key enabled without making default Community look like it is missing an activation key.",
"kind": "pricing",
"decided_at": "2026-04-22",
"subsystem_ids": [
"cloud-paid",
"frontend-primitives"
],
"lane_ids": [
"L3",
"L8",
"L9"
]
},
{
"id": "dashboard-home-estate-orientation-contract",
"summary": "Superseded by `provider-first-platform-landing-surface`: Dashboard no longer remains the default landing surface or a preserved overview path. The prior estate-orientation requirement now belongs to provider-first platform handoff and Add infrastructure, not a dashboard-home or legacy Infrastructure default surface.",
"kind": "contract",
"decided_at": "2026-04-23",
"subsystem_ids": [
"frontend-primitives"
],
"lane_ids": [
"L8"
]
},
{
"id": "self-hosted-paid-surface-classification",
"summary": "Current v6 self-hosted paid surfaces now classify commercial capabilities explicitly: only the primary Pro pillars (root-cause analysis, safe remediation, 90-day history, and included admin extras) may be marketed in customer-facing copy and upgrade prompts; compatibility-only gates such as `kubernetes_ai` remain valid runtime facts but non-marketed, and legacy claims such as `incident memory`, `scheduled remediations`, and `execution audit trail` stay retired unless rebuilt into first-class product surfaces.",
"kind": "pricing",
"decided_at": "2026-04-23",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L3",
"L9"
]
},
{
"id": "mobile-product-role-and-audience",
"summary": "Pulse Mobile v6 GA is a native companion for paired status, alerts, push/device trust, Relay-backed Open Pulse handoff, and contextual recovery from notifications or deep links. Full monitoring depth remains in the mobile-optimized web app, and the native app must not read as a miniature dashboard or approvals-first control center.",
"kind": "governance",
"decided_at": "2026-04-24",
"subsystem_ids": [],
"lane_ids": [
"L5"
]
},
{
"id": "infrastructure-default-landing-surface",
"summary": "Superseded by `provider-first-platform-landing-surface`: the 2026-04-29 Dashboard retirement moved authenticated users off Dashboard and onto Infrastructure/Add infrastructure, but current v6 runtime handoff now belongs to provider-first platform selection rather than legacy Infrastructure.",
"kind": "contract",
"decided_at": "2026-04-29",
"subsystem_ids": [
"frontend-primitives"
],
"lane_ids": [
"L8",
"L13"
]
},
{
"id": "agent-ready-operations-api-cli-contract",
"summary": "Agent-ready Pulse product work is API/CLI-first: stable HTTP APIs and a deterministic CLI must own resources, timelines, capability discovery, governed action planning, approvals, execution, verification, and audit; MCP may exist only as a compatibility adapter over those contracts, not as the source-of-truth protocol or a lane by itself.",
"kind": "architecture",
"decided_at": "2026-05-03",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"api-contracts",
"monitoring",
"security-privacy",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L14",
"L16",
"L18",
"L19",
"L20",
"L21",
"L22"
]
},
{
"id": "pulse-intelligence-product-contract",
"summary": "Pulse Pro's AI direction is proactive infrastructure intelligence: Patrol is the detection and investigation engine, Assistant is the contextual conversation, approval, and governed action surface, and generic chat polish is not the canonical product objective.",
"kind": "contract",
"decided_at": "2026-05-06",
"subsystem_ids": [
"ai-runtime",
"api-contracts",
"patrol-intelligence",
"security-privacy",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L14",
"L18",
"L19",
"L20",
"L23"
]
},
{
"id": "platform-page-membership-overlap-v1",
"summary": "Pulse v6 primary IA remains platform-first rather than a generic mixed systems page, with a dedicated container-runtime lens for Docker / Podman workloads: a single physical or agent-backed system may appear on multiple platform or runtime pages when it participates in multiple contracts, and each page must show only the workloads and native resources relevant to that scope. Workload platform membership is a canonical resource contract, not a page-local platformType guess: Docker/Podman containers reported from a Proxmox host or LXC may appear in both the Proxmox Workloads table and the container-runtime lens, while TrueNAS apps that expose Docker-compatible runtime metadata remain TrueNAS-owned and do not become Docker-managed action targets. Host identity stays separate from runtime membership, so an Unraid server that reports Docker containers can appear on the container-runtime page while still reading as an Unraid-profiled host rather than a generic Docker server.",
"kind": "architecture",
"decided_at": "2026-05-17",
"subsystem_ids": [
"agent-lifecycle",
"ai-runtime",
"alerts",
"api-contracts",
"monitoring",
"storage-recovery",
"unified-resources"
],
"lane_ids": [
"L6",
"L13",
"L15",
"L16"
]
},
{
"id": "provider-first-platform-landing-surface",
"summary": "Pulse v6 authenticated root, login handoff, primary navigation, and Standalone eligibility are owned by the frontend-primitives provider-first platform contract; adjacent subsystem docs may reference that owner but must not carry a second route/order definition. Legacy Infrastructure is retired rather than route-compatible.",
"kind": "contract",
"decided_at": "2026-05-23",
"subsystem_ids": [
"frontend-primitives"
],
"lane_ids": [
"L8"
]
},
{
"id": "docker-overview-host-plus-workloads",
"summary": "Docker / Podman Overview is the primary container-runtime landing surface and must show runtime hosts plus primary container workloads in the proven Pulse host-then-workloads pattern; `/docker/containers` remains a compatibility route to that overview instead of a separate visible tab, while Images, Storage, Networks, and Swarm remain evidence-gated drill-down workflows.",
"kind": "contract",
"decided_at": "2026-05-31",
"subsystem_ids": [
"unified-resources"
],
"lane_ids": [
"L13"
]
},
{
"id": "mock-mode-toggle-seamless",
"summary": "Mock-mode toggles are successful only when the managed browser entrypoint reports the requested mock state through `/api/system/mock-mode`; launcher supervisor handoffs during restart must be adopted as managed runtime recovery rather than surfaced as false failures, and non-clean toggle restarts may continue only after that browser-entrypoint proof passes.",
"kind": "contract",
"decided_at": "2026-05-31",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "platform-workflow-tabs-evidence-gated",
"summary": "Platform and runtime workflow tabs must be evidence-gated by the native row or signal model that populates them: Overview remains the stable landing tab, supporting workflow tabs appear only when current inventory or signal exists, and legacy/direct object routes fall back to Overview when their workflow has no information to show. Overview content remains platform-specific rather than forcing every platform into a Docker-style clone.",
"kind": "contract",
"decided_at": "2026-05-31",
"subsystem_ids": [
"frontend-primitives",
"unified-resources"
],
"lane_ids": [
"L8",
"L13"
]
},
{
"id": "hosted-tenant-runtime-hibernation",
"summary": "Hosted Cloud/MSP tenant runtime may be hibernated for cost control while provider-hosted MSP is the default launch motion, but hibernation must preserve snapshots, config, DNS, secrets references, and a wake path, and it must not disable the public site, license server, checkout/webhook fulfillment, license retrieval, refund/data-request fallbacks, active Relay/mobile infrastructure, or Pulse Account account-recovery surfaces.",
"kind": "pricing",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "msp-buying-motion-lock",
"summary": "MSP public buying motion is split: Starter is the self-serve checkout path for small providers, while Growth, Scale, and Enterprise stay request-based for assisted onboarding, reporting, support, deployment-shape, and terms review.",
"kind": "pricing",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "msp-design-partner-growth-offer",
"summary": "Qualified MSP design partners may receive assisted Growth access at the Starter price for a limited 6-12 month field-feedback window, including up to 15 client workspaces, without changing public self-serve pricing or exposing Growth as checkout.",
"kind": "pricing",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "msp-provider-hosted-first-launch",
"summary": "MSP launch defaults to provider-hosted central deployments: the MSP runs the Pulse instance in their own cloud or infrastructure while Pulse Account owns licensing and client-workspace management; Pulse-hosted MSP remains concierge/request-only until tenant isolation, ingest, reporting, operations, and support load are proven.",
"kind": "pricing",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "msp-provider-tier-limit-lock",
"summary": "MSP provider workspace limits supersede the earlier `msp-pricing-band-lock` breakpoints and are intentionally tight: Starter includes up to 5 client workspaces, Growth up to 15, Scale up to 40, and larger providers move to Enterprise/custom terms so support, onboarding, reporting, and deployment load are sized before rollout.",
"kind": "pricing",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "pre-ga-public-checkout-posture",
"summary": "Until the project owner explicitly approves the GA/public v6 cutover, production public landing and checkout remain on v5 (`PULSE_PUBLIC_RELEASE_TRACK=v5`, `PULSE_V6_RELEASE_APPROVED=0`, no grandfathered recurring snapshot), while v6 commercial pricing and checkout stay preview/proof-only.",
"kind": "release-policy",
"decided_at": "2026-06-01",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L9",
"L12"
]
},
{
"id": "patrol-plan-locked-mode-discovery",
"summary": "Resolved the patrol-intelligence contract conflict over plan-locked Patrol mode discoverability in favor of a clean free product: plan-locked (free) Patrol working surfaces must not surface paid modes, disabled paid-mode buttons, compact Pro badges, or any paid-mode disclosure. The free Patrol surface stays a complete monitoring tool with no mention of paid Patrol capabilities; Pro discovery belongs in Settings, the website/docs, and contextual at-need prompts, not in the daily-use control surface. This drops the prior permissive carve-out and the interim opt-in disclosure approach entirely. Runtime-locked Pro installs may still show explicit blocking copy because the operator already holds the entitlement.",
"kind": "contract",
"decided_at": "2026-06-24",
"subsystem_ids": [
"patrol-intelligence"
],
"lane_ids": [
"L6"
]
},
{
"id": "current-branch-ga-no-rc8-default",
"summary": "The next public v6 release target is GA from current pulse/v6-release after accumulated post-RC7 fixes. Do not promote RC7 unchanged, and do not plan RC8 by default unless the release owner changes direction.",
"kind": "release-policy",
"decided_at": "2026-07-01",
"subsystem_ids": [],
"lane_ids": [
"L1",
"L2",
"L5",
"L9",
"L12"
]
},
{
"id": "current-branch-ga-owner-risk-acceptance",
"summary": "On 2026-07-02 the release owner accepted the accumulated post-RC7 pulse/v6-release branch changes for v6.0.0 GA without RC8, another soak, or additional current-branch validation before GA; this is a bounded release-owner risk acceptance, not validation evidence for the post-RC7 changes.",
"kind": "release-policy",
"decided_at": "2026-07-02",
"subsystem_ids": [],
"lane_ids": [
"L1",
"L2",
"L5",
"L9",
"L12"
]
},
{
"id": "mobile-candidate-refresh-in-release-workflow",
"summary": "Governed release workflow must account for Pulse Mobile candidate freshness when release work changes mobile-facing relay, auth, approval, notification, download, or customer-access surfaces: refresh the TestFlight and Play internal-testing candidate, or explicitly record why the existing mobile candidate remains valid. This does not convert the direct-link beta into public App Store or Play rollout; public mobile release remains gated by current mobile proof and the non-public rollout policy.",
"kind": "release-policy",
"decided_at": "2026-07-07",
"subsystem_ids": [],
"lane_ids": [
"L5"
]
},
{
"id": "cloud-msp-availability-contract",
"summary": "Cloud is unavailable; historical Cloud prices, caps, trial, and support labels are dormant proposals rather than a current offer, and reopening requires governed proof of card policy, economic unit/caps, support, retention, export, cancellation, reactivation, and runtime enforcement. MSP remains an assisted preview, provider-hosted by default, with 5/15/40 isolated client-workspace limits and recorded monthly/annual prices; this supersedes the earlier Starter self-serve buying motion until a later explicit decision reopens it.",
"kind": "pricing",
"decided_at": "2026-07-14",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L4",
"L17"
]
},
{
"id": "relay-commercial-invalidation-contract",
"summary": "Operator Relay must not serve v6 grants until it has synchronously drained the authenticated revocation feed; stale feed state fails readiness, and an applied license revocation, installation revocation, or higher license-version floor disconnects affected active v6 sessions and clears their persisted reconnect credentials. The global operator feed credential must never be distributed to customer Pulse installations; customer-runtime invalidation requires installation-scoped authentication or an equivalently bounded authority.",
"kind": "architecture",
"decided_at": "2026-07-14",
"subsystem_ids": [
"cloud-paid",
"relay-runtime"
],
"lane_ids": [
"L3",
"L7"
]
},
{
"id": "self-hosted-commercial-scope-support-contract",
"summary": "One Relay or Pro subscription covers one owner-operated Pulse environment with unmetered monitored systems and child resources plus three concurrent primary/migration/recovery activations. Verified administrative transfer is permitted, resale/sharing/unverified assignment is prohibited, and Relay/Pro include standard verified commercial support typically within two business days without an SLA or priority-support promise.",
"kind": "contract",
"decided_at": "2026-07-14",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L17"
]
},
{
"id": "self-hosted-commercial-transition-contract",
"summary": "Relay-to-Pro and monthly-to-annual changes are immediate only after an explicit prorated quote and successful payment; capability downgrades and annual-to-monthly changes occur at renewal without proration; voluntary cancellation ends paid capability at the paid-through timestamp with a seven-day recovery-only window, while payment failure receives seven days of functional grace. Downgrade preserves configuration, report definitions, and audit records; out-of-tier history/artifacts soft-hide for 30 days and become purge-eligible after 60 days; completed cancellation or tier/cadence change ends grandfathered recurring-price continuity.",
"kind": "contract",
"decided_at": "2026-07-14",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L12",
"L17"
]
},
{
"id": "unified-commercial-offer-projection-contract",
"summary": "Community, Relay, and Pro remain distinct customer jobs with Pro explicitly bundling Relay; one versioned commercial offer contract must project into public pricing, Pulse Account, in-product plans, checkout, read-only Stripe catalog audit, support policy, billing persistence, and runtime entitlements. Stripe stays billing truth, while one Pulse-owned idempotent transition authority atomically owns the local commercial projection and every material entitlement change increments license_version.",
"kind": "architecture",
"decided_at": "2026-07-14",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3",
"L12",
"L17"
]
},
{
"id": "self-hosted-commercial-surfaces-opt-in-posture",
"summary": "The project owner chose the complete revert of the 2026-08-07 self-hosted commercial-surface cluster. Ordinary free self-hosted sessions return to the prior opt-in commercial posture; the proactive business-estate prompt and telemetry, checkout-source attribution, and newly broadened reactive paid entry points are removed. Any narrower reintroduction requires a new explicit product decision with reproducible evidence.",
"kind": "release-policy",
"decided_at": "2026-08-08",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L2",
"L3"
]
},
{
"id": "reporter-test-image-validation-path",
"summary": "A reviewed Docker fix that needs confirmation from one or a few named issue reporters uses an immutable issue-and-commit test image by default instead of manufacturing an RC solely for narrow validation. The image remains a diagnostic source build, cannot mutate release surfaces or satisfy release lineage, and does not force an immediate patch after successful reporter confirmation.",
"kind": "release-policy",
"decided_at": "2026-08-10",
"subsystem_ids": [],
"lane_ids": [
"L1"
]
},
{
"id": "self-hosted-business-tier-launch",
"summary": "The project owner approved launching the dormant self-hosted business tier for public checkout: $399/year annual-only, unlimited seats, 365-day history, next-business-day support target, Pro-identical features per cloud-paid Extension Point 26. Newly issued Pro subscriptions carry a 3-seat max_users limit on new Stripe price ids; previously issued licenses keep their unlimited posture. The 2026-08-08 opt-in presentation posture is unchanged: no proactive in-product surface returns, and Business appears only through the public pricing model payload and checkout. Decision record: records/business-tier-launch-2026-08-20.md; evidence is the 2026-08-18 re-baselined business-estate read (682 estates, 7.77% vs 1.25% paid, 6.2x).",
"kind": "release-policy",
"decided_at": "2026-08-20",
"subsystem_ids": [
"cloud-paid"
],
"lane_ids": [
"L3"
]
},
{
"id": "v6-3-0-telemetry-backed-stable-cutoff",
"summary": "On 2026-08-22 the release owner reviewed the privacy-safe production telemetry posture for v6.3.0-rc.5 and v6.3.0-rc.6, found no new update failures, rollback signals, notification-failure increases, or governed-action-failure increases, and approved stable v6.3.0 from main cutoff 53ba9786c5522a6839f9cbd3d01c02402556f9eb without another RC or the remainder of the normal 72-hour soak. This is a version-bound owner-risk acceptance that explicitly includes the modest cohort, young rc.6 follow-up window, and bounded post-RC changes; it is not soak evidence or a standing exception.",
"kind": "release-policy",
"decided_at": "2026-08-22",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "v6-3-0-unsigned-windows-owner-exception",
"summary": "On 2026-08-22 the release owner explicitly authorized unsigned Windows Unified Agent artifacts for stable v6.3.0 because Authenticode signing is not yet available. This version-bound exception changes only the Authenticode requirement: the exact release SHA, immutable candidate manifest, SHA-256 checksums, detached signatures, published-digest verification, and public Unknown Publisher disclosure remain mandatory. Stable v6.3.1 and later restore mandatory Authenticode unless another explicit version-bound decision is recorded.",
"kind": "release-policy",
"decided_at": "2026-08-22",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "trusted-pc-single-build-artifact-handoff",
"summary": "The project owner designated the dedicated PVE PC runners as trusted, credential-free compilers for public and private release payloads across RC, stable, and patch channels. Each payload is built once in a separately dispatched workflow run, uploaded as an immutable GitHub Actions artifact, and consumed without recompilation only after a GitHub-hosted job verifies the exact artifact id, server-recorded archive SHA-256, isolated compiler workflow run, head SHA, version/source inner manifest, and complete file digests. Signing and publication credentials remain hosted-only, and the complete SignPath workflow run contains only GitHub-hosted jobs rather than relying on a sibling-job interpretation of the Foundation rule.",
"kind": "release-policy",
"decided_at": "2026-08-23",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "v6-3-1-unsigned-windows-owner-exception",
"summary": "On 2026-08-23 the release owner explicitly authorized unsigned Windows Unified Agent artifacts for stable v6.3.1 after exact-SHA rehearsal 32634435531 proved the SignPath production certificate remained CSR PENDING and the release-signing policy was invalid. This version-bound exception changes only the Authenticode requirement: the exact release SHA, immutable candidate manifest, SHA-256 checksums, detached signatures, published-digest verification, and public Unknown Publisher disclosure remain mandatory. Stable v6.3.2 and later restore mandatory Authenticode unless another explicit version-bound decision is recorded.",
"kind": "release-policy",
"decided_at": "2026-08-23",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "windows-authenticode-unavailable-owner-policy",
"summary": "On 2026-08-25 release run 32896554952 failed closed when the SignPath production request returned Invalid request to SignPath API before creating a signing-request record. The release owner directed stable releases from v6.3.2 onward to skip Windows Authenticode while production credentials and certificate authorization remain unavailable. This standing unavailable state changes only the Authenticode requirement: the exact release SHA, immutable candidate manifest, SHA-256 checksums, detached signatures, published-digest verification, and public Unknown Publisher disclosure remain mandatory. Windows signing must not be restored until the release owner confirms that SignPath production credentials and certificate authorization are ready.",
"kind": "release-policy",
"decided_at": "2026-08-25",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "prerelease-observation-window",
"summary": "After the first release candidate on a version line, each later public RC requires at least 24 hours of observation since the previous published RC. Compatible fixes and release evidence accumulate during the window, while draft creation, dry runs, and issue-scoped reporter test images remain available without replacing the public cohort.",
"kind": "release-policy",
"decided_at": "2026-08-28",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
},
{
"id": "v6-4-0-expedited-stable-cutoff",
"summary": "On 2026-08-28 the release owner explicitly directed stable v6.4.0 publication from runtime cutoff 18b22d1ebbfe542484652e419320fc7643a792f0, promoted from published v6.4.0-rc.12, without another public candidate or the remainder of the normal 72-hour soak. The accepted reason is active customer harm from incorrect same-name Proxmox agent links, repeated Docker inspection load, incomplete backup and SMART detail, and unstable rolling metric history. This is a version-bound owner-risk acceptance that includes the bounded post-RC product fixes. It is not soak evidence or a standing exception.",
"kind": "release-policy",
"decided_at": "2026-08-28",
"subsystem_ids": [
"deployment-installability"
],
"lane_ids": [
"L1"
]
}
]
}