Commit Graph

15115 Commits

Author SHA1 Message Date
pulse-triage[bot] d1a8e99146 Verify final drawer composition through its actual consumers
Bind the reconciled Guest and Node drawers, guest model and update evidence to current compiled source and desktop/phone light/dark consumers. Twenty final captures were opened natively. Retain the original mismatched History fixture failure and complete corrected range-aware cases without changing runtime behavior or weakening assertions.

Contract-Neutral: Source-bound browser receipt only; no runtime, regression, graph or guidance changes.
Change-source: pulse-maintainer
2026-10-13 18:59:14 +01:00
pulse-triage[bot] ccd4f1b491 Keep composed guidance controls aligned with their shipped destinations
Final composed frontend source-bqtf8ld2 passed types, all lint and 23379 tests, but five fixture assertions still assumed denied updates stayed outside Details and the troubleshooting intake had no copied-command row. Require neutral denied status inside usable Details while guidance and dialog identity remain visible, and cover all ten workflow entries and seventeen real heading destinations. Runtime and safety assertions are unchanged.

Contract-Neutral: Integration fixture assertions only; no runtime, documentation, graph or policy changes.
Change-source: pulse-maintainer
2026-10-13 18:36:01 +01:00
pulse-triage[bot] cb778998d7 Record final-byte desktop and phone drawer integration proof
All four combined runtime files are consumed through the actual drawers/History/Docs at desktop and phone widths in both themes. All24 final captures were inspected with the native image tool; prior failed driver runs and inconsistent synthetic extrema remain retained. No native recovery or availability is claimed.

Contract-Neutral: Own-parent browser evidence only; production and contracts are unchanged.
Change-source: pulse-maintainer
2026-10-13 18:32:38 +01:00
pulse-triage[bot] 6111220dd3 Reconcile current drawer refinements with reviewed maintenance
Preserve the complete accepted local tip and exact published 526fa790ae additively. Keep upstream chart attention, neutral denied-update status and wrapping together with the reviewed reading and accessible update guidance.

Change-source: pulse-maintainer
2026-10-13 18:20:18 +01:00
pulse-triage[bot] 0dd07f5052 Keep synthetic I/O extrema consistent with the stored readings
Pixel review found the mock readout was in MiB/s while its min/max stayed in the percentage fixture range. Use matching extrema and require magnitude-labelled I/O axes. Retain original captures and do not attribute this invalid fixture to production.

Contract-Neutral: Synthetic browser API data and its assertions only; production and contracts stay unchanged.
Change-source: pulse-maintainer
2026-10-13 18:18:41 +01:00
pulse-triage[bot] ddf2428318 Inspect phone History using its native range control
Retain the second browser result: both desktop themes finish, while phone tap supplies no hover selection. Exercise the shipped touch inspection slider and Home key rather than assuming mouse semantics on WebKit. Production and safety checks stay unchanged.

Contract-Neutral: Browser interaction correction only, with no production or contract delta.
Change-source: pulse-maintainer
2026-10-13 18:15:54 +01:00
pulse-triage[bot] 9af9a9735c Check decorative History markers through their painted paths
Retain the failed visibility wait and two original captures. A zero-length round stroke has painted pixels but no group bounding box; require attached marker paths and non-scaling stroke, then inspect actual History pixels. No production change or weakened safety assertion.

Contract-Neutral: Consuming browser-driver correction only; production and contract bytes are unchanged.
Change-source: pulse-maintainer
2026-10-13 18:07:53 +01:00
pulse-triage[bot] e0718b4c86 Compare rendered PBS help prose independently of line wrapping
Keep the same API-recovery assertion while normalising Markdown whitespace, as the other guide assertions already do. Preserve the initial failed proof and unchanged five-second deadlines.

Contract-Neutral: Documentation regression assertion only; no public behaviour or contract change.
Change-source: pulse-maintainer
2026-10-13 17:58:37 +01:00
pulse-triage[bot] c1cda2a907 Bind drawer checks to actual chart groups and complete rows
Source inspection finds utilization is the chart group and disk labels belong to table rows, not their individual cells. Correct the consuming assertions before browser execution, preserve all safety checks and format only the new proof harness.

