Commit Graph

2110 Commits

Author SHA1 Message Date
pulse-triage[bot] 1992c681c2 Preserve reviewed monitoring maintenance with current Patrol and alert defaults
Additively incorporate upstream 843daf7ae3 without removing accepted source. Resolve the overlapping AI documentation assertion by preserving its whitespace-normalized compatibility check together with upstream dead-Patrol guidance. The focused documentation policy tests pass; browser and final-source validation dependencies remain explicit.

Change-source: pulse-maintainer
2026-10-07 19:11:35 +01:00
pulse-triage[bot] 98b92689a3 Integrate reviewed bounded agent log guidance
Preserve the exact reviewed Product Intelligence commit and retained documentation proof. Existing agent help uses passive bounded log reads and keeps failed partial output private.

Change-source: pulse-maintainer
2026-10-07 18:45:56 +01:00
pulse-triage[bot] 615e113469 Integrate reviewed Proxmox replication help
Preserve the three reviewed Web commits and their exact source proof. Existing help separates classification from stale inventory without disruptive diagnostics.

Change-source: pulse-maintainer
2026-10-07 18:45:52 +01:00
pulse-triage[bot] ba90322535 Integrate reviewed stable release metadata admission
Bind unattended update selection to complete release objects with explicit stable maturity, while preserving signature, edition, consent and recovery gates.

Change-source: pulse-maintainer
2026-10-07 18:30:10 +01:00
pulse-triage[bot] 4733e816e2 Bound passive agent log collection across help entry points
Replace indefinite journal followers, a failure-masking search and diagnostic debug/restart advice with one shared deadline-bounded reader. Preserve failed reads and both streams, identify the affected agent host and keep raw errors private. Exercise copied commands with missing-tool, partial-failure, timeout and termination controls; no native recovery claim.

Contract-Neutral: Existing agent-help recipes and executable documentation controls only; agent, installation, collection, command-channel, permission and notification runtime contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 18:06:37 +01:00
pulse-triage[bot] d0a4f48bb2 Keep notification report evidence passive and distinct
Clarify Test versus ordinary delivery and message identity in the existing optional evidence fields. Preserve original queue context without sending, replaying or exposing destination secrets; pin both form schemas and the mirrored triage guide.

Contract-Neutral: Report guidance and its static checks only; no runtime, notification delivery or intake automation change.
Change-source: pulse-maintainer
2026-10-07 17:44:15 +01:00
pulse-triage[bot] 01b910fcda Bind unattended updates to complete stable release objects
Replace line-oriented release admission with object-bound JSON maturity checks. Refuse missing flags, mixed sibling fields, incomplete payloads and redirect-only discovery; bound both API reads without ambient curl configuration. Preserve highest-stable selection, confirmed latest fallback and all existing installation/rollback gates.

Change-source: pulse-maintainer
2026-10-07 17:42:05 +01:00
pulse-triage[bot] cb74547e15 Explain safe Proxmox replication disagreement checks
Separate job outcome classification from stale or absent inventory, point to existing native and expanded-row evidence, and keep disruptive diagnostics and broad permissions out of the help path.

Contract-Neutral: Existing mirrored help and rendered guidance checks only; replication runtime, API and authority contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 17:40:05 +01:00
pulse-triage[bot] d73614cc57 Integrate reviewed cross-installation Proxmox help
Preserve the exact Web candidate, mirrored guidance and rendered-document proof without treating documentation as native recovery.

Change-source: pulse-maintainer
2026-10-07 17:28:34 +01:00
pulse-triage[bot] 7fc545fb9f Integrate reviewed updater edition and audit ownership repairs
Retain the exact Delivery candidate and completed installer race evidence without claiming installed update acceptance.

