Commit Graph

5077 Commits

Author SHA1 Message Date
pulse-triage[bot] f9569426f5 fix(release): publish qualified tags after optional skipped checks
Use an explicit status guard while requiring successful preparation and qualification. Model the beta skipped-ancestor path and adverse direct prerequisites; retain immutable identity and all release gates.

Change-source: pulse-maintainer
2026-09-13 13:03:02 +01:00
pulse-triage[bot] 6f301ee8fb fix(vmware): probe canonical vSphere 8.0.3 JSON release
Probe 8.0.3.0 before the legacy spelling and older API schemas. Issue #2070 demonstrates method routing on the canonical version while Pulse reports 8.0.2.0. Retain legacy fallback and hard authentication/permission failures.

Add canonical negotiation, legacy/older fallback and auth/permission regression controls; update the runtime contract. Five reduced-function race probes fail before and pass after. Full package validation is unavailable with the installed offline dependency cache. This repairs negotiation, not the unresolved metrics/events/folder enrichment report.

Change-source: pulse-maintainer
2026-09-13 09:25:10 +01:00
pulse-triage[bot] 343f15eec5 Merge pull request #2065 from rcourtman/fix/proxmox-node-guest-navigation
Show a node's guests from the Proxmox overview row
2026-09-12 22:55:38 +01:00
rcourtman c7c503994b Merge pull request #2063 from rcourtman/fix/disposable-release-qualification
Isolate release preparation and qualification on hosted VMs
2026-09-12 18:33:17 +01:00
rcourtman 982465e63c Show a node's guests from the Proxmox overview row
Selecting a node filters its guests and reveals an off-screen guest
heading without moving results that are already visible. Repeating the selection
clears only the node filter. Keep node details on the
chevron and preserve other guest filters when changing or clearing nodes.

Build node filter options from inventory as well as guests so empty nodes
retain their names and selection after reload. Do not present unrelated
inventory failures as the cause of an empty filtered result.

Refs lane L8. Update the owning interaction and identity contracts.
2026-09-12 17:24:46 +01:00
rcourtman 051ce81a72 Isolate release preparation and qualification on hosted VMs
Persistent prerelease runners can retain state from earlier source execution
and influence later admission, build output or qualification. Use the
existing hosted stable-release path for every channel while preserving
exact-source checks, resource planning, watchdogs and release gates.
2026-09-12 15:44:11 +01:00
pulse-triage[bot] 34ba9a5ed9 Merge candidate 20260911T204017Z-core-runtime
Change-source: pulse-maintainer
2026-09-11 21:47:11 +01:00
pulse-triage[bot] 097422837b fix(release): preserve quarantined version identity
Reject historical draft reuse before PATCH when its retained target is not the exact checkout SHA, including missing targets and moving refs. Preserve same-source recovery and activation guards.

Depends on PR2056 qualification-first workflow and immutable tag checks. Executable absent-tag fixtures fail before repair and pass on PR head 9e5e18f0 plus this patch; 53 policy, 6 immutability and 42 trust tests pass. Update the deployment contract in the same commit.

Change-source: pulse-maintainer
2026-09-11 21:43:11 +01:00
rcourtman 9e5e18f008 fix(release): qualify candidates before public version writes
A draft GitHub release does not hide its public Git tag or registry
images. Publishing those before qualification consumed a beta identity
when the candidate later failed.

Stage drafts without Git refs, join exact-source checks before public
tag, Docker and Helm publication, and preserve exposed tag identities.
Keep final digest verification before release activation.
2026-09-11 21:04:46 +01:00
rcourtman 02d8165b8b fix(metrics): isolate statistics reads from history load
History requests can occupy every database connection and make cheap
statistics reads wait for seconds. Reserve one read-only connection for
current committed counts, owned and closed by the metrics store.

