Commit Graph

10895 Commits

Author SHA1 Message Date
github-actions[bot] 7372b80cd8 Release customer promotion lock run=34176128291 attempt=2 owner=v6.4.3-rc.1 release-convergence-owner-34176128291-2 2026-09-08 01:52:41 +00:00
pulse-triage[bot] 9b57f7cacd Merge pull request #1972 from rcourtman/maintainer/20260908T000813Z
Prevent stale monitoring from looking healthy
2026-09-08 01:00:01 +00:00
pulse-triage[bot] fce4b4c601 Merge landed regression proposal before publication
Incorporate protected main merge 977afdd955 while preserving the exact reviewed watchdog boundary commit and its ancestry.

Change-source: pulse-maintainer
2026-09-08 01:16:05 +01:00
pulse-triage[bot] 977afdd955 Merge pull request #1969 from rcourtman/maintainer/20260907T231621Z
Strengthen recurring incident and guest-memory regression coverage
2026-09-08 00:11:17 +00:00
pulse-triage[bot] 221e7ea258 test(monitoring): pin watchdog freshness boundaries
Existing stall coverage checks a two-minute-old observation but does not pin the freshness cutoff or future-clock tolerance. Cover absent progress and both sides of these boundaries so a stale or implausible timestamp cannot silently become a healthy external signal. This adds sender-only regression coverage without changing watchdog behaviour or release scope.

Change-source: pulse-maintainer
2026-09-08 00:42:06 +01:00
pulse-triage[bot] b7e44ee28f Merge landed alert-reliability proposal before publication
Incorporate protected main merge 203b50a46e while preserving the exact reviewed test commits and their ancestry.

Change-source: pulse-maintainer
2026-09-08 00:20:46 +01:00
pulse-triage[bot] 203b50a46e Merge pull request #1967 from rcourtman/maintainer/20260907T222533Z
Keep recurring incidents distinct and clear withdrawn Proxmox memory
2026-09-07 23:17:43 +00:00
pulse-triage[bot] 6d7c66e13b test(monitoring): cover guest memory cache failure and recovery
Existing cache tests exercise reuse and retry separately. Cover the full successful-read, expiry, failed refresh, negative backoff and recovery transition so stale successes cannot hide collection failure and explicit zero available memory remains a valid pressure sample. This adds synthetic regression coverage only; it does not change runtime behaviour or establish installed acceptance.

Change-source: pulse-maintainer
2026-09-07 23:52:46 +01:00
pulse-triage[bot] d37f653a66 Merge candidate 20260907T221500Z-core-runtime
Preserve the reviewed JSON checkpoint replay acceptance commit exactly atop the reconciled canonical main history.

Change-source: pulse-maintainer
2026-09-07 23:38:09 +01:00
pulse-triage[bot] 0a464e21c8 Merge current upstream main before publication
Change-source: pulse-maintainer
2026-09-07 23:29:53 +01:00
pulse-triage[bot] 3f68a61c8d test(ai): verify occurrence projection across JSON checkpoint replay
Retain unordered and subsecond recurrence boundaries through incident-store reconstruction; assert unchanged projected identity and zero checkpoint replacements after replay. Canonical events remain in memory, with no durable event-store or installed write-rate claim.

Change-source: pulse-maintainer
2026-09-07 23:24:05 +01:00
pulse-triage[bot] 5e3a867198 Merge pull request #1959 from rcourtman/maintainer/20260907T150154Z
Protect alert credentials and preserve accurate recovery state
2026-09-07 22:19:47 +00:00
pulse-triage[bot] 6332fdce44 Merge reviewed Proxmox memory withdrawal repair
Change-source: pulse-maintainer
2026-09-07 23:10:22 +01:00
pulse-triage[bot] 7eec890025 fix(web): clear explicitly withdrawn Proxmox memory
A canonical snapshot can omit memory after the producer marks its Proxmox
facet unavailable. Retaining the previous display metric hides withdrawal
and leaves a stale percentage visible. Clear that explicit transition in
full and fast merges and emit the corresponding store operation, preserving
ordinary partial omission and trusted canonical metrics including zero.

Pin withdrawal and recovery with adapter tests and desktop/narrow Chromium
acceptance. Workload details remain canonical-only; do not invent raw totals
or Usage UI. Record inspected screenshots and matching subsystem contracts.

