Commit Graph

574 Commits

Author SHA1 Message Date
pulse-triage[bot] fb109ada1d Keep unattended consent checks independently executable
The broader installer race/vet VM attempt reached readiness but returned no command verdict at its observation deadline. Keep the same consent cases in the normal installer suite and make their committed file standalone, with only standard-library imports and the actual shell gate. This enables proportionate exact-source Bash regression proof without building unrelated application dependencies; the broader failed attempt remains retained.

Change-source: pulse-maintainer
2026-10-07 15:08:46 +01:00
pulse-triage[bot] eafd744e1e Require complete top-level consent before unattended updates
Text matching admitted truncated configuration, nested opt-in and padded RC channels. Parse one configuration object with the installed jq dependency and fail closed before downloads when consent cannot be verified. Preserve the legacy no-config timer opt-in, manual updates and disabled-timer gate; add executed-shell regression cases and the deployment contract.

Change-source: pulse-maintainer
2026-10-07 14:31:37 +01:00
pulse-triage[bot] 1e6629c03c Stage source-built server binaries before atomic replacement
Admit a prepared executable and source revision before stopping Pulse. Keep the live binary in place until one same-filesystem rename, and restore only a previously active service after a failed rename. Preserve existing recovery files and exercise staging, stop, rename and recovery failures.

Change-source: pulse-maintainer
2026-10-07 12:44:56 +01:00
pulse-triage[bot] c0772f0d7d Admit archive binaries before stopping Pulse and replace them atomically
Reject signature, extraction, architecture, destination staging and version failures before the service outage. Keep the live executable until a same-filesystem rename succeeds, remove the destructive version retry, and recover only a previously active, confirmed-stopped service if rename fails. Exercise the real archive path with download/local inputs and retained byte/mode/state fault controls; preserve uncertain-stop restrictions and separate native acceptance.

Change-source: pulse-maintainer
2026-10-07 11:39:38 +01:00
pulse-triage[bot] 407da3addb Refuse server replacement until Pulse is confirmed stopped
Archive and source installs ignored stop failures, while the manual flows stopped Pulse before staging. Require bounded state reads and a confirmed inactive service before either replacement; keep prior-active attribution and installed metadata on refusal. Exercise both real paths, timeout and uncertain-state controls, and manual staging failures without native or production mutation.

Change-source: pulse-maintainer
2026-10-07 08:41:36 +01:00
pulse-triage[bot] c95d81b737 Integrate reviewed complete API shard execution evidence
Preserve f2b5080bcc and 580199f07c exactly. Resolve only the shared classifier working-directory comment in favour of main's wording, retaining its compilation assertions and the common checkout-root execution.

Change-source: pulse-maintainer
2026-10-07 07:43:49 +01:00
pulse-triage[bot] 3d45bc5750 Repair combined validation while preserving sparse disk History
Completed PR2576 checks exposed a workflow-shell fixture running outside the checkout root, two unformatted test files, and the missing monitoring contract for accepted 26ae5b1aa2. Run the real classifier helper in its actual Actions context and assert Go compilation admission alongside strict dependency-audit decisions. Record collected metadata with empty series and retained-only exclusion without changing runtime or synthesizing samples. All reviewed commit identities remain unchanged; final source proof and exact-head hosted checks remain required.

Change-source: pulse-maintainer
2026-10-07 07:07:56 +01:00
pulse-triage[bot] 580199f07c Run extracted CI classification from its actual checkout root
The full committed-source installtests race run source-8gv7x0gy failed all code-bearing classification cases with exit 127: the extracted workflow invokes scripts/go-test-compile-required.sh relative to the checkout, while Go starts tests in scripts/installtests. Match the Actions working directory without stubbing the classifier, weakening strict audit or changing workflow behaviour.