Keep the SQL, data model, load workload and latency budgets unchanged.
Add deterministic pool-saturation, committed-data and shutdown coverage.
2026-09-11 18:19:51 +01:00
pulse-triage[bot] bfae4ce0c8 fix(ui): keep disk mounts in the parent scrolling flow
The nested 140px mount list relies on a thin scrollbar to reveal additional disks, which #2051 reports as invisible in Firefox. Remove that nested scroll boundary so all mounts participate in the existing outer scroll flow without changing data or global scrollbar styling.

Validate short and long lists in light/dark Firefox and Chromium fixtures, including keyboard reachability, and retain aggregate/empty-state component coverage. This is synthetic browser proof, not reporter installation acceptance.

Change-source: pulse-maintainer
2026-09-11 11:26:20 +01:00
pulse-triage[bot] 3e920df03d fix(alerts): skip unchanged pending-intent checkpoints
Complete the JSON-only checkpoint fast path: compare sorted, bounded actual pending-state bytes before replacement. Preserve changes, clearing, failed-write retry and unsafe-destination repair. Focused before regression fails; repeated race proof passes. Sixty unchanged synthetic checkpoints fall from 245760 process write bytes to zero; changing alert freshness remains a separate contributor, not aggregate issue #1966 acceptance.

Change-source: pulse-maintainer
2026-09-11 07:05:34 +01:00
pulse-triage[bot] 45f76ed7a9 fix(release): map 6.4.5 reliability checkpoints to release line
The following notification reliability patch needs an explicit branch binding before selection. Keep 6.4.4 frozen and preserve historical and unlisted patch mappings while testing beta, RC and stable workflow resolution.

Change-source: pulse-maintainer
2026-09-11 00:23:11 +01:00
rcourtman 3c723569e3 Merge main into source-build update safeguards
Reconcile parallel release-version test fixtures while preserving the
current provider settings changes. Refresh browser verification against
the combined source before landing the diagnostic update safeguards.

Refs #1913
2026-09-10 21:31:38 +01:00
pulse-triage[bot] 3da2356dda fix(ci): archive durable root-pair candidate
The reviewed diagnostic named an ephemeral proposal commit that is no longer fetchable after its branch was retired, so a hosted checkout could not archive the fixed candidate. Use the merged main commit with the identical reviewed tree, retain the original evidence identity in metadata, and require an exactly balanced AB/BA contract.

Change-source: pulse-maintainer
2026-09-10 19:13:29 +01:00
pulse-triage[bot] 9902c204d0 ci: collect fixed hosted root-route pair evidence
The completed local study did not explain the adverse hosted root comparison. Add an exact-source root-only collector with matched builds, ten alternating samples and retained layout and host evidence, rather than repeat full qualification or relax its threshold. Eight focused mocked collector tests pass; hosted execution remains after independent review and protected landing.

Change-source: pulse-maintainer
2026-09-10 19:03:01 +01:00
pulse-triage[bot] b5a9b7aac2 Merge commit 'e8449477ff1098be8975cccee42952e45c73aa74'
Change-source: pulse-maintainer
2026-09-10 18:41:40 +01:00
pulse-triage[bot] e8449477ff fix(settings): restore Ollama Basic Auth configuration
The backend supports authenticated Ollama servers but the provider editor omitted its credential fields. Expose write-only password editing with explicit clearing and preserve unchanged credentials. Verify Settings persistence, authenticated connection tests and the Patrol streaming factory using synthetic endpoints.

Change-source: pulse-maintainer
2026-09-10 18:21:29 +01:00
pulse-triage[bot] c0967d02db test(ai): wire typed planners in control projection fixtures
Repair stale transport-only availability fixtures without weakening runtime planner or policy checks. Exercise planner removal with execute authority, transport-only provider projections, and read-only policy with an installed planner.

Change-source: pulse-maintainer
2026-09-10 18:17:48 +01:00
rcourtman 7f15acfbad Keep diagnostic source builds out of release update flows
Diagnostic versions must keep their exact identity without advertising a published server or agent update target. Reuse the canonical source-build classification and discard cached release offers when runtime identity changes.

Show source-build status and manual image replacement guidance. Verify release and preview controls remain available.