Change-source: pulse-maintainer
2026-09-07 23:03:54 +01:00
pulse-triage[bot] a41c60597b fix(ai): bound retained incident timelines to their occurrence
The real monitoring lifecycle dispatcher reproduces a closed incident reopening when its next occurrence fires: canonical projection selected all later events for the same alert. Bound retained-shell projections to their exact start and the next retained start, keeping subsecond recurrence and historical acknowledgement separate. Add in-memory callback coverage with both projections attached; twenty race repetitions pass along with focused incident tests. No retention migration, canonical-only fallback rewrite, notification-delivery claim or aggregate write-byte claim.

Change-source: pulse-maintainer
2026-09-07 22:58:51 +01:00
pulse-triage[bot] c857802df6 fix(ai): preserve incident occurrence identity during lifecycle replay
Issue #1966 reports distinct incident IDs for one occurrence. Deterministic lifecycle replay creates eleven shells for one resolved start, including after JSON restart; open-only matching also lets an old resolution close a newer occurrence. Match exact lifecycle starts and retain closed identity on replay, without changing legacy zero-start matching or retention. Add recurrence, restart and canonical-shell regression coverage; focused incident race tests pass for twenty repetitions. This does not establish total write savings or migrate existing duplicates.

Change-source: pulse-maintainer
2026-09-07 22:39:41 +01:00
pulse-triage[bot] 653a28192a fix(discovery): preserve current records during suggestion backfill
Backfill could save a stale List snapshot after manual discovery repaired a service, restoring unknown identity and dropping its URL and engine version. Derive and persist missing suggestions from the current record under the store lock instead, without holding it across monitor reads.

Add a deterministic SetReadState/manual-refresh interleaving and encrypted restart assertions, plus coverage for current identity, dismissed proposals, deletion and persistence failure. The discovery package passes twenty race-enabled repetitions.

Change-source: pulse-maintainer
2026-09-07 22:20:18 +01:00
pulse-triage[bot] c394f297c6 Merge candidate 20260907T204500Z-core-runtime
Change-source: pulse-maintainer
2026-09-07 22:08:55 +01:00
pulse-triage[bot] e41381681a fix(ai): skip unchanged incident JSON checkpoints
Repeated alert lifecycle evaluations retain one occurrence but still replace the whole incident file. Compare bounded existing bytes before replacement, preserving changed-state saves and retry after failure or file loss.

Focused regression reproduced 21 replacements for one initial save plus 20 unchanged evaluations before the fix. Repeated race-enabled incident tests cover unchanged checkpoints, metadata, restart, resolution, recurrence and failed-write retry. This does not establish the cause of all writes or duplicate incidents reported in #1966.

Change-source: pulse-maintainer
2026-09-07 21:56:02 +01:00
pulse-triage[bot] 1502a8506c Merge candidate 20260907T201522Z-web-product
Change-source: pulse-maintainer
2026-09-07 21:47:29 +01:00
pulse-triage[bot] 916de59433 Merge candidate 20260907T201519Z-core-runtime
Retain the exact reviewed automatic guest-link regression test on current canonical main.

Change-source: pulse-maintainer
2026-09-07 21:42:13 +01:00
pulse-triage[bot] 6feddfebee test(web): verify hybrid memory updates in Chromium
Exercise canonical REST and socket snapshots through the Proxmox table and guest drawer for issue #1962. Preserve platform fallback and measured-zero presentation without substituting nested agent memory; backend polling remains separately qualified.

Change-source: pulse-maintainer
2026-09-07 21:36:04 +01:00
pulse-triage[bot] a7484acca4 style(web): restore alert recovery formatting gate
Apply the repository formatter to the two alert recovery test files rejected by the protected frontend check. This is an additive formatting-only correction; reviewed commit identities and behavior remain unchanged.

Change-source: pulse-maintainer
2026-09-07 21:32:33 +01:00
pulse-triage[bot] f604b1db4a test(monitoring): distinguish automatic guest links from registry merges
Issue #1962 describes automatic correlation into a hybrid VM, while the retained-link regression only exercises a manual merge. Exercise the hostname link selector through source snapshot reconstruction and next-poll memory resolution, preserving standalone host identity, cross-instance VMID isolation and ambiguous-name refusal. This narrows the acceptance boundary without changing matching behaviour or claiming installed recovery.