Contract-Neutral: Verification-only working-directory repair; the existing real workflow cases, classifier and strict/inherited audit contract are unchanged.
Change-source: pulse-maintainer
2026-10-07 06:57:13 +01:00
pulse-triage[bot] f2b5080bcc Require complete source-selected API shard execution evidence
Fail empty, malformed, truncated or substituted test streams even when the producer exits zero. Bind each existing CI shard to its source-derived selected names and package, retaining skips, diagnostics and bounded missing coverage alongside the unchanged timings. Preserve required checks, race/vet execution and timing weights; exercise real Go race JSON and parent failure controls.

Change-source: pulse-maintainer
2026-10-07 06:28:16 +01:00
pulse-triage[bot] 2155dfba7e Verify frontend graph changes on the native agent platforms
The native matrix consumes the frontend manifests on every platform and uses their test runtime for Windows PowerShell command acceptance, but its event filters omit graph-only changes. Admit those two exact inputs on both PR and main while leaving UI-only changes and all existing native steps unchanged. Regression controls independently remove each input/event and exclude the graph.

Contract-Neutral: Native CI admission coverage only; installer inputs, runtime behaviour, service authority and recovery contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 05:28:32 +01:00
pulse-triage[bot] 87c13e4074 Retain bounded API shard failure identities beside timings
Publish failed and unfinished source-test names in the existing shard artifact without waiting for other workflow jobs. Keep logs, timings, test selection and failure exits unchanged; record unknown completion and omitted unsafe or excess identities explicitly. Pin privacy, bounds, pipefail and timing-refresh compatibility, and align the existing shard contract with current compile admission.

Change-source: pulse-maintainer
2026-10-07 01:47:42 +01:00
pulse-triage[bot] 450a551cf5 Reject incompatible Go test fixtures before backend CI fan-out
Compile all race-test binaries without execution only when source, graph, backend embeds or this admission path can affect Go. Preserve required check failures, docs/frontend-only skips and all full runtime/vet and frontend audit checks. Exercise inert and broken fixtures, diff classification and prerequisite propagation.

Change-source: pulse-maintainer
2026-10-06 19:54:22 +01:00
pulse-triage[bot] d66afd1648 Reject shipped documentation drift before CI fan-out
PR2576's deterministic mirror failure admitted expensive frontend, backend and browser work that could not land. Run the existing whole-tree checker before dependency work in the build admission job and all three E2E entrypoints, retaining every existing check, secret scan and test gate. Exercise the actual workflow commands with synced, stale and orphaned guides.

Change-source: pulse-maintainer
2026-10-06 18:10:41 +01:00
pulse-triage[bot] 440348cb14 Keep audit report cleanup owned by the invoking shell
The declared 80-case trace reproduced a stopped watchdog running its inherited EXIT cleanup before classification, deleting a captured critical finding. Guard cleanup by Bash subshell ownership, including Bash 3.2, and exercise the actual hook with a deterministic child-exit control and a rejected legacy hook. Retain parent cleanup and every existing audit verdict and deadline.

Contract-Neutral: Repair captured-report lifetime only; advisory classification, strict and inherited verdicts, invocation scope, retry budgets and external permissions remain unchanged.
Change-source: pulse-maintainer
2026-10-06 15:26:35 +01:00
pulse-triage[bot] c486a2aefb Repair the native Unix installer check failures
Keep npm audit argv nonempty on native macOS Bash so argument-free checks retain critical findings. Cover both scopes, strict and inherited verdicts, exact quoted arguments and one invocation. Align the helper matrix assertions with the reviewed socket-free collection route while retaining isolation, identity and default limits.

Contract-Neutral: Restore existing audit and helper-documentation obligations only; verdict policy, retry budgets, npm argument scope, helper isolation, telemetry contracts and defaults are unchanged.
Change-source: pulse-maintainer
2026-10-06 15:06:16 +01:00
pulse-triage[bot] 897dbc6f30 Verify helper-only changes on both native Linux platforms
The native workflow did not admit helper/protocol/filesystem/signature-only edits and omitted their suites. Extend its existing Linux jobs with bounded uncached race coverage and an actual helper build, preserving ordinary-user execution and all installed/PVE acceptance boundaries. Regression controls reject missing triggers, platforms, packages and hidden failure.