Refs #1913
2026-09-10 17:06:27 +01:00
pulse-triage[bot] fd2327d3cf fix(ai): advertise lifecycle control from planner availability
The hosted synthetic lifecycle diagnostic offered no control tool despite an installed canonical planner: availability still depended on retired execution transports. Match exposure to the plan-only boundary while preserving read-state and control-level policy. Assert provider and gateway tool offers so scripted calls cannot hide this mismatch, and retain literal-search behaviour as separate evidence.

Change-source: pulse-maintainer
2026-09-10 17:04:01 +01:00
rcourtman dd388decf5 Merge pull request #2031 from rcourtman/fix/1913-agent-continuity
Preserve live agent state over saved enrollment history
2026-09-10 16:41:10 +01:00
rcourtman 751b8dd8c1 Merge pull request #2030 from rcourtman/fix/manual-update-freshness
Fix manual update freshness and unknown release dates
2026-09-10 16:14:11 +01:00
rcourtman bd37ae186a Preserve live agent state over saved enrollment history
Saved enrollment records can correlate with a live Proxmox host after a
reinstall. The continuity overlay then replaced its current agent payload
with an older offline identity, hiding metrics and marking the node offline.

Use canonical matching to add only absent continuity resources. Preserve
current identity, telemetry and provider links without deleting history or
changing token admission. Cover repeated reads and identity collisions.

Refs #1913
2026-09-10 16:00:36 +01:00
rcourtman 837a5b8843 Fix manual update freshness and unknown release dates
Manual checks previously bypassed only the browser cache, so a newly
published preview could remain hidden behind a fresh-looking server result.
Carry explicit freshness to the provider, retain prior evidence on failure,
and omit unknown dates instead of rendering year one.
2026-09-10 15:33:53 +01:00
pulse-triage[bot] 153b80f7a1 docs(ai): clarify hosted diagnostic request budget
Distinguish logical adapter-call and provider-neutral request limits from transport retries, compatibility fallbacks, and provider billing attempts. Keep the hosted fixture behavior unchanged.\n\nChange-source: pulse-maintainer

Change-source: pulse-maintainer
2026-09-10 14:25:11 +01:00
pulse-triage[bot] 6f03c8c898 test(ai): add bounded synthetic hosted lifecycle diagnostic
Use production Assistant instructions with synthetic inventory and approval-only planning. Keep gateway inference distinct from native Gemini transport, retain adverse output, and enforce fixed session and token budgets. Hosted execution remains opt-in; local regressions cover model-owned continuation, wire planning and hard call limits.

Change-source: pulse-maintainer
2026-09-10 14:05:15 +01:00
pulse-triage[bot] c49b316409 Merge origin/main before publication
Change-source: pulse-maintainer
2026-09-10 10:02:46 +01:00
rcourtman 93a039fb17 Merge pull request #2027 from rcourtman/docs/immutable-release-policy
Align release policy with immutable publication
2026-09-10 09:55:07 +01:00
rcourtman 73ac0eecf4 Align release policy with immutable publication
The workflow stages and verifies its activation marker in the unpublished
draft, then publishes the complete release immutably. The policy still
placed the marker upload after publication and implied public read-back
could return the committed release to draft.

Describe the implemented commit boundary, inert private staging and the
complete readiness join. Preserve source identity, signing, qualification
and customer convergence requirements without changing release execution.
2026-09-10 09:50:56 +01:00
rcourtman bd678cfde6 Merge pull request #2026 from rcourtman/docs/release-reliability-priority
Prioritize dependable release delivery
2026-09-10 09:49:23 +01:00
rcourtman 5d862dfce8 Prioritize dependable release delivery
Record clean, consistent releases as the highest current objective.
Keep release consistency explicitly unconfirmed until actual release
and recovery evidence establishes dependable delivery.
2026-09-10 09:05:46 +01:00
pulse-triage[bot] ab225c0d3b fix(alerts): reject stale escalation callback admissions
Revalidate policy, active occurrence, acknowledgement and snooze at the monitoring callback boundary. Preserve current routing and cooldown behaviour with live-incident fixtures. Pin pre-deadline policy changes and queued email routing versus resolution independently.