Change-source: pulse-maintainer
2026-10-07 17:28:32 +01:00
pulse-triage[bot] f1745e47f4 Integrate reviewed privacy-safe cross-installation issue intake
Preserve the exact reviewed product-intelligence commit and its proof. Existing intake fields and mirrored triage guidance keep repeated identities distinguishable without private names or setup changes; no runtime or new product surface changes.

Change-source: pulse-maintainer
2026-10-07 17:23:14 +01:00
pulse-triage[bot] e4e3e8d655 Keep captured audit findings past early watchdog cleanup
The full installer race suite exposed report deletion despite the subshell-counter guard. Bind EXIT cleanup to the original process using the direct child shell parent PID, including before the inherited counter is initialised. Retain strict and unchanged-graph verdicts, exact arguments and parent cleanup. Align the stale channel-copy assertion with the existing non-stable message; executable consent controls remain unchanged.

Change-source: pulse-maintainer
2026-10-07 16:53:29 +01:00
pulse-triage[bot] 453509905a Explain safe cross-installation Proxmox identity comparisons
Keep wrong-node errors, backup attribution and lost agent-backed Docker monitoring separate. Provide passive existing-view comparisons and native fallbacks without renaming hosts, re-enrolling agents or recreating the incident. Bind the help entry points and privacy limits to rendered documentation checks.

Contract-Neutral: Existing help maintenance only; no runtime, identity or provider contract changes.
Change-source: pulse-maintainer
2026-10-07 16:44:12 +01:00
pulse-triage[bot] 2dbee5639a Stop unidentified editions entering community auto-updates
Require a successful bounded executable identity probe before release discovery. Keep Pro and unknown runtime editions untouched even when VERSION offers a usable community version, and do not defer a broken primary binary to a legacy one. Exercise the real shell classifier and main boundary with adverse controls and a TERM-resistant deadline.

Change-source: pulse-maintainer
2026-10-07 16:39:25 +01:00
pulse-triage[bot] 7a91214811 Preserve cross-installation relationships in privacy-safe reports
Repeated identity reports affect node errors, backup status and agent-backed Docker monitoring. Let reporters describe shared and independent targets using consistent aliases, without disclosing private identities or changing their setup. Preserve every affected surface during triage.

Contract-Neutral: Clarifies existing issue intake and triage guidance; no runtime, automation or feature contract changes.
Change-source: pulse-maintainer
2026-10-07 16:38:46 +01:00
pulse-triage[bot] e3965e4e14 Merge reviewed bounded TrueNAS diagnostic help
Retain exact Web candidate 20261007T151838Z-web-product and tested documentation/renderer content. Reuse existing fail-closed log readers; preserve canonical Core and Delivery changes without claiming native recovery.

Change-source: pulse-maintainer
2026-10-07 16:37:29 +01:00
pulse-triage[bot] a820fd4f07 Match shared diagnostic help verification to combined alert routing
source-2h58772x exposed an outdated copy assertion left behind by 53e1bff13c. Check the current severity/tag guidance and its real help link, retaining both filter conjunction requirements. No reader, guide or routing behaviour changes.

Contract-Neutral: Documentation test repair for existing routing guidance; no runtime or subsystem contract changes.
Change-source: pulse-maintainer
2026-10-07 16:26:48 +01:00
pulse-triage[bot] 6ab3c9a41b Integrate reviewed bounded Docker module transport recovery
Preserve exact Delivery commits 697608448a and 745c1f9ce5. Same graph and endpoints; only the observed transport-only error can retry. Refusals, integrity failures, unknown output, timeouts and signals remain terminal.

Change-source: pulse-maintainer
2026-10-07 16:25:56 +01:00
pulse-triage[bot] 26db2344de Route TrueNAS diagnostics through bounded fail-closed log readers
Remove the record-limited but indefinitely blocking duplicate commands. Use the existing unfiltered Pulse readers, preserve NAS-specific safety guidance, and exercise the linked source and rendered help against failures, real deadlines, TERM resistance and missing timeout.