Change-source: pulse-maintainer
2026-09-07 21:28:07 +01:00
pulse-triage[bot] db6edc9fcb Merge candidate 20260907T185505Z-core-runtime
Change-source: pulse-maintainer
2026-09-07 21:12:16 +01:00
pulse-triage[bot] d9f2637ee2 Merge current upstream source main into reviewed maintenance
Incorporate the protected release-snapshot workflow landing while preserving every reviewed maintenance commit and the additive governance correction in local history.

Change-source: pulse-maintainer

# Conflicts:
#	docs/release-control/v6/internal/subsystems/deployment-installability.md
2026-09-07 21:02:31 +01:00
rcourtman 1a822d164b Merge pull request #1965 from rcourtman/release-snapshot-workflow
Publish reviewed release snapshots independently of branch tips
2026-09-07 20:24:51 +01:00
pulse-triage[bot] 092405e33c fix(governance): validate reviewed split completions exactly
A reviewed notification correction and its required contracts and API proof were accepted as separate immutable commits, leaving the protected per-commit governance check unable to pass without rewriting reviewed history. Add a fail-closed exact-pair validator that reconstructs the completion commit in a detached worktree and runs the normal guard over the combined file set; all unregistered commits continue through the unchanged per-commit path.

Change-source: pulse-maintainer
2026-09-07 20:13:34 +01:00
pulse-triage[bot] 4120f22374 Test linked guest memory after registry reconstruction
Keep stale/offline/unavailable controls, diagnostic and alert agreement, and verify isolation with a simultaneous duplicate VMID in another instance. Test-only follow-through for issue #1962.

Change-source: pulse-maintainer
2026-09-07 19:58:58 +01:00
pulse-triage[bot] 238c9762ba style(web): format hybrid memory regression fixture
Apply the repository Prettier policy to the newly integrated issue #1962 reactive-boundary fixture. The exact reviewed candidate remains preserved as a merge parent, and the focused test behavior is unchanged.

Change-source: pulse-maintainer
2026-09-07 19:58:26 +01:00
pulse-triage[bot] 53042d55e1 Merge candidate 20260907T184501Z-web-product
Change-source: pulse-maintainer
2026-09-07 19:57:22 +01:00
pulse-triage[bot] 773881766a Merge candidate 20260907T183504Z-core-runtime
Change-source: pulse-maintainer
2026-09-07 19:49:30 +01:00
pulse-triage[bot] 5705f91e5c test(web): preserve canonical hybrid VM memory updates
Issue #1962 exposes disagreement between canonical and nested agent memory. Protect the reactive workload boundary against UI-only substitution, same-VMID instance mixing and confusion between missing telemetry and measured zero. Synthetic snapshots do not qualify the outstanding poller repair.

Change-source: pulse-maintainer
2026-09-07 19:48:14 +01:00
pulse-triage[bot] a4d5130ec6 Restore VM-correlated agent memory fallback
Read agent-owned memory and source freshness from VM views when correlation removes the standalone host row. Preserve preferred guest memory sources and reject stale, offline or unavailable agent evidence. Reproduce issue #1962 through registry merge, next-poll diagnostics, card projection and memory alerts.

Change-source: pulse-maintainer
2026-09-07 19:43:48 +01:00
pulse-triage[bot] ffcf83ad6d Merge candidate 20260907T181015Z-web-product
Change-source: pulse-maintainer
2026-09-07 19:39:45 +01:00
rcourtman ab562c82aa Encode the release source branch through the shared output helper
The branch is validated by the snapshot guard, but its transfer between
workflow steps must also use the canonical GitHub command-file encoder.
Keep the source binding unchanged and satisfy the workflow trust audit.

Validation: all 41 workflow trust tests and five snapshot tests pass.
Contract-Neutral: Encode the already-validated release branch with the shared GitHub command-file helper without changing source identity or release authority
2026-09-07 19:38:48 +01:00
pulse-triage[bot] d63aa56729 Merge candidate 20260907T175505Z-core-runtime
Integrate the reviewed bounded webhook diagnostic confidentiality repair and its exact candidate ancestry.

Change-source: pulse-maintainer
2026-09-07 19:32:10 +01:00
rcourtman b64709e7b7 Publish reviewed release snapshots independently of branch tips
Continuous development must not change the source of an admitted release.
Allow the workflow to run at the qualified preparation PR head after its
normal merge, verifying exact source and workflow identity, canonical PR
provenance, and ancestry in the governed release line. Later branch commits
remain outside that release. Document the immutable-candidate contract and
verify source workflow compatibility before qualification.