Change-source: pulse-maintainer
2026-09-10 08:42:59 +01:00
pulse-triage[bot] 1c2c6b7e88 Merge commit '7dd5982ace56f8ea2329e2b4697dcc1b58c41fb6'
Change-source: pulse-maintainer
2026-09-10 07:07:53 +01:00
pulse-triage[bot] 7dd5982ace fix(auth): synchronise local admin permissions during setup
First-run setup saved the configured administrator but left the router authorizer on its startup identity. This split Settings capability checks: administrator-only panels remained visible while API Access and Pulse Intelligence were denied until restart. Keep the captured authorizer aligned when setup commits the identity, and clear its prior bypass on successful development reset.

Cover the exact split with real file-backed RBAC policy and session setup, preserve outsider denial and identity replacement, and synchronise concurrent policy reads. Extension implementations still require independent compatibility review; this is not installation or release acceptance.

Change-source: pulse-maintainer
2026-09-10 06:52:38 +01:00
pulse-triage[bot] 07ad2a8ea3 fix(alerts): discard pending history reads after clearing
A history request started before a successful clear can return deleted rows afterwards and repopulate the view. Invalidate those reads and settle loading only after the clear succeeds, preserving history on failure and allowing later refreshes.

Change-source: pulse-maintainer
2026-09-10 06:44:37 +01:00
pulse-triage[bot] 9f2d98ad76 fix(alerts): retain automatic acknowledgement across refires
Cleanup only marked the active alert acknowledged, leaving recurrence retention and reducer state unlike manual acknowledgement. A short recovery and refire consequently reopened it unacknowledged. Mirror automatic acknowledgements into both tracking paths and request persistence before callbacks.

Regression fails before the repair at short recovery/refire. Focused cleanup, manual acknowledgement and automatic acknowledgement race tests pass.

Change-source: pulse-maintainer
2026-09-10 06:03:24 +01:00
pulse-triage[bot] f825e0b0a1 test(agentexec): isolate registration ordering log probe
The regression temporarily replaces zerolog's global logger. A prior WebSocket
handler can still be finishing after its own test returns, so joining only this
probe's handler does not prevent a race with that earlier log write. Run the
hook in a bounded child invocation of the same race-instrumented test binary.

Change-source: pulse-maintainer
2026-09-10 04:42:33 +01:00
pulse-triage[bot] 03dcabdf87 fix(agentexec): reserve registration acknowledgement before dispatch
A session was discoverable before its registration acknowledgement reserved the write lock. An immediate dispatch could therefore become the first frame, which the unified client rejects while awaiting registration. Reserve the new connection write lock under the session-map lock so no dispatcher can overtake the handshake.

The deterministic publication-window regression fails before the repair. Agentexec package race tests and real unified-agent typed receipt replay/cancellation tests pass after it; no timeout thresholds or admission checks are relaxed.

Change-source: pulse-maintainer
2026-09-10 04:04:11 +01:00
pulse-triage[bot] c07ef8f113 test(ai): exercise Gemini discovery and lifecycle planning
The existing scripted-provider tests do not cover Gemini wire translation after read-only discovery. Exercise the actual adapter with synthetic SSE replies to prove canonical reboot planning retains approval and to record the distinct tool-free model conclusion limitation without manufacturing actions. This is orchestration evidence, not hosted-model or customer acceptance; no production behaviour changes.

Change-source: pulse-maintainer
2026-09-10 03:22:14 +01:00
pulse-triage[bot] 605643b017 fix(web): preserve PBS host history targets in Backups
Backups fetched only PBS service rows, leaving standalone host telemetry unavailable, and rejected agents merged into PVE guests. Include PBS agent rows and reuse the deduplicated Overview inventory for unique correlation without changing the PBS drawer identity. Keep guests without agent telemetry and ambiguous identities excluded. Focused drawer and surface regressions cover missing disk data and canonical history targets.