Contract-Neutral: Documentation and diagnostic-recipe verification only; no runtime, API, permission or subsystem behaviour changes.
Change-source: pulse-maintainer
2026-10-07 16:21:52 +01:00
pulse-triage[bot] 745c1f9ce5 Keep a kill backstop on the bounded module download
A TERM-only timeout relies on the child exiting. Keep a fixed five-second KILL backstop, preserve every timeout as a failure and bind the shell/Go command proofs to the actual bounded invocation.

Contract-Neutral: Internal build timeout containment; source graph, endpoints, checksum trust and artifact acceptance are unchanged.
Change-source: pulse-maintainer
2026-10-07 15:46:01 +01:00
rcourtman cb5ffc2efe Remove dead Patrol assessment and save-failure handoffs
buildPatrolAssessmentAssistantHandoff lost its last caller when the Patrol
summary card's Discuss handler was removed in eac7dfe9ef (2026-05-15), and
buildPatrolConfigurationFailureHandoff lost its last caller in 27ba85ddc6
(2026-06-23). Since then only their own tests called them. A TypeScript
compiler import graph rooted at src/index.tsx confirms no reachable file
imports either one. Removing them also drops PatrolInvestigationContextSummary,
their input and output types, and the private assessment, recent-change,
correlation and save-failure helpers that only they used (found with
noUnusedLocals until it reported nothing).

Rollup had already tree-shaken all of it: production builds of the parent
tree and of this tree are byte-identical across all 187 dist files, and the
bundle-size check passes. The presentation helpers the dead code imported
keep their live callers.

Their test cases go with them. Two cases covered branches the live finding
handoff still uses, so they now run through
buildPatrolAssistantFindingHandoffActions and buildPatrolAssistantFindingHandoff:
a typed pending action without a legacy approval id stays approval-bound,
and the finding context qualifies its resource with the record's node and
truncates long lines. v8 coverage of the surviving model code matches the
pre-removal baseline except one defensive guard the live caller cannot
reach. The raw-source guards pinned none of the removed code.

The Assistant drawer still restores saved patrol_assessment and
patrol_configuration_failure sessions, so that compatibility path stays.

The contracts described both handoffs as live producers, and described a
Patrol summary card, assessment strip, assessment readout, score chip and
header trust line that the page no longer renders. patrol-intelligence,
ai-runtime, api-contracts, frontend-primitives, security-privacy,
storage-recovery, agent-lifecycle and unified-resources now say what the
code does: those handoffs survive only as saved sessions,
the drawer, session list and API keep restoring them, rules for a returning
summary card, strip or readout are conditional, and handoff_actions and
adjacent-boundary clauses name the finding and attention handoffs that send
them today. The run-history handoff clauses also claimed the browser sends a
[Patrol Run Context] block and scoped resources; it sends the briefing and
run identity, and internal/ai/patrol_assistant_handoff.go rebuilds the rest
from the run ID.

docs/AI.md (and its public mirror) told users the legacy operational score
sits in a collapsed supporting-context section. That section and the score
are gone; the section now points at Activity > Finding options and history,
where check history lives. ai_runtime_docs_policy_test.py, its registered
proof, now pins that location and rejects the retired claim. The same file
had failed on main since 2789a15fe5 reworded the Patrol mode API sentence to
"The API retains `autonomy_level` for compatibility" without updating its
pin; the pin now matches that wording.
2026-10-07 15:45:49 +01:00
pulse-triage[bot] c39cb074f7 Integrate reviewed private-file Unix agent setup help
Change-source: pulse-maintainer
2026-10-07 15:40:12 +01:00
pulse-triage[bot] 697608448a Recover bounded HTTP2 module proxy failures in Docker builds
Keep the same pinned Go graph and endpoint. Retry only the observed transport-only diagnostic, at most three attempts; stop on refusals, integrity errors, unknown output, timeouts and signals. Execute the actual Docker download command against controlled outcomes and retain its original-base rejection.