Contract-Neutral: Native source-verification coverage only; installed helper authority, signed migration, isolation and guest-recovery contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 13:49:09 +01:00
pulse-triage[bot] 7be63facb9 Balance the existing non-API race-test checks by measured package cost
Two completed PR runs put 24 minutes of overlapping package test time on rest-1 versus 14 on rest-0. Assign whole package binaries deterministically by recorded cost while deriving exhaustive coverage from the checked-out go list. Keep both required check names, every race test, failure propagation and the separate contiguous internal/api shards unchanged.

Contract-Neutral: Rebalance existing CI work only; no runtime, required-check, exhaustive coverage, race-test or dependency-admission contract changes.
Change-source: pulse-maintainer
2026-10-06 12:38:46 +01:00
pulse-triage[bot] 3dfef8cffa Reject failed observations inside Windows lifecycle proof
Close the connected exit-propagation gap in the CI service harness: a version or sc.exe query that prints plausible text but exits nonzero must not become accepted evidence. Check each captured native exit before inspecting the text, retaining the existing checked installer invocation.

The workflow and harness regressions now cover twelve native boundaries. Controlled PowerShell execution remains required by native Windows CI and explicitly unavailable in the offline Linux guest; production installation, service operations and customer acceptance are not inferred.

Contract-Neutral: CI proof verdict propagation only; production agent, installer, service lifecycle and permission contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 08:16:10 +01:00
pulse-triage[bot] 739a564209 Fail native Windows CI at each failed command
PowerShell steps containing multiple native commands only expose the last exit to Actions. Check all agent build/version/self-test and lifecycle build/invocation exits immediately, keeping the original status in the error. A later success can no longer conceal an earlier failure or start lifecycle mutation after a failed build.

The regression validates all seven workflow boundaries, rejects each missing guard and tolerant steps, and runs the actual guards against controlled native exits when PowerShell is available. Windows CI requires that runtime regression; offline Linux explicitly retains the unavailable runtime as a skip.

Contract-Neutral: Native CI verdict propagation only; production agent identity, installer behaviour, service lifecycle and authority are unchanged.
Change-source: pulse-maintainer
2026-10-06 08:07:03 +01:00
pulse-triage[bot] 7c717b9f4b Keep large CI dependency changes on the strict audit path
Consume the full change list so an early dependency-path match cannot make printf receive SIGPIPE under pipefail and select inherited-advisory warning mode. Exercise the actual workflow classifier and real audit runner with bounded offline controls, including a critical finding; exact paths and existing audit policy stay unchanged.

Contract-Neutral: Repair the existing complete-list classification obligation only; strict dependency paths, inherited-warning policy, audit verdicts, permissions and publication contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 06:56:52 +01:00
pulse-triage[bot] 3e69c6706c Preserve archive metadata during verified updater recovery
Keep the original archive-copy metadata semantics while checking every snapshot and restore. A content-only copy would lose extended attributes. Exercise that recovery and reject a non-regular restored destination before byte comparison or activation; qualify the restart backstop comments for incomplete recovery.

Change-source: pulse-maintainer
2026-10-06 03:35:00 +01:00
pulse-triage[bot] 505e837a43 Use the actual OpenSSH signature output in updater transaction controls
The first connected attempt failed before installer execution because the fixture expected .sshsig while ssh-keygen creates .sig. Require that real signed output and serve it under the simulated release URL. Production signature verification is unchanged; retain the original failed proof.

Contract-Neutral: Correct the test fixture signature filename only; production updater and trust contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 03:11:58 +01:00
pulse-triage[bot] 79d6ad642a Verify restored destinations before completing updater recovery
A successful rename is not by itself the recovered-byte postcondition. Keep the snapshot and suppress activation when the recorded destination is still a link or no longer matches the saved bytes; connected no-op and changed-destination controls exercise that boundary.

