Commit Graph

5543 Commits

Author SHA1 Message Date
pulse-triage[bot] cbbed83add Make reverse-proxy help match the forwarded-header trust boundary
Explain immediate-peer trust before proxy setup, constrain copyable HTTPS examples and preserve authentication during diagnostics. Keep both shipped guides in sync and cover the missing guidance in the documentation regression checks.

Contract-Neutral: Documentation and regression checks only; proxy trust, authentication, routing and runtime behaviour are unchanged.
Change-source: pulse-maintainer
2026-10-03 19:28:18 +01:00
pulse-triage[bot] 42f43f0a3e Merge reviewed truthful configuration migration help
Preserve exact candidate 76484e4e8c alongside newer canonical Web/Core work. Retained matching-graph source and desktop/phone browser proof cover the unchanged final migration content.

Contract-Neutral: Existing migration guidance, warning copy and regression proofs only; no archive, recovery or runtime contract change.
Change-source: pulse-maintainer
2026-10-03 18:39:04 +01:00
pulse-triage[bot] c7a7213ea6 Compose truthful migration help with current frontend
Preserve reviewed deterministic tags, Tailwind 4 styling and source history. Remove only the retired shared receipt at the final tip; its historical record remains in its own commit. Fresh combined-content browser proof follows.

Contract-Neutral: Existing help and dialog warnings only; no configuration archive, recovery or runtime contract changes.
Change-source: pulse-maintainer
2026-10-03 17:51:50 +01:00
pulse-triage[bot] 50756d745e Compose retained Web and backup-safety work with current reviewed main
Preserve exact reviewed upstream, Core and Web histories, Tailwind 4, deterministic tags and additive browser-receipt governance. Resolve only the retired shared receipt by keeping its deletion. Combined frontend validation and fresh content receipts follow; native thaw and release acceptance remain separate.

Change-source: pulse-maintainer
2026-10-03 17:27:18 +01:00
pulse-triage[bot] 9199676a2b Merge batch-start upstream browser receipt governance
Retain reviewed local source and upstream governance exactly. Resolve the retired shared receipt in favour of deletion; historical non-merge receipts remain available in Git.

Contract-Neutral: Integration only; no changed frontend runtime content or product contract.
Change-source: pulse-maintainer
2026-10-03 17:24:48 +01:00
rcourtman 1ebc8e071a Merge remote-tracking branch 'origin/main' into refactor/retire-shared-browser-receipt
Contract-Neutral: Merge of origin/main into this branch: brings in commits already landed on main and deletes the retired shared receipt, no new contract change

# Conflicts:
#	frontend-modern/browser-verification.json
2026-10-03 16:47:47 +01:00
rcourtman a9c3bc15ec Merge branch 'main' into refactor/browser-receipt-per-commit 2026-10-03 16:27:00 +01:00
pulse-triage[bot] 9fcbc33829 Compose reviewed guest-agent admission safety with truthful disk presentation
Retain the exact Core source history and its existing scoped proof. The combined Web candidate preserves the complete-response safety contract and last-known/deferred read presentation; native thaw and containing release acceptance remain separately owned.

Change-source: pulse-maintainer
2026-10-03 16:24:27 +01:00
pulse-triage[bot] 47ce5881aa Compose retained operator and backup safety repairs with Tailwind 4
Preserve exact upstream and reviewed Web histories. Keep guest-read freshness, pending/error notification evidence, rollback consent, accessible rows and readable phone projections while applying Tailwind 4 radius, shrink, width, wrapping and important-class semantics. Matching graph and final-content browser qualification remain required.

Change-source: pulse-maintainer
2026-10-03 16:23:48 +01:00
pulse-triage[bot] 5ead0793b5 Compose dependency-safe upstream with reviewed monitoring and recovery repairs
Preserve all reviewed ancestors and published Tailwind 4 and jscpd 5 source. Resolve drawer conflicts by retaining reactive snapshots, access withdrawal and honest errors with upstream-equivalent radius, transparency and child selectors. Original browser receipts remain historical evidence; combined-source verification follows separately.