Contract-Neutral: Build-only transport recovery; source graph, endpoints, checksum trust and artifact acceptance are unchanged.
Change-source: pulse-maintainer
2026-10-07 15:38:23 +01:00
pulse-triage[bot] 9bdd2ab20f Make agent setup refuse unsafe paths and incomplete downloads
Bring the general Unix private-file bootstrap up to the existing PBS guide's safety floor. Preserve token and installer files, ignore curl configuration, require verified HTTPS and HTTP 200 before publishing the script, and exercise refusal and partial-download paths.

Contract-Neutral: Documentation and executable documentation tests only; no installer, API, runtime or capability contract changes.
Change-source: pulse-maintainer
2026-10-07 15:24:56 +01:00
pulse-triage[bot] b6efefe52f Bind standalone consent proof only to unattended updates
Register the real shell verifier for the updater without admitting it as proof for unrelated installers. Preserve exact installer requirements and test missing/unrelated proof rejection.

Change-source: pulse-maintainer
2026-10-07 15:16:10 +01:00
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] b5b1fa9777 Integrate reviewed atomic source-built server replacement
Preserve the exact candidate and its installer race and adverse-control proof. Native installed recovery remains separate.

Change-source: pulse-maintainer
2026-10-07 13:28:09 +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] 92eef9809b Attach subject report alerts with shared disk hardware ownership
Restore machine and other subject alert enrichment without path-based ownership. Reuse the existing PVE alert journal decision and cross-source hardware matching for serials, WWNs, placeholders, moved paths and ambiguous identities. Preserve machine isolation, handover counts, resolution windows and exact paid-boundary controls.

Adapt rcourtman's PR #2641 (de524e823d) and the boundary controls of rejected maintainer candidate b548e6dd3ae6d689a479254baf785d2bead7cf77. Correct its disk ownership defect against current main rather than retaining a parallel identity matcher. Imported and shared history is unchanged.

Change-source: pulse-maintainer
2026-10-07 12:36:24 +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] 52d461ddb3 Integrate reviewed state-preserving installation update help
Change-source: pulse-maintainer
2026-10-07 10:58:26 +01:00
pulse-triage[bot] fc2ab327d2 Preserve reviewed server installer confirmed-stop safety
Integrate Delivery candidate 7ee03281c0 without re-parenting either reviewed commit. Bounded service-state admission protects archive and source replacement, and manual flows stage before stopping. Retain exact-source installer/race proof source-93q9_bp2 and its stated skips, line-bound warning and native limits; no frontend or infrastructure delta.

Change-source: pulse-maintainer
2026-10-07 10:04:18 +01:00
pulse-triage[bot] 0719a8a181 Keep installation update help on state-preserving procedures
Remove unscoped Compose and Helm update shortcuts and blind container removal from the installation entry point. Keep exact edition, effective storage, successful staging and current-state checks connected to the maintained procedures; add regression controls for the shipped guidance.

Contract-Neutral: Documentation-only update guidance and regression checks; installer, runtime and deployment behaviour are unchanged.
Change-source: pulse-maintainer
2026-10-07 09:24:32 +01:00
pulse-triage[bot] 7ee03281c0 Keep the staging-failure fixture's menu answer in caller scope
The first exact-source proof passed all replacement controls but the menu fixture shadowed main's choice variable and exited before staging. Use a distinct local selector and retain the fixture stderr on assertion failure.

Contract-Neutral: Fixture-only shell output-variable correction; no runtime or replacement-contract delta.
Change-source: pulse-maintainer
2026-10-07 08:44:17 +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] 8f91450154 Integrate reviewed deployment-preserving FAQ guidance
Preserve the exact reviewed Product Intelligence candidate. Source-bound documentation, mirror, parent and mutant checks cover the existing FAQ maintenance; browser admission was busy before execution and is not rendered acceptance.