Change-source: pulse-maintainer
2026-10-06 03:09:38 +01:00
pulse-triage[bot] cf92426ec1 Keep rollback replacement portable and model its stop boundary
Reject directory destinations before the same-directory file rename, use portable mode inspection in the connected transaction tests, and teach the existing service fakes that stopping and failed activation are separate operations. The recorded first candidate proof remains bound to its own source.

Contract-Neutral: Preserve the reviewed backup and rollback semantics; portable utility invocation and faithful test boundary only.
Change-source: pulse-maintainer
2026-10-06 03:07:35 +01:00
pulse-triage[bot] 329f2b00c4 Keep a verified recovery path through unattended update failures
The conditional updater caller disables errexit, but binary and VERSION backups and restore copies were best-effort and their only backup was deleted even when recovery failed. Require a private verified snapshot before installer execution, consolidate the three rollback branches, stage exact original paths and absence, and retain the backup without automatic activation when recovery is incomplete. Exercise the complete signed offline path and prior-active-only service recovery.

Change-source: pulse-maintainer
2026-10-06 03:05:00 +01:00
pulse-triage[bot] 11d4dff20d Build real API-linked assets before native agent tests
The connected Docker-agent tests now import the API embed. Native jobs
previously ran their Go runtime suite before any frontend installation,
leaving that suite without its compile-time assets. Prepare the locked real
frontend build for every native runtime platform, reuse it for the Windows
command proof, and retain all existing runtime, installer and service
lifecycle checks.

The deployment documentation and ordered all-platform/stub-build regressions
describe the existing real-embed prerequisite. Source builds and Windows
cross-compilation remain distinct from native acceptance.

Contract-Neutral: CI asset preparation only; production agent identity, command authority, installer and service lifecycle contracts are unchanged.
Change-source: pulse-maintainer
2026-10-06 02:16:54 +01:00
pulse-triage[bot] 28c64e3808 Reconcile reviewed monitoring maintenance with published benchmark repair
Preserve the exact reviewed tip and incorporate current origin/main additively before combined-source validation.

Change-source: pulse-maintainer
2026-10-06 00:05:38 +01:00
rcourtman b027bb0e8e Keep paired PR benchmarks inside their time budget
Since 15:00 UTC on 5 October every paired benchmark run that was not
superseded has hit its 25-minute step timeout. Each step runs ten base
and ten candidate samples, so per-sample growth is multiplied by twenty.