Change-source: pulse-maintainer
2026-10-03 16:06:49 +01:00
pulse-triage[bot] 73d2c64e0f Make configuration migration warnings match the actual backup
Separate configuration transfer from complete stopped-state recovery, correct omitted platform and agent-state claims, and preserve safe credential/retargeting guidance. Validate the real encrypted archive and production dialogs with scoped tests and desktop/phone browser interactions. No new backup capability or runtime contract change.

Contract-Neutral: The archive, persistence, authentication and agent contracts are unchanged; help and visible warnings now describe existing scope, with regression proof for that account.
Change-source: pulse-maintainer
2026-10-03 15:52:53 +01:00
rcourtman 9e7a5ffdeb Move frontend to Tailwind CSS 4 and jscpd 5 to drop braces
GHSA-vfj7-8cjw-p6xm affects every braces release and has no fix, so the
required frontend audit failed with seven high findings on any pull
request that changes the dependency graph. Tailwind CSS 3 (chokidar,
fast-glob, micromatch) and jscpd 4 (@jscpd/finder, fast-glob) were the
only paths in, both dev-only, and no override can remove braces from
fast-glob or micromatch. Tailwind CSS 4.3.3 through @tailwindcss/vite and
jscpd 5.4.0 leave none; npm audit over the full graph reports zero.

The stylesheet keeps the v3 rendering. It pins the v3 palette (inlined,
so opacity modifiers compile to static colors), font stacks and line
heights, keeps v3's cascade order by placing former component and
unlayered rules around the generated utilities, and restores v3 hover on
touch devices, gray-200 default borders, the 3px blue ring, placeholder
color, button cursor, table-cell padding and the space-* and divide-*
child selectors. The 900/950 shades Pulse overrode with 25% alpha are
opaque now and their callers say /25, because v4 multiplies an opacity
modifier into a translucent color instead of replacing it. Opacity
modifiers on var() colors that v3 never generated are removed.

Utility order changed from lexical to numeric, so a few caller overrides
that silently lost in v3 would start to win. Touch targets keep their
authored 44px phone size (the Machines row stays 32px); cosmetic
overrides v3 never applied are removed, and overrides it did apply use
the important suffix.

Contract-Neutral: Tailwind CSS 4 migration for GHSA-vfj7-8cjw-p6xm: utility class renames and stylesheet compatibility, no subsystem contract change
2026-10-03 15:19:35 +01:00
pulse-triage[bot] b22d3b4490 Explain deferred guest reads without unsafe backup advice
Use one readable reason vocabulary across workload rows, disk breakdown/list and guest Overview. Mark retained disk values as last-known, retain unavailable cases, and remove the notice on fresh same-VM observations. Never recommend restarting QGA during backup uncertainty. Desktop Chromium and phone WebKit source-bound controls cover all eight new/uncertain reasons, absent versus retained data, responsive status layout and fresh resumption; native coordination/thaw and containing release remain separate Core/Delivery obligations.

Change-source: pulse-maintainer
2026-10-03 15:15:10 +01:00
pulse-triage[bot] 6ec491bdf3 Keep VM disk diagnostics off the guest-agent channel
Replace active guest probes with bounded passive host reads. Preserve errors and private configuration, distinguish setup from responsiveness, and put backup/thaw precautions ahead of troubleshooting. Exercise the actual helper and copied command with adverse and healthy controls.

Contract-Neutral: Operator diagnostics and existing help only; Proxmox polling, guest-agent coordination, APIs, storage and runtime behaviour are unchanged.
Change-source: pulse-maintainer
2026-10-03 14:48:52 +01:00
pulse-triage[bot] d4da7ffefd Compose retained Web repairs over freshness-aware help
Preserve exact 258a39e796, fbafb92c08 and 9df89142d3 with the assigned copied-webhook help. No conflict resolution, dependency remediation or release claim.

Change-source: pulse-maintainer
2026-10-03 14:46:59 +01:00
pulse-triage[bot] 258a39e796 Preserve exact Web repair candidate with private scheduler help
Retain fbafb92c08 and all reviewed ancestors over the assigned scheduler-help integration. No frontend or dependency resolution; the required seven-high dependency gate remains unfinished pending the published bootstrap reader activation and final compatible graph.