Change-source: pulse-maintainer
2026-10-07 08:39:36 +01:00
pulse-triage[bot] 5b72730caf Preserve existing deployments in FAQ configuration help
Distinguish the web listener from Docker's host port and apply environment handover through the existing deployment, with data, credentials and security overrides preserved. Link the detailed recovery paths and add parent-sensitive documentation checks plus a bounded browser scenario.

Contract-Neutral: Documentation and test-fixture changes only; no configuration, runtime, API, privacy, installation or subsystem contract delta.
Change-source: pulse-maintainer
2026-10-07 08:12:01 +01:00
pulse-triage[bot] 93459d762e Retain bounded API shard skip observations
Distinguish skipped selected tests and passing parents with skipped subtests in the existing CI sidecar. Retain only bounded source names and an aggregate child event count, including on failed or incomplete runs. Preserve shard selection, timings, diagnostics and required verdicts.

Change-source: pulse-maintainer
Contract-Neutral: CI-only additive skip diagnostics; no product installability, test-selection, threshold, privacy allowlist or required-verdict contract change.
2026-10-07 08:08:02 +01:00
pulse-triage[bot] 2e78689371 Integrate reviewed sparse telemetry report optimisation
Preserve the exact Product intelligence candidate, its unchanged report semantics and performance guard. Combine it with the reviewed SMART alert repair without overlapping source edits.

Change-source: pulse-maintainer
2026-10-07 08:02:57 +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] b0910f26b2 Avoid parsing unavailable telemetry signals per heartbeat
Intersect supplied signal keys with the existing field maps and skip explicit nulls before coercion. Preserve analyses, histories, cohort counts, timestamp parsing and the unchanged eight-second production-scale guard; add deterministic sparse/full-null cost and all-field coercion controls.

Contract-Neutral: In-memory reporting optimisation only; no telemetry schema, report semantics, collection, privacy, runtime or subsystem contract changes.
Change-source: pulse-maintainer
2026-10-07 07:43:42 +01:00
pulse-triage[bot] 7ab5174adb Integrate reviewed state-first update-failure help
Preserve the exact Product Intelligence candidate and its source-lb_bcbds proof. Existing server and Docker failure guidance now reuses bounded log readers, checks actual state before another attempt, and requires matched stopped-service recovery. No runtime or new product surface changes.

Contract-Neutral: Integrate reviewed documentation and help regression checks only; no runtime, API, configuration or subsystem contract change.
Change-source: pulse-maintainer
2026-10-07 07:38:16 +01:00
pulse-triage[bot] 7eef1a7b13 Bind the preserved disk History correction to its contract proof
Register accepted 26ae5b1aa2 with additive completion 3d45bc5750 through the existing exact-pair validator. It still requires ancestry, substantive monitoring contract and regression coverage; no historical commit, author or enforced check is changed.

Change-source: pulse-maintainer
2026-10-07 07:08:25 +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] f4ca9855df Keep update-failure help read-only before recovery
Route server update errors through bounded log readers, distinguish updater status from the running service, and require a matched stopped-service recovery rather than a guessed restore. Keep the existing Docker help on the same bounded reader.

Contract-Neutral: Documentation and help regression checks only; no runtime, API, configuration or subsystem contract change.
Change-source: pulse-maintainer
2026-10-07 06:55:05 +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] 0fbc00609f Bound severity-filtered incident logs without reinstalling Pulse
Keep warning-priority evidence within the existing incident reader's deadline, record limit and failure handling. Explain info-priority legacy units without requesting a full secret-bearing unit or an incident-time installer rerun.

Contract-Neutral: Documentation and copied-reader regression tests only; no runtime, API, setting, permission or lifecycle contract changes.
Change-source: pulse-maintainer
2026-10-07 06:04:06 +01:00
pulse-triage[bot] 31eccb559e Integrate reviewed bounded general incident-help path
Change-source: pulse-maintainer
2026-10-07 05:50:51 +01:00