BenchmarkRegistryProjectionSnapshot (#2518) rebuilt a registry behind
StopTimer on every cold iteration. Go sizes b.N from timed work only, so
the empty-registry cases ran hundreds of thousands of untimed ingests
and took 16 s of a 100 ms benchtime. With #2486's new owner-index and
metadata benchmarks, internal/unifiedresources went from 8 s to 38 s per
sample. Cold now invalidates the registry's derived state instead. The
refresh never reads its own output, so this repeats a fresh ingest's
first read with the same allocations, and the family drops from 22 s to
about 5 s per sample.

Paired runs also measured every package even when both trees compiled
identical code, as on frontend-only changes. They now sample only
packages whose in-module dependency closure the change reaches. Module
files, dirty or non-Git trees and an unreadable graph still select
everything.

A module or shared-model change still samples nearly every package,
about 24 minutes with warm-up. The step therefore gets a measured 30
minutes, and the script stops at a 28-minute projected budget with
per-package costs instead of meeting a bare timeout.
2026-10-05 22:39:51 +01:00
pulse-triage[bot] 63fcae0a3a Preserve partial PVE filesystem readings without widening helper access
Replace the rejected global host-network proposal with the unchanged private namespace on every platform, including native linux-386. Carry successful rows and omitted VMIDs through operation v2 without clearing degraded health or renewing omitted measurements; retain strict complete-only v1 compatibility. Restart the installer-owned helper only after isolated-unit and socket checks, and document the unresolved pmxcfs IPC limitation rather than claiming PVE recovery.

Change-source: pulse-maintainer
2026-10-05 18:22:01 +01:00
pulse-triage[bot] 0c283d2dd5 Explain container CPU scales and passive comparisons
Document host-capacity normalisation, version-qualified rounding and the difference between collected readings and delivered alerts. Keep comparisons on ordinary workload observations rather than forced load, threshold changes or diagnostic reruns.

Contract-Neutral: Existing container CPU semantics and safety guidance only; no runtime, API, threshold, permission or lifecycle contract changes.
Change-source: pulse-maintainer
2026-10-05 12:13:26 +01:00
pulse-triage[bot] 443faa53b6 Keep macOS native utilities unchanged around timeout bootstrap
Expose only the installed GNU gtimeout as timeout through a new runner-owned directory. Keep native BSD utilities on their original PATH so installing the missing dependency cannot silently change the other platform checks. The connected workflow test verifies the symlink identity and that the directory contains no other utilities.

Contract-Neutral: Narrow the native CI dependency PATH and its proof; no shipped installer or runtime contract changes.
Change-source: pulse-maintainer
2026-10-05 09:44:52 +01:00
pulse-triage[bot] 13f6d10798 Supply real GNU timeout to native macOS guidance checks
Both macOS native jobs fail the copied temperature recipes before reading any sensor. Install coreutils into the workflow PATH and verify GNU timeout for every Unix runner. Exercise the actual workflow snippets with real GNU timeout and fail-closed install, missing-tool and unsupported-tool controls; leave the recipes and their TERM/KILL/privacy controls unchanged.

Contract-Neutral: Native CI prerequisite and its fixture coverage only; no installer, runtime, API, permission or diagnostic contract changes.
Change-source: pulse-maintainer
2026-10-05 09:38:34 +01:00
pulse-triage[bot] c0f0474423 Keep Bash temperature guidance tests with their non-Windows runner
The reviewed phase-aware runner and PBS helper exclude Windows. Apply the same build constraint to their existing Bash temperature consumers so Windows test compilation does not retain unresolved runPBSRecipe references. Linux test content, guides and runtime are unchanged.

Contract-Neutral: Align an existing Bash-only test file with its non-Windows test helper; no runtime, guide, dependency or platform contract change.
Change-source: pulse-maintainer
2026-10-05 05:59:59 +01:00
pulse-triage[bot] 87790b9042 Separate copied-guidance preparation, request and cleanup deadlines
A bounded synthetic comparison shows the whole-shell watchdog can kill a POST before its own curl deadline or expire before a PBS request starts. Observe each phase privately, preserve curl arguments and exact request limits, cancel owned descendants and retain incomplete pipe results. Exercise delayed preparation, one-shot transport, private responses and every cancellation phase without changing any guide or runtime.

Contract-Neutral: Repair Bash documentation test timing and owned-child observation only; no guide, mirror, runtime, API, authentication, request deadline, dependency or permission contract changes.
Change-source: pulse-maintainer
2026-10-05 05:39:25 +01:00
pulse-triage[bot] 4cb1c8a232 Make temperature diagnostics passive, bounded and private
Replace automatic hardware detection with existing-driver reads, keep SSH forced-key trust intact, and prevent incomplete legacy cleanup downloads from replacing a saved helper. Validate the copied commands against synthetic tools and HTTPS peers.

Contract-Neutral: Existing help and copied-command safety only; sensor collection, authentication, installer interfaces and runtime schemas are unchanged.
Change-source: pulse-maintainer
2026-10-05 03:00:54 +01:00
pulse-triage[bot] aece6b5217 Keep copied API requests private, bounded and one-shot
Save every existing reference response privately, including errors and partial POST results. Preserve private header files, reject unsafe preparation and URLs, and stop on redirects or transport errors without retries. Exercise all eight copied GET/POST examples against real synthetic HTTP/TLS peers, including the old response exposure.

Contract-Neutral: Harden existing API documentation recipes and their shipped mirror with connected tests; no runtime, endpoint, authentication, scope, action, dependency or permission contract changes.
Change-source: pulse-maintainer
2026-10-05 01:52:58 +01:00
pulse-triage[bot] 50941e431a Compile the copied PBS request controls against addressable recipes
Retain the guide recipe array before selecting its request slice; the initial exact-source proof rejected a temporary array slice before running any tests.

Contract-Neutral: Correct test compilation only; existing PBS documentation and runtime contracts are unchanged.
Change-source: pulse-maintainer
2026-10-05 00:45:13 +01:00
pulse-triage[bot] bcbf7f0992 Keep PBS credentials, diagnostics and installer preparation private
Fail closed before editing unsafe credential paths, ignore curl configuration and retain diagnostic responses privately. Bound requests, reject redirects and publish the local installer path only after a complete HTTPS 200 download without overwriting existing files. Exercise the copied recipes against synthetic TLS peers and file failures.

Contract-Neutral: Harden existing PBS documentation recipes and their shipped mirror; no runtime, API, permission, installation contract or dependency change.
Change-source: pulse-maintainer
2026-10-05 00:41:26 +01:00
pulse-triage[bot] d589407a74 Keep optional TrueNAS parent controls independent of other proof inputs
Source proofs can supply unrelated input files. Retain recipe mutation controls while reading the exact parent only when its named guide was supplied; unrelated input directories must not become a new full-suite prerequisite.

Contract-Neutral: Test-only optional-input handling; no shipped guidance or product contract change.
Change-source: pulse-maintainer
2026-10-04 21:31:04 +01:00
pulse-triage[bot] cadfd1f4e1 Keep TrueNAS API setup credentials and responses private
Make the existing connection guide fail closed before editing credentials, ignore curl configuration, bound each single POST and retain sensitive responses in new private files. Explain actual test/save status and uncertain-save readback without retrying setup as diagnostics.

Contract-Neutral: Documentation-only credential handling and copied-recipe regression tests; no runtime API, TrueNAS polling, authentication or connection-management contract changes.
Change-source: pulse-maintainer
2026-10-04 21:21:27 +01:00
pulse-triage[bot] 5e6d5af3b5 Make MSP isolation checks credential-safe and TLS-verified
Replace inline token arguments and certificate bypasses with private header files and verified HTTPS. Bound the read-only probes, discard bodies, preserve failed curl exits and distinguish an invalid token from a checked tenant boundary. Keep the shipped guide byte-synchronised. Exercise copied commands with a synthetic TLS peer, private-header canaries, hostile curl configuration and refusal/redirect controls; no customer endpoint is used.

Contract-Neutral: Existing diagnostic guidance and regression coverage only; no runtime, public API, token scope or tenant-isolation contract change.
Change-source: pulse-maintainer
2026-10-04 20:20:06 +01:00
rcourtman bd9063ed56 Cut 6.5 and later releases from main
Releases are cut from the head of main since 2 October, but three things
still made every release need hand edits before it could pass:

- the control plane routed 6.5.x to the abandoned release/v6.5 line;
- main lacked the published 6.4.4 to 6.4.6 packets, so rollback
  derivation on main still found 6.4.1;
- the packet tests pinned prose from old 6.4.x notes (named
  highlights, issue numbers, one release's mobile decision) and the
  per-release sentences in the deployment-installability contract,
  which changes several times a day on main.

Map 6.5 to main, carry the published packets over from release/v6.4,
and keep the packet tests to what the release tooling generates: version
pins, packet pointers, required sections and the rollback, signing and
mobile sentences.

Contract-Neutral: Release routing and release-packet test scope only; no runtime, install or public contract changes.
2026-10-04 18:37:43 +01:00
pulse-triage[bot] 9213a6d75a Keep publication checks independent of selector and fixture formatting
Accept a stable exact Node pin only within the governed major instead of
comparing its entire string with the major selector. Keep all other lines,
ranges and unresolved selectors rejected. This repairs the deterministic
required-check failure on the published-RC browser workflow without removing
its exact Node pin.

Give fake npm audit tests their own default timing controls and exercise
poisoned caller environments while preserving explicit watchdog tests.
No production audit verdict, dependency graph, benchmark threshold or release
gate changes.

Change-source: pulse-maintainer
2026-10-04 06:41:04 +01:00
pulse-triage[bot] 888d918ba1 Integrate batch-start upstream frontier without dropping reviewed repairs
Merge exact upstream 99927467f5. Resolve only the agent-lifecycle contract append conflict by retaining both monitor recovery ownership and AI usage export clauses. Frontend auto-merges preserve reviewed final bytes; no runtime conflict correction or browser receipt rebinding.

Change-source: pulse-maintainer
2026-10-04 00:00:18 +01:00
rcourtman 237130a2cb Warn on inherited npm advisories when the lockfile is unchanged
GHSA-vfj7-8cjw-p6xm (braces <= 3.0.3, no patched release) reached the
frontend graph only through dev-only tailwindcss 3 and jscpd 4, and from
3 October it failed the required Frontend check on every open pull
request, Go-only ones included. The production audit is clean, and a
change that leaves package.json and package-lock.json untouched has the
base commit's graph, so it can neither add a finding nor remove one.
Failing it blocked every fix and made nothing safer.

The runner now applies the split it already used for an unreachable
endpoint to findings too. A change that moves the graph, or edits the
runner, still fails on any finding at any severity. A change whose graph
is the base commit's warns, naming every finding. Only an explicit
NPM_AUDIT_REQUIRE_RESULT=false selects that mode; an empty or
unrecognised value, as a missing workflow output would give, stays
strict, which also tightens the outage path.

The scheduled npm-audit scan and the daily dependency advisory watch
keep the strict default, so an inherited advisory still fails somewhere
every day until the dependency graph is fixed. No severity threshold,
allowlist or suppression is added.
2026-10-03 12:08:37 +01:00
pulse-triage[bot] a23029a80c Keep demo installation proof aligned with signed runtime operation
The complete installation suite detected the obsolete installer-identity assertion. Require the actual binary/VERSION payload identity check instead and retain the connected Python verdict in verbose and JSON source proof output.

Contract-Neutral: Test-only alignment and proof visibility for the already implemented signed runtime footprint; no runtime, authority or contract delta.
Change-source: pulse-maintainer
2026-10-03 03:15:20 +01:00
pulse-triage[bot] a2fc29b70b Limit guarded demo updates to owned signed runtime files
Retain the rejected VERSION rollback result. Replace general installer execution with pinned-signature archive selection and atomic binary/VERSION swaps, preserve unrelated distribution assets, and fail closed on missing matching native acceptance before production mutation.

Change-source: pulse-maintainer
2026-10-03 03:01:05 +01:00
pulse-triage[bot] 4df3e8974e Add disposable native acceptance for owned demo recovery
Exercise actual systemd and Caddy with a changed executable, distinct persistent data, delayed synthetic failure, observer loss and TERM during full rollback. Keep 300-second clocks, exact-source and cleanup receipts; no production credential or worker system privilege is added. Update the connected recovery contract and policy assertions, and retain bounded service identity observations.

Change-source: pulse-maintainer
2026-10-03 01:36:36 +01:00
pulse-triage[bot] 751fb67523 Bind demo controls without broadening unrelated release proof
Keep new source paths on their own connected proof policy after the full lookup suite exposed six broadened metadata expectations. Preserve terminal no-op cancellation evidence and the runtime file owner.

Contract-Neutral: Correct connected observation and verification routing within the existing demo operations and authority.
Change-source: pulse-maintainer
2026-10-03 01:12:47 +01:00
pulse-triage[bot] f56e28e6af Own demo update and recovery through sustained host observation
Compose the existing signed stable demo paths with the Relay host lock, durable systemd ownership, full persistent estate capture and five-minute forward and recovery watches. Preserve uncertain attempts and failed rollback, refuse destructive headroom pruning, and keep native installed acceptance separate from connected source controls.

Change-source: pulse-maintainer
2026-10-03 01:05:16 +01:00