Change-source: pulse-maintainer
2026-10-03 14:28:48 +01:00
pulse-triage[bot] 41457c8a82 Make copied webhook verification freshness-aware
Reject stale or malformed signed requests and empty keys in the existing receiver example. Explain authenticated payload deduplication and unsigned correlation headers, and exercise the exact copied code with adverse and healthy controls.

Contract-Neutral: Documentation and its executable safety checks only; the outbound signing format, transport, endpoints and runtime are unchanged.
Change-source: pulse-maintainer
2026-10-03 14:05:15 +01:00
pulse-triage[bot] 2df28d5877 Defer and coordinate Proxmox guest-agent reads around backup locks
Check every QGA read against fresh VM config locks, coordinate configured endpoint aliases and VM migration, discard in-flight backup payloads and cool down uncertain completions without retries. Preserve labelled cache evidence and keep carried samples out of History. Includes real-client monitoring, memory and counter provenance controls; native freeze/thaw acceptance remains separate. Refs #2439.

Change-source: pulse-maintainer
2026-10-03 13:58:05 +01:00
pulse-triage[bot] ce65117577 Merge reviewed private scheduler diagnostics
Change-source: pulse-maintainer
2026-10-03 13:54:11 +01:00
pulse-triage[bot] fbafb92c08 Merge commit '9df89142d3ffff5ac81c423537e287b194b589f5' into maintainer-async/20261003T124247Z-web-product/pulse
Change-source: pulse-maintainer
2026-10-03 13:45:36 +01:00
pulse-triage[bot] ec5c96a290 Keep scheduler diagnostics private and failure-aware
Use one bounded, authenticated snapshot and local queries instead of secret-bearing argv and repeated requests. Preserve configuration precedence and rollback state, and judge successful polls rather than a universal queue-depth threshold. Exercise copied commands with HTTP, transport, schema and credential controls.

Contract-Neutral: Documentation and copied-command tests only; scheduler runtime and API contracts are unchanged.
Change-source: pulse-maintainer
2026-10-03 13:13:21 +01:00
pulse-triage[bot] 7cb5e57f07 Merge reviewed notification verdict repairs
Retain exact Core candidate 3a98883de1. Reviewed SMTP final-DATA acceptance and interrupted ntfy rejection semantics against retained parent/final controls, complete notification and telemetry correctness/races/vet, and application build receipts. Intervening main changes do not touch the notification domain; no frontend content resolution is needed.

Change-source: pulse-maintainer
2026-10-03 13:03:10 +01:00
pulse-triage[bot] 9df89142d3 Keep notification activity truthful when evidence reads fail
Track held-event availability independently of delivery attempts. Do not call a pending or partial read empty, withdraw only the unreadable source's rows, and retain the warning through retry. Preserve current-request ownership, editor state and all notification policies.

Qualify the production Notifications tab with desktop Chromium and phone WebKit keyboard/touch read-and-retry controls. Record the owning-parent browser binding and both frontend/alert contracts.

Change-source: pulse-maintainer
2026-10-03 12:45:44 +01:00
pulse-triage[bot] 3a98883de1 Preserve notification verdicts through SMTP cleanup and ntfy diagnostics
Stop resending mail after the final DATA acceptance solely because QUIT failed. Keep interrupted ntfy recovery rejections authoritative in the retry decision and audit. Preserve missing acceptance, TLS checks, retry budgets and explicit operator recovery; verify all SMTP transports and persistent queue/audit readback with synthetic local receivers.

Change-source: pulse-maintainer
2026-10-03 12:09:42 +01:00
pulse-triage[bot] 2d6a10ab59 Compose retained operator-row repairs with current recovery help
Preserve the exact retained Web candidate and its browser receipts; include current assigned authentication recovery help without re-parenting source proofs.

Change-source: pulse-maintainer
2026-10-03 11:28:37 +01:00
rcourtman 2a247e244e Delete the retired shared browser receipt
The per-commit receipt change left
frontend-modern/browser-verification.json in the tree, frozen, so that
it would not conflict with the pull requests still rewriting it. Nothing
reads the file at the tip: range mode reads a receipt from the commit
that recorded it. Left in place it invites the old habit and keeps those
pull requests conflicting with each other on it.