Contract-Neutral: Proof-harness corrections only; containing production bytes and contracts are unchanged.
Change-source: pulse-maintainer
2026-10-13 17:56:29 +01:00
pulse-triage[bot] 90f25b895c Exercise the final combined drawer consumers
Bind the actual guest and node drawers, combined UTC completion formatter, week History and 24-hour trends to an offline desktop/phone proof. Check neutral denied status separately from failed-check warnings, full wrapping, retained readings and persistent accessible help without guest or credential operations.

Contract-Neutral: Credential-free consuming proof harness only; no additional production or contract delta.
Change-source: pulse-maintainer
2026-10-13 17:52:37 +01:00
pulse-triage[bot] 3115efa30f Use the PBS History help link's accessible name in proof
The production Markdown renderer wraps tables to contain narrow-screen overflow. Select its semantic link rather than assuming an unwrapped table sibling.

Contract-Neutral: Browser acceptance selector only; no rendered or runtime change.
Change-source: pulse-maintainer
2026-10-13 17:50:54 +01:00
pulse-triage[bot] b048cb184d Distinguish Active PBS connections from missing monitoring data
Add a safe missing-PBS path to the existing guide and troubleshooting entry. Separate connection polling, the server row, direct inventory and History without requesting credential changes, an agent install or repeated diagnostics.

Contract-Neutral: Documentation and consuming proof only; no API, monitoring, permissions or runtime behaviour change.
Change-source: pulse-maintainer
2026-10-13 17:50:22 +01:00
pulse-triage[bot] 36300f753c Compose published drawer refinements without losing access guidance
Keep compact exceptions, chart axes and neutral denied status in Details. Preserve full facts, last-known disk evidence and the persistent accessible update-help control. Resolve both source and regression/contract semantics additively; final combined bytes still need their own consuming browser receipt.

Change-source: pulse-maintainer
2026-10-13 17:48:45 +01:00
pulse-triage[bot] 563e2fa65b Compose reviewed portable private input with current maintenance
Preserve the exact reviewed private-input candidate and its source-bound receipts. Qualify changed drawer composition separately; no native or release acceptance is claimed.

Change-source: pulse-maintainer
2026-10-13 17:47:33 +01:00
pulse-triage[bot] fdd01f7d21 Merge commit '41813ba2a12744ca3815e2bc6c29f552441e7b22' into maintainer-async/20261013T164055Z-product-intelligence/pulse
Change-source: pulse-maintainer
2026-10-13 17:47:03 +01:00
pulse-triage[bot] 0506a69581 Observe reader signal cleanup without killing its terminal owner
Record the actual privileged Bash reader from the selected tool and send HUP/TERM to it while retaining the controlling terminal. Whole-session termination cannot supply the same restoration observation. Keep the adverse whole-group result, full mode/privacy assertions and every caller control.

Change-source: pulse-maintainer
2026-10-13 17:44:48 +01:00
pulse-triage[bot] 02308ccbb4 Include the caller shell in isolated bootstrap PTYs
Non-interactive PTY sessions dispatch through sh while history sessions use bash. Supply both in the closed PATH so tool/mode controls exercise the producer rather than failing at child creation; retain all privacy and complete-terminal assertions. Preserve the observed failed suite.

Change-source: pulse-maintainer
2026-10-13 17:32:04 +01:00
pulse-triage[bot] 624d3f09a3 Keep backend bootstrap input silent on BusyBox hosts
Mirror the qualified Unix reader in setup, Proxmox and container producers: select one terminal tool, distinguish missing terminal/tool/mode failures, restore its complete state before installation and on cleanup, and retain silent overflow draining. Emit the isolated privileged body once without changing tokens, trust, scopes, profiles or state. Cover serialized contracts and actual consumer payloads.

Change-source: pulse-maintainer
2026-10-13 17:17:36 +01:00
pulse-triage[bot] 44ef70ed3e Exercise backend bootstrap portability and full terminal restoration
Cover setup, Proxmox and container callers with a real PTY, isolated standalone and BusyBox tool selection, distinct fail-closed modes, private root/sudo history and one bounded command body. These controls expose the unchanged backend reader before its repair.

