Pulse/docs/release-control/v6/internal
rcourtman e657f6ace9 Suppress assessment error penalty after trailing-success recovery
The overall-health "Recent Patrol errors" coverage factor in
summarizeRecentPatrolCoverage was anchoring the score to a
stale ratio: it counted errors across the last 10 runs without
weighting recency. After Pulse fixed two compounding Patrol
bugs today, four consecutive successful runs (50+ tool calls
each) followed six earlier failures. The assessment kept
showing C/65 with the prediction "most recent Patrol runs
encountered errors (6 of 10)" — directly contradicting the
fact that *every* recent run had succeeded.

Operators reading that score would conclude Pulse Patrol is
still broken. It isn't. The fix dragged the grade.

This commit adds a recovery-suppression check: count trailing
successful full Patrol runs from the most-recent end of the
window (GetAll returns newest-first), skipping non-full runs.
When three or more consecutive trailing successes exist —
roughly a 9-hour clean stretch at the default 3-hour cadence —
the error penalty drops entirely. The score reflects current
reality.

Three is conservative: a single recovery run could be a
transient win; three consecutive demonstrate the underlying
fix is sticking. Below the threshold, the existing ratio-tiered
penalty still applies so partially-recovered states still
register.

Two tests guard the boundary:
  - 6 historical errors + 3 trailing successes → no coverage
    factor (suppressed)
  - 6 historical errors + 2 trailing successes → coverage
    factor remains (recovery incomplete)

Live verified after this commit lands: the assessment that's
been stuck at C/65 since the malformed-history fix will
recompute to A/B grade as soon as the trailing 3 successful
runs are recognized by the same recent-runs query.

ai-runtime contract updated.
2026-05-10 23:02:57 +01:00
..
records Mark paid runtime build attribution gate passed 2026-05-08 10:34:33 +01:00
subsystems Suppress assessment error penalty after trailing-success recovery 2026-05-10 23:02:57 +01:00
CANONICAL_DEVELOPMENT_PROTOCOL.md Unify mock chart history timelines 2026-04-01 01:04:06 +01:00
COMMERCIAL_CANCELLATION_REACTIVATION_E2E_TEST_PLAN.md docs(release-control): track governed proof assets 2026-03-27 11:59:43 +00:00
COMMERCIAL_CANCELLATION_REACTIVATION_RECORD_TEMPLATE.md docs(release-control): track governed proof assets 2026-03-27 11:59:43 +00:00
CUSTOMER_ACCOUNT_PORTAL_SPEC.md Sync Pulse Account specs with governed lane 2026-04-20 09:42:22 +01:00
HIGH_RISK_RELEASE_VERIFICATION_MATRIX.md Require current release gate runbooks 2026-05-08 01:26:06 +01:00
IDENTITY_INVARIANTS.md Fail closed on ambiguous email principal resolution 2026-05-05 09:26:10 +01:00
LEGACY_HOST_CLASSIFICATION_2026-03-05.md docs(release-control): track governed proof assets 2026-03-27 11:59:43 +00:00
PLATFORM_SUPPORT_MANIFEST.json Show platform versions in system badges 2026-05-08 15:07:09 +01:00
PLATFORM_SUPPORT_MODEL.md Drive agent host profiles from platform manifest 2026-05-07 23:42:15 +01:00
PRE_RELEASE_CHECKLIST.md Guard forward release signing against trust-root drift 2026-04-22 19:59:18 +01:00
PULSE_ACCOUNT_PORTAL_SPEC.md Sync Pulse Account specs with governed lane 2026-04-20 09:42:22 +01:00
RC_TO_GA_REHEARSAL_TEMPLATE.md Govern RC-to-GA rehearsal record capture 2026-04-11 14:08:57 +01:00
RELEASE_PROMOTION_POLICY.md Document Pro release promotion gate 2026-05-07 22:53:32 +01:00
SOURCE_OF_TRUTH.md Document free-first self-hosted direction 2026-04-29 11:02:58 +01:00
status.json Mark paid runtime build attribution gate passed 2026-05-08 10:34:33 +01:00
SUBSYSTEM_CONTRACT_TEMPLATE.md docs(release-control): track governed proof assets 2026-03-27 11:59:43 +00:00
V5_MAINTENANCE_SUPPORT_POLICY.md Prepare the v6 stable promotion candidate 2026-04-20 14:09:17 +01:00
V5_TO_V6_COMMERCIAL_MIGRATION_AUDIT_2026-03-07.md Retire self-hosted trial start route 2026-04-28 15:05:58 +01:00
V6_BRIDGE_RELEASE_FOUNDATION_SPEC.md Polish internal prerelease wording 2026-03-25 11:20:26 +00:00
VMWARE_VCENTER_PHASE1_ALERTS_AND_ASSISTANT_SPEC.md Lock VMware vCenter alert and assistant contract 2026-03-30 16:27:00 +01:00
VMWARE_VCENTER_PHASE1_API_RUNTIME_SPEC.md Preserve VMware setup failure classifications 2026-03-31 11:51:13 +01:00
VMWARE_VCENTER_PHASE1_ONBOARDING_SPEC.md Preserve VMware setup failure classifications 2026-03-31 11:51:13 +01:00
VMWARE_VCENTER_PHASE1_PROOF_MATRIX.md Unify VMware runtime failure guidance 2026-03-31 12:23:42 +01:00
VMWARE_VCENTER_PHASE1_PROOF_RECORD_TEMPLATE.md Add VMware vCenter proof record template 2026-03-30 16:54:56 +01:00
VMWARE_VCENTER_PHASE1_RESOURCE_PROJECTION_SPEC.md Lock VMware vCenter projection contract 2026-03-30 16:17:51 +01:00
VMWARE_VSPHERE_PHASE1_EXECUTION_PLAN.md Clarify VMware first-lab-ready harness 2026-03-31 09:51:49 +01:00