Validation: snapshot identity and workflow contract tests passed, including
wrong-head, wrong-base, fork, unmerged and unbound dispatch rejection. The
existing release workflow promotion policy test also passed.
2026-09-07 19:30:27 +01:00
pulse-triage[bot] dd8945e942 Merge latest upstream qualification record into reviewed alert recovery
Incorporate the landed Patrol qualification record while preserving every reviewed alert recovery, credential-redaction and release-evidence commit and its ancestry.

Change-source: pulse-maintainer
2026-09-07 19:28:42 +01:00
rcourtman 3300649c12 Merge pull request #1963 from rcourtman/docs/patrol-qualification-delivery
Record verified Patrol and Assistant qualification delivery
2026-09-07 19:20:55 +01:00
pulse-triage[bot] 1f965e85b0 Merge current upstream main into reviewed alert recovery
Incorporate the landed Patrol planning work while preserving every reviewed alert recovery, credential-redaction and release-evidence commit and its ancestry.

Change-source: pulse-maintainer

# Conflicts:
#	docs/release-control/v6/internal/subsystems/agent-lifecycle.md
#	docs/release-control/v6/internal/subsystems/api-contracts.md
#	docs/release-control/v6/internal/subsystems/storage-recovery.md
#	frontend-modern/browser-verification.json
2026-09-07 19:16:44 +01:00
rcourtman 7d1fb7285e Record verified Patrol and Assistant qualification delivery
Reconcile the executable plan with the merged implementation and exact
qualification evidence. Keep the independent-environment rollout gate open
and preserve failed attempts, measurement limits and provider refusal.

Preserve the requested reservation for independent release snapshot work.

Refs #1782
2026-09-07 19:14:49 +01:00
pulse-triage[bot] de40ac2ef3 test(web): cover unavailable reads after accepted recovery
Accepted queue actions and failed follow-up reads are different outcomes. Extend actual-tab regression coverage so unavailable health and history cannot erase SMTP edits or misrepresent the accepted action as rejected.

Change-source: pulse-maintainer
2026-09-07 19:13:00 +01:00
rcourtman a42e3800d9 Merge pull request #1960 from rcourtman/fix/patrol-planning-outcomes
Preserve canonical Patrol planning and outcome continuity
2026-09-07 19:09:23 +01:00
pulse-triage[bot] 21ed7a8927 fix(notifications): contain encoded query and resolved ntfy diagnostics
Literal-only query matching and the separate resolved ntfy transport caller leaked recognised URL credentials. Decode each query name once and project ntfy transport errors before logging or returning them, without changing destinations or error causes. Add synthetic sink-matrix and HTTP projection regressions plus the bounded notification contract in this commit.

Change-source: pulse-maintainer
2026-09-07 19:07:52 +01:00
pulse-triage[bot] 5e0c3c4675 test(web): preserve recovery evidence on cancelled confirmation
Cancellation after a failed recovery must retain operator evidence and unfinished SMTP edits without triggering another API request. Cover this boundary in both actual destination-tab action scenarios.

Change-source: pulse-maintainer
2026-09-07 19:05:47 +01:00
pulse-triage[bot] 3078dc01b7 Merge candidate 20260907T174021Z-delivery-trust
Change-source: pulse-maintainer
2026-09-07 18:52:54 +01:00
pulse-triage[bot] a76bd1dcb2 Merge candidate 20260907T173016Z-core-runtime
Change-source: pulse-maintainer
2026-09-07 18:46:39 +01:00
pulse-triage[bot] f5d2c5d143 test(web): guard unsaved state during delivery recovery
Assert rejected and accepted retry/dismiss never clear the dirty flag after an SMTP edit; retained input value alone does not prove unsaved-state preservation.

Change-source: pulse-maintainer
2026-09-07 18:42:02 +01:00
pulse-triage[bot] f0369fd642 test(web): verify recovery preserves destination edits
Exercise the actual destinations tab, delivery hooks and SMTP editor across rejected and accepted Retry and Dismiss requests. Guard input identity, focus, dirty state, feedback and retained history rendering as health reconciles; standalone feedback tests did not cover this integration.

Change-source: pulse-maintainer
2026-09-07 18:33:30 +01:00