The guard now refuses a staged tree or a range tip that carries the
file, rather than only a commit that writes it. Without that, resolving
the modify/delete conflict by keeping the file changes nothing against
HEAD, passes the hook, and restores the file on main when the branch
merges.

A pull request that still rewrites the file is repaired by merging main
and removing the file with git rm. Its commits remain valid evidence in
range mode.
2026-10-03 11:15:28 +01:00
rcourtman fe82cb29a3 Record browser receipts per commit so frontend PRs stop conflicting
Every commit touching user-visible frontend source rewrote the single
frontend-modern/browser-verification.json, so any two open frontend pull
requests conflicted as soon as either merged. A merge could not repair
the loser: concluding it staged main's frontend files as if the author
had changed them, and the guard then demanded a receipt for files the
author never ran. The only honest recovery was a rebuild on the new main
and a fresh browser pass, as #2415 -> #2418 -> #2433 showed on 2-3
October.

Each commit now adds its own receipt under
frontend-modern/browser-verification/, named by the fingerprint of the
content it verified. Receipts are only ever added, so git merges them
unaided. The guard keeps every binding it had: the commit's own parent,
the exact changed paths and their content digests, a desktop and a
narrow viewport, non-empty routes, states and interactions, and the
range check that each changed file's final content matches a receipt
from a non-merge commit in the range.

Concluding a merge no longer counts content a merged parent already
carries as the commit's own change. Merged content that neither parent
holds is flagged and still needs a follow-up receipt in range mode, and
a merge commit may not record one.

The shared file is retired: no commit may write it again. A commit that
modified it while its own parent still carried it stays valid evidence
in range mode, so a pull request that still rewrites it is repaired by
merging main and taking main's copy rather than by a rebuild. The file
is deleted in a change of its own, because deleting it here would
conflict with every pull request that still rewrites it.

--write-template writes the skeleton at the path the staged content
requires. --prune deletes receipts already on main. A change that
records a receipt may not delete one: git pairs the two as a rename,
which conflicts with any other change deleting the same receipt.
2026-10-03 11:11:25 +01:00
pulse-triage[bot] 2789a15fe5 Keep authentication diagnostics private and permission-aware
Use private header files rather than shared passwords or proxy secrets in process arguments. Separate intentional AI settings writes from diagnostics, distinguish proxy denials from authentication/transport failures, and preserve the real proxy trust boundary and 5.x limitation. Exercise copied commands, private-file preparation and rendered help.

Contract-Neutral: Documentation and executable help controls only; no authentication, authorization, AI autonomy or runtime contract change.
Change-source: pulse-maintainer
2026-10-03 10:22:45 +01:00
pulse-triage[bot] 480be08288 Preserve REST operator evidence and readable platform rows
Adopt the five frontend maintenance constituents of #2426 against current source, retaining PMG counters, source health, server action refusals and technology through REST projection. Pin stale, failed and removed evidence at the real lifecycle consumer without inventing command grants. Preserve native storage vocabulary and shared-location identity, expose the fullest measured disk in Bars, and keep Docker phone columns and disclosure evidence usable.

The production-component browser pass caught a clipped phone Swarm rollout label; wrap that state and compact the Running header, preserving raw keyboard/touch disclosure evidence. Include dependent subsystem contracts, connected regressions and the owning-parent browser receipt. The unchanged dependency advisory and returned backend compiler/native proof remain separate unfinished work.

Original-PR: https://github.com/rcourtman/Pulse/pull/2426
Original-Commit: b08abe7471
Original-Commit: 04d76e684c
Original-Commit: fad69433a1
Original-Commit: 563506fd6b
Original-Commit: c2778fba1e
Co-authored-by: rcourtman <8825017+rcourtman@users.noreply.github.com>
Change-source: pulse-maintainer
2026-10-03 09:49:44 +01:00
pulse-triage[bot] 462cdfb170 Recover local logins without deleting authentication state
Route Docker and FAQ readers through one credential-source-aware recovery guide. Replace only the active password, retain unrelated settings and agent tokens, and account for systemd drop-ins and container environment application. Check private prompt output, failure stops, bcrypt loading, precedence and rendered help links.