Change-source: pulse-maintainer
2026-10-13 17:14:10 +01:00
pulse-triage[bot] ff1e59ff33 Make the table-edge geometry control demonstrate its intended clipping
The first native pass verifies the complete canonical memory journey but exposes a faulty positive geometry control: collapsed borders alone did not reduce its target intersection. Make the synthetic table wider than its clipping container while keeping every text line safely inset. Preserve all negative clipping/hidden/empty controls and use no ratio tolerance; this diagnoses the control, not the product layout.

Contract-Neutral: Integration geometry control only; production frontend, memory semantics, safety behaviour and dependency graphs are unchanged.
Change-source: pulse-maintainer
2026-10-13 16:54:02 +01:00
pulse-triage[bot] 94cdf4d1da Check clipping on the actual memory text ancestors
Include nested value spans in the unclipped-text proof, not just their enclosing cells. Add controls for an internally clipped value and a hidden child whose line boxes still exist; retain the viewport and navigation requirements.

Contract-Neutral: Integration geometry proof only; production frontend, memory semantics, safety behaviour and dependency graphs are unchanged.
Change-source: pulse-maintainer
2026-10-13 16:46:23 +01:00
pulse-triage[bot] 41813ba2a1 Record desktop and phone proof for portable private input
Actual Settings and Agent Doctor copy consumers retain separate credentials, private-file fallback, identity and trust. All sixteen final captures were opened with the native image tool; no native or release acceptance is claimed.

Contract-Neutral: Source-bound consuming browser evidence only; production bytes and contracts are unchanged.
Change-source: pulse-maintainer
2026-10-13 16:41:40 +01:00
pulse-triage[bot] b5e8d41b7c Check readable memory evidence instead of collapsed table borders
The PR 2910 Chromium shard fails twice on a 0.991228 tbody intersection despite fully readable phone Memory, Total and Free evidence in the retained captures. Require every non-empty text line to fit the viewport, navigation clearance and clipping ancestors instead of a decorative table border. Keep all canonical-memory withdrawal, stale, zero and other-cluster assertions; add desktop/phone positive border and seven genuine unreadability controls without loosening a ratio or timeout.

Contract-Neutral: Integration geometry assertions and adverse controls only; production frontend, memory semantics, safety behaviour and dependency graphs are unchanged.
Change-source: pulse-maintainer
2026-10-13 16:26:06 +01:00
rcourtman 526fa790ae Make drawer charts and attention readable at a glance (#2910)
Stacked on #2909 (its commit is the parent here and lands with either
PR).

A full-resolution visual pass of the guest and node drawers, plus a Sol
review of the same screenshots, found the charts and attention hard to
read:

- **Numeric axes.** History I/O axes read "Max / Avg / 0" with no
magnitude, and "Avg" was the scale midpoint, not a measured average
(demand ledger "Numeric axis labels on history I/O charts", #1720).
Thermals read "Max / Mid / Min". Gridline labels now state the scale
value (e.g. `5.0M/s`, `60°C`) and sit centred on their gridlines.
- **Worth checking up front, one line each.** It was a full card per
section below the charts. It is now a compact list directly under the
alerts line, using the shared detail-row tone.
- **Now vs history.** Trend card headlines say "now", and the range
reads "24h low–high", so the live number is not read as the last point
of the stored line.
- **No text wall.** The two-sentence memory-cache caveat under the
charts (repeated in Details) becomes "may include cache" on the Memory
card; the full note stays once, in Details.
- The missing-readings note is one line, and the Details summary uses
readable text.

Tests: the full frontend suite passes (15,467). New proofs: Worth
checking renders above the trend cards with the shared tone, and the
guardrail pins that the list reuses `detailValueToneClass`. Browser
receipt: full-resolution screenshots of every drawer tab at 1440 and
390px, reviewed.

Follow-ups not in this PR (from the same review): threshold lines on
History charts, a crosshair shared across panels, taller History plots,
a Manage tab layout pass, and status text beside the drawer's status
dot.
2026-10-13 16:23:46 +01:00
pulse-triage[bot] 14b9b3fbac Emit the private reader once and exercise the real caller prompts
Use a POSIX root/sudo prefix inside the isolated subshell rather than duplicating the long quoted reader. Synchronise PTY command entry and exit with the caller prompt, retain full terminal/privacy/overflow assertions, and follow current help rows by their labels. The browser driver now inspects the full Linux card.

Change-source: pulse-maintainer
2026-10-13 16:22:48 +01:00
pulse-triage[bot] 9dc664aea3 Integrate reviewed native NAS fixture collector controls
Preserve exact specialist commit and matched source-5ndingzw qualification. This bounded inert fixture strengthens readiness and ownership checks without changing production wrappers; native macOS and installed appliance recovery remain separate.

Change-source: pulse-maintainer
2026-10-13 16:15:04 +01:00
pulse-triage[bot] 09920be696 Integrate reviewed Docker healthcheck and resource-sizing guidance
Preserve exact specialist commits and retained consuming document proof. The Docs consumer and dependency bytes are unchanged; this help maintenance is not a baseline-memory repair.

Change-source: pulse-maintainer
2026-10-13 16:15:02 +01:00
rcourtman d5ff029517 Treat a denied update check as a setting and wrap node details (#2909)
- **Denied update check is a setting, not a fault.** The node drawer
listed "Updates: Unavailable · Update check access denied" in amber
under Worth checking. Proxmox gates the package list on `Sys.Modify`,
and `docs/TROUBLESHOOTING.md` calls keeping the narrower monitoring role
a valid choice, so `permission_denied` now reads neutral and stays in
Details. A source outage or failed check is still a warning and still
surfaces under Worth checking.
- **Node Details values wrap.** The update reason, linked agent ID and
CPU model were cut off behind an ellipsis that only a hover could
reveal. Details rows now wrap them.

Verified in headless Chromium against a mock-mode build, with
`/api/resources` rewritten to inject each update state, reviewing
full-resolution screenshots at 1440 and 390px. Tests: unit tone tests, a
drawer test that keeps the denied check in Details with a wrapped value,
and a failed-check test that keeps it under Worth checking. Putting the
tone back to warning fails two of them. 813 node, Proxmox and guardrail
tests pass.
2026-10-13 16:11:33 +01:00
pulse-triage[bot] 68478ee102 Merge current published drawer History refinements into reviewed maintenance
Preserve the exact reviewed tip and incorporate current upstream History default, marker shape and readout behavior additively.

Change-source: pulse-maintainer
2026-10-13 16:06:37 +01:00
rcourtman 2e71658174 Keep one timeline per resource in mock chart history (#2908)
Mock chart history thinned each metric with LTTB on its own. LTTB keeps
value-dependent points, so the metrics of one resource ended up with
different timestamps. The public demo (6.5.0) showed this: a container's
24h history had eight ~48-point series spread over 162 distinct
timestamps, and a node's had 166. The drawer History panels break a line
wherever another series in the panel has a reading, so every mock chart
drew as dots with "Missing observations". Real poller history writes all
of a resource's metrics at the same times.

Mock series are now thinned onto an epoch-aligned grid. Each bucket
keeps its first reading, the newest reading is kept too, and every point
keeps its own timestamp. Point targets and values are unchanged.

Verification:
- `TestMockChartHistorySharesTimestampsAcrossMetrics`
(`monitor_metrics_slo_test.go`) checks a mock VM, container and node, on
synthetic and seeded history, at 1h, 4h, 24h and 7d. It fails on the
previous code (5 of 20 memory timestamps shared with cpu) and passes
now. `internal/monitoring` passes in full.
- On a mock-mode build of this branch, `/api/metrics-store/history`
returns a timestamp union equal to the per-series count for a VM, a
container, a node and an agent at 1h, 24h and 7d. The drawer History tab
draws one continuous path per series with no "Missing observations". The
unpatched build of the same estate showed 82 dots and the note on all
three panels.
2026-10-13 16:04:43 +01:00
rcourtman 669ff81ba4 Make drawer charts and attention readable at a glance
A full-resolution visual pass of the guest and node drawers (and a Sol
review of the same screenshots) found the charts and attention hard to
read:

- History I/O axes read "Max / Avg / 0" with no magnitude, and "Avg"
  was the scale midpoint, not a measured average; thermals read
  "Max / Mid / Min". Gridline labels now state the scale value at each
  line (e.g. 5.0M/s, 60°C) and sit centred on their gridlines.
- "Worth checking" was a full card per section below the charts, so a
  21-day-old backup took three lines and read last. It is now a compact
  label/value list directly under the alerts line.
- Trend card headlines could be read as the last point of their line.
  Each now says "now", and the range reads "24h low–high".
- A two-sentence memory-cache caveat (with unrelated agent-setup advice)
  sat under the charts and again in Details. The Memory card now says
  "may include cache"; the full note stays once, in Details.
- The missing-readings note shrinks to one line, and the Details
  summary uses readable text.
2026-10-13 15:58:50 +01:00
pulse-triage[bot] 5b996ef9f6 Use sentences in private-input fallback guidance
Correct the copy-audit finding without changing the reader, file handoff or platform choices.

Contract-Neutral: Copy-style correction only, with no behaviour or contract delta.
Change-source: pulse-maintainer
2026-10-13 15:48:36 +01:00
pulse-triage[bot] 0a20fdc3ef Check all saved terminal attributes after private input
The PTY fixture compares the complete saved terminal state, not only echo and canonical flags.

Contract-Neutral: Existing terminal-restoration obligations are unchanged; this strengthens their executable verification.
Change-source: pulse-maintainer
2026-10-13 15:48:33 +01:00
rcourtman 19f1052321 Treat a denied update check as a setting and wrap node details
The node drawer listed "Updates: Unavailable · Update check access
denied" in amber under Worth checking. Proxmox gates the package-update
list on Sys.Modify, which is broader than monitoring needs, and
docs/TROUBLESHOOTING.md calls keeping the narrower role a valid choice.
A deliberate setting is not a fault, so that reason now reads neutral
and stays in Details. A source outage or failed check is still a
warning and still surfaces under Worth checking.

Node Details rows also wrap their values instead of truncating them.
Details is where a reader goes for the full value, yet the update
reason, the linked agent ID and the CPU model were cut off behind an
ellipsis that only a hover could reveal.
2026-10-13 15:41:23 +01:00
pulse-triage[bot] 18ed34d2eb Keep copied Unix installation input private on BusyBox hosts
Select the BusyBox stty applet only when standalone stty is absent, fail before unsafe entry on terminal-control errors, and restore modes with the selected tool. Expose the existing private-file installation alternative on Linux/NAS alongside FreeBSD without changing issuance, TLS, removal or privilege.

Change-source: pulse-maintainer
2026-10-13 15:39:54 +01:00
rcourtman 588b48b4cf Keep drawer History dots round and its readout steady (#2907)
Two drawer History presentation fixes, both reported while previewing
the drawer redesign:

- **Oval dots.** The plot stretches its viewBox to the panel
(`preserveAspectRatio="none"`), so the `<circle>` markers for single
observations and the hover cursor rendered as wide ovals. They are now
zero-length, round-capped strokes with a non-scaling stroke, so they
stay round at any width. Series lines carry `data-history-series` so
tests can tell lines from dots.
- **Jumping note.** "A dash means no stored observation at this time"
appeared and vanished as the inspected time changed, pushing the chart
up and down while scrolling past it. A missing value now reads **no
reading** in the readout itself, and the line is gone. In a pointer
sweep the chart height stayed constant (202px at 1024, 327px at 390).

Tests: History tests select lines by `path[data-history-series]` and
hover markers by `[data-history-hover-marker]`. A new guard checks the
plot has no `<circle>` and that dots are round non-scaling strokes. The
readout assertions now expect "no reading". Workloads, Infrastructure
and Docker suites pass (3,692 tests). Contract notes in
`frontend-primitives` and `performance-and-scalability`.
2026-10-13 15:39:52 +01:00
rcourtman b4be3bd55b Keep one timeline per resource in mock chart history
Mock chart history thinned each metric with LTTB on its own. LTTB keeps
the points whose values stand out, so cpu, memory and disk of one guest
kept different timestamps: on the public demo a 24h container history
had eight ~48-point series spread over 162 distinct timestamps. The
drawer History panels break a line wherever another series in the panel
has a reading this one lacks, so every mock chart drew as dots with a
"Missing observations" note. Real history does not do this because the
poller writes all of a resource's metrics at the same times.

Thin mock series onto an epoch-aligned grid instead: keep the first
reading in each bucket plus the newest reading, at their own
timestamps. Which readings survive now depends only on when they were
taken, so series sampled together keep identical timestamps, values
stay real readings, and point targets are unchanged. The synthetic
generator no longer pre-thins to 500 points, since every caller thins
onto the grid.
2026-10-13 15:28:57 +01:00
rcourtman c2f9654e61 Open drawer History on the week below the 24h trend cards (#2906)
The guest and node drawer Overview now leads with 24h trend cards
(#2900), so a History tab that also opened on 24 hours repeated them.
History now opens on **7 days** for those drawers: Overview answers
"what is it doing now", History "what is normal this week". Any range is
still selectable, and the free plan keeps 7 days, so the default is
never locked.

- Trend cards read their own `DRAWER_TREND_RANGE` (24h). A 24h History
selection still reuses their cached read.
- Drawers without trend cards (Docker host, resource detail) keep the
24h History default.
- Tests: the History-range assertions are moved to 7d, and a new
NodeDrawer test checks reads go 24h (cards) then 7d (History). Putting
the default back to 24h fails that test. Workloads, Infrastructure and
Docker suites pass (3,693 tests).
- Browser receipt from a mock-mode build at 1280 and 390px.
2026-10-13 15:24:47 +01:00
rcourtman 5bfa246856 Keep drawer History dots round and its readout steady
The History plot stretches its viewBox to the panel width
(preserveAspectRatio="none"), so the <circle> markers for single
observations and the hover cursor rendered as wide ovals. They are now
zero-length, round-capped strokes with a non-scaling stroke, drawn in
screen pixels, so they stay round at any width. Series lines carry
data-history-series so tests can tell lines from dots.

The readout explained a missing value with a separate line, "A dash
means no stored observation at this time", which appeared and vanished
as the inspected time changed and pushed the chart up and down, most
visibly while scrolling past it. A series without a reading at the
inspected time now says "no reading" in the readout itself, and the
extra line is gone.
2026-10-13 15:22:12 +01:00
pulse-triage[bot] 24cfb568d8 Integrate reviewed drawer evidence and accessible safety guidance
Merge exact Web candidate f034be1854. Resolve drawer overlap to its browser-verified contents and System facts controls; retain canonical GuestDrawer assertions, newer agent help, updater repair and consolidated contracts. Retained source and browser proofs qualify presentation only, not native workload or QGA recovery.

Change-source: pulse-maintainer
2026-10-13 15:21:59 +01:00
pulse-triage[bot] b7589f2ed1 Assert the retained warm guest cache's actual source
The typed-reply fixture keeps the successful memory cache untouched, so the selector legitimately retains guest-agent-meminfo provenance rather than the expired-cache previous-snapshot label. Require that exact source while preserving strict last-known state, original observation time, unchanged cache and History checks.

Contract-Neutral: Fixture expectation and proof description only; runtime source selection, guest admission, observation ages, API and History semantics are unchanged.
Change-source: pulse-maintainer
2026-10-13 15:21:38 +01:00
pulse-triage[bot] a3679d6a43 Use a native-built inert collector in NAS watchdog controls
The private NAS fixture copied /bin/sleep and relied on its renamed process identity. Build a bounded Go collector instead and require its fixed readiness marker through the generated wrapper's retained stderr, as well as exact kernel process ownership. Preserve actual wrappers, teardown/parser, all stop and cleanup assertions, and existing deadlines. This removes a platform-owned executable assumption; it does not diagnose or clear the preceding macOS failures or establish native appliance recovery.

Contract-Neutral: Private fixture executable and readiness proof only; production installer, process ownership, safety deadlines and wire contracts are unchanged.
Change-source: pulse-maintainer
2026-10-13 15:20:17 +01:00
pulse-triage[bot] 83d51d75a5 Keep impossible guest reply types behind the uncertainty fence
Validate result/content/truncated types before shared guest-command admission is released. Scalar results must not become empty inventories, and wrongly typed file fields must not release admission before decoder failure. Preserve compatible empty/null rows and completed but unusable measurements. Add six-reader, alias/expiry and actual-state polling/broadcast/History controls with untouched healthy-read origins. Native thaw and restart recovery remain separately unverified.

Change-source: pulse-maintainer
2026-10-13 15:19:02 +01:00
rcourtman 921ebceaa9 Open drawer History on the week below the 24h trend cards
The guest and node drawer Overview now shows 24h trend cards for CPU,
memory, disk and temperature, so a History tab that also opened on 24
hours repeated them. History now opens on 7 days for those drawers:
Overview answers "what is it doing now", History "what is normal this
week", with any range still selectable. The free plan keeps 7 days, so
the default is never locked.

The trend cards read their own 24h constant, and a 24h History
selection still reuses their cached read. Drawers without trend cards
(Docker host, resource detail) keep the 24h History default.
2026-10-13 15:06:59 +01:00
pulse-triage[bot] 11aace9307 Record consuming Docker resource-sizing help verification
Bind desktop Chromium and narrow WebKit journeys, exact document and consumer bytes, safe diagnostic links and four natively inspected captures. This qualifies the changed guidance, not a memory repair or native deployment.

Contract-Neutral: Browser verification receipt only; production source, runtime behaviour and subsystem contracts are unchanged.
Change-source: pulse-maintainer
2026-10-13 14:57:04 +01:00
pulse-triage[bot] f034be1854 Record consuming browser proof for the composed drawer contents
Verify the actual Workloads/Node drawers, History and shipped Docs at desktop and phone widths in both themes. All sixteen final captures are natively inspected; source/artifact hashes, 44px phone guidance and persistent denied-update HelpIcon state are bound to this commit's own parent.

Contract-Neutral: Source-bound browser receipt only; no runtime, regression, graph or advice changes.
Change-source: pulse-maintainer
2026-10-13 14:49:32 +01:00
pulse-triage[bot] 4491595251 Keep Docker healthcheck guidance free of arbitrary resource caps
The copyable healthcheck previously also imposed a 256 MB memory limit and half a CPU, without workload qualification. Preserve the check, separate sizing from health and repair, and retain existing deployment policies. Link the bounded read-only interpretation and cover the shipped document and actual Docs consumer.

Contract-Neutral: Existing documentation and offline consuming fixtures only. No runtime defaults, deployment policy, API, retention, polling, resource enforcement or subsystem contract changes.
Change-source: pulse-maintainer
2026-10-13 14:48:54 +01:00
pulse-triage[bot] d8e7ebd31a Integrate reviewed agent-command help and consuming browser proof
Change-source: pulse-maintainer
2026-10-13 14:35:51 +01:00
pulse-triage[bot] c06f13d3b0 Capture the consuming update-access document at its actual viewport
Desktop journeys and phone drawer/help checks complete; the phone's entire troubleshooting document exceeds Chromium/WebKit's image dimension ceiling. Capture the actual linked section at the verified viewport instead of an unreadable whole-document image.

Contract-Neutral: Browser documentation capture size/position only; no product, assertion, source test or graph changes.
Change-source: pulse-maintainer
2026-10-13 14:28:43 +01:00
pulse-triage[bot] 2dd0c44165 Check retained evidence in both filesystem and trend consumers
The completed async trend introduces a second truthful last-known explanation. Scope both checks to their real consuming surfaces and require both to disappear on the fresh synthetic read rather than relying on one unscoped match.

Contract-Neutral: Browser selectors/assertions cover both existing evidence consumers; no product, source tests or graph changes.
Change-source: pulse-maintainer
2026-10-13 14:17:15 +01:00