Change-source: pulse-maintainer
2026-09-10 01:03:55 +01:00
pulse-triage[bot] 1dcf4db9ea Merge candidate 20260909T233145Z-delivery-trust
Change-source: pulse-maintainer
2026-09-10 00:44:45 +01:00
pulse-triage[bot] 50270c2499 fix(web): discard obsolete import impact previews
Invalidate in-flight preview generations when the import plan changes or the editor unmounts. Ignore stale success, error and completion updates so another endpoint cannot inherit the prior request's impact.

The deferred-error regression fails before repair. Record the preview lifetime and unchanged setup authority in both owning contracts, with consumer boundary coverage. All 87 focused tests and two source-built Chromium desktop/narrow interaction cases pass; retain exact-content browser evidence.

Change-source: pulse-maintainer
2026-09-10 00:36:48 +01:00
pulse-triage[bot] ad1cfd33c3 fix(ci): qualify grouped release action pin consumers
The grouped action upgrade leaves signing, network and publication consumer assertions on superseded pins. Align those contracts and check every consumer against reviewed immutable upstream manifests, retaining exact dispatch and release trust boundaries without claiming hosted execution.

Change-source: pulse-maintainer
2026-09-10 00:35:47 +01:00
pulse-triage[bot] bdf03e54eb chore(deps): qualify isolated Moby API and client update
Separate Docker SDK maintenance from the grouped dependency update so unrelated modules remain pinned. Preserve older-daemon negotiation and container recreation payloads with real HTTP compatibility fixtures, and ensure dependency-only changes invalidate cached development binaries.

Change-source: pulse-maintainer
2026-09-09 22:29:18 +01:00
pulse-triage[bot] ac636f98b1 fix(alerts): honour PBS datastore capacity policy
Keep topology capacity bands as resource risk rather than duplicate parent and datastore alerts. The existing live PBS capacity evaluator owns thresholds, aliases and hysteresis; retain datastore state failures and reconcile old duplicates normally.

Reproduce the 97.9% report with real registry projection and exercise threshold changes through synthetic PBS HTTP polling. Release adaptations require the live-poll evaluator, not this filter alone.

Change-source: pulse-maintainer
2026-09-09 20:23:49 +01:00
pulse-triage[bot] 37d1874904 docs(msp): verify published evaluation bundle guidance
Replace obsolete v6.2.1 guidance using retained signed v6.4.1 delivery and payload evidence. Limit privacy claims to the evaluated licence request, synchronize the shipped guide, and adapt the registered deployment regression and contract without claiming installed onboarding acceptance.

Change-source: pulse-maintainer
2026-09-09 20:23:20 +01:00
pulse-triage[bot] c418ee01c6 Merge setup-node v7 consumer qualification
Integrate the independently reviewed setup-node workflow and contract update alongside the Kubernetes dependency repair.

Change-source: pulse-maintainer
2026-09-09 19:47:11 +01:00
pulse-triage[bot] e9a1310528 fix(deps): split Kubernetes update with discovery-compatible tests
client-go 0.37 extends the Discovery return interface, which broke the metrics test double in grouped dependency PR #1977. Use the real discovery client over an in-memory HTTP transport so the fixture follows the selected client API without losing metrics and error assertions.

Upgrade only the coordinated Kubernetes modules and their selected transitive dependencies. Leave the unrelated grouped updates unchanged and check cohort alignment in local runtime orchestration, including mixed and incomplete negative cases.

Change-source: pulse-maintainer
2026-09-09 19:30:02 +01:00
pulse-triage[bot] 9a6a5811a7 ci: qualify setup-node v7 consumer contracts
The standalone setup-node proposal lacked lifecycle and deployment evidence. Preserve Node 24, explicit cache controls and native Windows proof steps while upgrading the immutable action revision; add consumer regression coverage for the removed dummy auth-token assumption. Keep grouped signing and deployment action upgrades separate.

Change-source: pulse-maintainer
2026-09-09 19:29:17 +01:00