mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 20:52:51 +00:00
2e9404504b
## What changes and why - Keep backup-age checks fast and make failed or partial evaluations visible through one existing system warning, without clearing retained age alerts. Indexed latest-observation reads preserve retention, schema and the read budget. This responds to the recurring missed checks reported in #2465; synthetic timing is not proof of relief on the reporter's Pi. - Defer guest-agent commands after uncertain HTTP results and require same-target, unambiguous backup-lock evidence before guest reads. Keep guest coverage truthful when only remembered versions or a parent-node assignment exist. Preserve the original observation time/source of retained memory through existing backend projections. These changes advance #2439 safety, but do not establish native thaw or recovery. - Attribute Proxmox backups using native connection/node and unique PBS namespace evidence, retaining ambiguous artifacts rather than assigning them by substring or display name. Show unreliable PBS capacity as Unknown/Unavailable, while retaining valid measured zero and readable phone warnings. - Restore existing TrueNAS and VMware connection alerts using the constructed runtime pollers. This does not resolve the distinct monitoring cause reported in #2382. - Keep safe report collection and attachment guidance self-contained, and make manual backup pause/resumption precautions usable. Repair the Diagnostics integration journey's outdated controls, download assertions and session capability, without changing production authorization. ## Included source Published base `61146105c74a5968d877691e02963c41f8e66076` → exact final head `af73b0e6c618da83c4fc5e702ba464257481851c`. The previous proposal head `dcde1d0157d5e3c4cd626d6b920a45016a3f0437` and all reviewed ancestry remain unchanged. This advances the proposal once after its workflows completed with demonstrated failures; it does not interrupt a checking head. Reviewed candidates include: - Previous batch: guest HTTP `cd1e3ba12f`, runtime alerts `7f5c8a0cf1`, safe intake `496ba1e73e`, PBS capacity/render sequence `8f09a59996` through `d2f7e456b3a`. - Manual pause `3fd44b8325`; native backup ownership `c5e83ceb3a` / `6198a3ce22`; authoritative locks `b77e6908e6`; truthful guest coverage `ba3e2d2c1c` / `8f9a9a6a1e` / `f9f53befbb`. - Backup evaluation/query `5774b6bc4b` / `7a19a06631`; Diagnostics sequence `ed168c8d7e` through `a3bbcae0c9`; memory provenance `abee023634` through `80d8ad0f59`; self-contained intake `7c9922f55d`. - Starting reviewed canonical tip `8003a4037bf2e6628d47ca6c7da239a11096168e` is retained. Four additive publication corrections (`745ddc982a` through `79091f7b03`) supply the report-form contract, connected docsLinks regression and exact historical completion pair. The first completion's section placement failed the checker; its substantive-section correction passes. No accepted commit was amended or recreated. ## Validation and remaining gates The previous proposal's completed runs remain adverse: Build/Test `37204956836` failed the documentation drift assertion; E2E `37204956824` failed Diagnostics shards 3/6/8 (download/obsolete Run-control timeouts). These warrant the admitted changed-source repairs, not an unchanged retry. Retained reviewed evidence includes guest transport/connected/race/build (`source-5_ta7via`), runtime alert connected proof (`source-s0xmdftf`), PBS source/render evidence (`source-_9ekxhcy`), manual-pause source/render (`source-ifgmfzhw`), all-reader authoritative-lock proof (`source-41amnzmb`), guest coverage's 1,901 connected tests/full types/lint/build and inspected Chromium/WebKit desktop/phone renders (`source-3y6kfagt`), backup recovery/alerts/monitoring/races/vet/real builds (`source-vc1jlsz9`), and memory models/unified-resource/alerts/monitoring/races/vet/types/real embed/build (`source-5swnugj9`). Diagnostics retains nine passing full-app journeys with matching source hashes; catalogue `source-cyehgbio` discovers 916 test/project identities, including all nine Diagnostics cases, but is not runtime acceptance. Intake `source-stznewur` retains two intended parent failures and passing policy/documentation/mirror checks. Publication checks: provenance, clean retained ancestry, per-commit canonical completion/history, registry/contract audits and final browser-content coverage (nine changed production frontend files) pass. Earlier proposal-head (`79091f7b`) offline VM proof `source-1fn6chab` passes 36 docsLinks tests, formatting, 27 intake cases, 211 public Markdown checks and 62 mirrors, with complete hash-matched output and guest stop. Its line-index bound is explicit. Earlier `source-yj300mm2` passed docsLinks but exited 1 when a browser script was mistakenly invoked in a source VM without Playwright; no browser result is claimed from that attempt. Earlier local preparation failures and prior API/embed limitation remain evidence at their own bindings, not green aggregate results. Required exact-head CI must run the complete backend/build/frontend, audit and protected E2E checks, with independent source review, before landing. Existing sufficient connected/render proof was not repeated solely for batching. This is source publication, not release qualification, deployment, native appliance/guest acceptance or completion of the linked reports. The containing all-main release, Pi evaluation/failure/recovery, native backup/thaw/covered writes/liveness, remaining memory drawer consumption and installed whole-panel/alert results remain separate. Related to #2465 Related to #2439 Related to #2382 [How Pulse handles triage](https://github.com/rcourtman/Pulse/blob/main/docs/AI_TRANSPARENCY.md) ## Completed workflow reconciliation and additive smoke repair The starting proposal head `79091f7b0317807fcc76e36cde52c4ee1cc4c928` and every reviewed commit remain ancestors of this head. Build/Test `37219920651` has now completed. All backend partitions, frontend, governance, security and all eight E2E shards/verdict passed, but script smoke failed two obsolete whole-guide assertions in `test_vm_disk_diagnostics.py`; backend build was consequently skipped. The reviewed manual backup precaution deliberately adds six server/timer examples. The old passive-helper test counted all seven guide examples and banned `systemctl` throughout the whole guide. This source mismatch warrants changed-source repair, not an unchanged retry. Additive test-only `c4a72995c6bf2465a6540a1b546a9dcd732944af` scopes passive-helper execution to its named section and admits only the exact six reviewed manual-pause blocks. Its first local run retained one failure because a shell comment was mistaken for a heading. Additive `af73b0e6c618da83c4fc5e702ba464257481851c` parses headings only outside fenced blocks. All 17 diagnostics/safety controls now pass, including missing/duplicate headings, shell comments and five prohibited-command mutations. The passive helper still rejects active guest requests and service mutations. Production and guidance bytes remain unchanged; mirrored docs and connected intake checks pass. Both failed correction/control observations remain recorded, not relabelled. Final publication provenance, clean retained ancestry, additive contract/registry audits and the unchanged nine-production-file browser-content coverage pass. Lightweight confined fixture proof supplies the full 17-case suite; existing heavy/render proof was not repeated for this test-only delta. This proposal advances only after the previous head's workflows completed. Exact new-head CI must rerun its required checks before landing. The completed advisory benchmark job is also adverse: `RefreshPlatformScopes` 294.1 → 325.0 ns (+10.51%) and `ClassifyResourceSensitivity` 67.68 → 77.20 ns (+14.07%), each p=0.000 with ten samples. Their implementation and benchmark source are unchanged across the batch; that does not prove noise, intentional cost or lack of regression. Delivery owns a bounded evidence-based disposition through the existing lane handoff. No favourable repeat, threshold change or performance/release approval is claimed. [How Pulse handles triage](https://github.com/rcourtman/Pulse/blob/main/docs/AI_TRANSPARENCY.md)