Contract-Neutral: Documentation and test coverage only; existing authentication, setup and deployment contracts are unchanged.
Change-source: pulse-maintainer
2026-10-03 09:25:52 +01:00
pulse-triage[bot] 7127054c65 Preserve reviewed table and recovery consent repairs with current help
Retain exact e899ecb0 and a644054d history alongside the current bootstrap-authentication guides. No constituent is rewritten or re-parented; existing owning browser bindings remain applicable.

Change-source: pulse-maintainer
2026-10-03 09:18:41 +01:00
pulse-triage[bot] 200ce831a8 Keep installation quick starts on bootstrap authentication
Remove the shared Compose password from the main installation entry point, preserve image and data settings, and explain existing-deployment credential overrides. Extend the auth guide controls and rendered browser navigation checks to this page.

Contract-Neutral: Documentation and its controls now reflect the existing bootstrap and environment-override behaviour; no runtime or API contract changes.
Change-source: pulse-maintainer
2026-10-03 08:43:25 +01:00
pulse-triage[bot] a644054dc5 Compose retained table and recovery consent candidate with scope-qualified help
Preserve the rejected but source-validated e899ecb0 candidate and its original contributor identities additively over the assigned rollback-help integration. Runtime content remains byte-identical to the existing own-parent browser receipt; keep current AUTO_UPDATE and INSTALL scope warnings. The required braces advisory audit and official package acquisition remain unfinished, so this composition does not establish integration readiness.

Change-source: pulse-maintainer
2026-10-03 08:08:31 +01:00
pulse-triage[bot] f273e86189 Keep Docker setup credentials private across help languages
Remove the shared-password override from German and Spanish Compose setup and the password-on-argv example from configuration help. Default to bootstrap setup; exercise private-file permissions, argument boundaries and failed preparation with synthetic credentials.

Contract-Neutral: Help and regression fixtures only; authentication, container and API contracts are unchanged.
Change-source: pulse-maintainer
2026-10-03 07:41:56 +01:00
pulse-triage[bot] e899ecb0cf Keep backup evidence and rollback consent truthful on narrow screens
Compose the useful Kubernetes, storage and Proxmox table improvements from four proposals against current main, preserving organisation-safe History and newer recovery/drawer work. A fresh guest snapshot no longer masquerades as the latest independent backup; controller timestamps and full disk health reasons remain reachable from phone rows.

History consent names the running version separately and declares missing restore-scope metadata rather than promising an active-data rewind. Distinguish installation-only and legacy recovery and link the stopped-service full-state instructions. Add substantive dependent contracts, connected tests and a fresh production-component desktop/phone browser receipt, including the SMART wrapping correction found during validation.

Original-PR: https://github.com/rcourtman/Pulse/pull/2417
Original-PR: https://github.com/rcourtman/Pulse/pull/2418
Original-PR: https://github.com/rcourtman/Pulse/pull/2421
Original-PR: https://github.com/rcourtman/Pulse/pull/2425
Original-Commit: 3149ec61d8
Original-Commit: c02b2d81cc
Original-Commit: d33d6a4fd3
Original-Commit: 572ea0158b
Original-Commit: c5e89849bd
Original-Commit: 3f2715e3f3
Original-Commit: 852ebdca08
Original-Commit: 083cd070fe
Co-authored-by: rcourtman <8825017+rcourtman@users.noreply.github.com>
Change-source: pulse-maintainer
2026-10-03 07:32:20 +01:00
pulse-triage[bot] 6f297a5dc8 Merge reviewed scope-qualified rollback help
Change-source: pulse-maintainer
2026-10-03 07:28:08 +01:00
pulse-triage[bot] 45835634ea Qualify rollback help by updater and backup scope
Separate installation rollback from stopped full-state recovery, correct the install guide's automatic-backup promise and name the verified limited published snapshots. Keep shipped help matched, reject the original unsafe claims and exercise desktop and phone Docs links without claiming the unready backend has shipped.

Contract-Neutral: Documentation and help verification only; no updater runtime or API contract changes.
Change-source: pulse-maintainer
2026-10-03 07:02:30 +01:00
pulse-triage[bot] 697ad83e19 Compose retained organisation-safe History with current main
Preserve exact 2dda2e6653 and the newer recovery, help and drawer fallback work. Fetched disk History must not retain observations across organisation switches with identical resource IDs. Keep the existing receipt unchanged; both original non-merge receipts remain bound to their own parents. The frontend dependency audit remains a separate unresolved delivery gate.

Change-source: pulse-maintainer
2026-10-03 06:13:20 +01:00
pulse-triage[bot] 0b185f9392 Merge reviewed resource evidence fallback access correction
Change-source: pulse-maintainer
2026-10-03 05:44:56 +01:00
pulse-triage[bot] 6e5acd9c02 Keep denied resource evidence out of drawer fallbacks
Final facet access failures must not re-display embedded or unfiltered history. Retain transient snapshots, and show failed action reads with an available retry rather than false empty/loaded states. Preserve the existing unavailable-plan client boundary. Add rejecting parent controls and desktop/touch browser proof.

Change-source: pulse-maintainer
2026-10-03 05:13:32 +01:00
pulse-triage[bot] d16e665e6c Route deployment updates through evidence-preserving procedures
Remove unconfigured Docker and Helm shorthand from the deployment overview. Preserve target edition, existing service and storage scope, and the limits of snapshots and rollback; exercise the maintained help links and regression guards.

Change-source: pulse-maintainer
2026-10-03 04:56:56 +01:00
pulse-triage[bot] 3d9105349f Merge reviewed evidence-preserving update and recovery help
Change-source: pulse-maintainer
2026-10-03 04:45:59 +01:00
pulse-triage[bot] 2dda2e6653 Scope fetched History to the active organisation
Replace HistoryChart request and polling ownership on org changes, even when resource IDs match. Withdraw old readings and inspection without changing same-org outage retention or caller-supplied sample ownership. Preserve touch compatibility-focus suppression. Add original-source controls, production browser verification and the primitive contract.

Change-source: pulse-maintainer
2026-10-03 04:18:12 +01:00
pulse-triage[bot] 5cf724b4e7 Keep recovery independent of its phase writer interface
Exercise direct recovering and terminal OSError injection as well as atomic receipt faults. Preserve the real restored estate and complete watches while evidence loss remains failed and unverified.

Change-source: pulse-maintainer
2026-10-03 04:15:43 +01:00
pulse-triage[bot] f827f7150f Restore owned demo runtime despite receipt I/O failure
Keep evidence loss failed and unverified, preserve snapshots and complete recovery watches, and bind terminal collection and subsequent mutations to the original writer exit. Retain the exact returned candidate and its failing control without expanding production privileges.

Change-source: pulse-maintainer
2026-10-03 04:08:57 +01:00
pulse-triage[bot] 1b14696d3f Restore reviewed demo candidate for receipt-failure recovery repair
Compose the exact returned candidate on the current assigned main base; retain independent review defect evidence and all newer source.

Change-source: pulse-maintainer
2026-10-03 03:58:18 +01:00
pulse-triage[bot] 4fbb69a7dd Make server update and rollback help evidence-preserving
Replace the destructive hardcoded restore recipe with path and backup-scope checks, the existing history control and reversible recovery guidance. Keep Compose image selection persistent and recreate only Pulse after a successful pull. Verify shipped mirrors, source/UI scope, synthetic command failures and desktop/phone Docs rendering.

Change-source: pulse-maintainer
2026-10-03 03:50:08 +01:00
pulse-triage[bot] e862d622dd Merge reviewed occurrence-qualified pending alert groups
Retain exact Core candidate and its grouping, persistent-delivery and shutdown proof; no notification source changed on the intervening canonical frontier.

Change-source: pulse-maintainer
2026-10-03 03:29:27 +01:00
pulse-triage[bot] 2c4fdc0372 Merge reviewed History access-denial withdrawal
Change-source: pulse-maintainer
2026-10-03 03:11:54 +01:00
pulse-triage[bot] ff4d3fcb5d Merge reviewed platform navigation help corrections
Change-source: pulse-maintainer
2026-10-03 03:11:33 +01:00