mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 04:33:17 +00:00
Narrow filesystem provenance reads to the VM source type
The final-source controls passed 342 tests but type-check reported TS2339: WorkloadGuest also includes containers without diskStatusReason. Read the existing VM-only field after the local guest passes its type guard, preserving reactive identity and presentation. Record a fresh inspected browser pass on the corrected bytes; the earlier failed proof remains retained. Change-source: pulse-maintainer Contract-Neutral: Type-only correction to the existing VM-only provenance memo; no surface, contract or safety semantics change.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"version": 1,
|
||||
"base_sha": "10f181b5007b4102340c779ae058d63958b0dd86",
|
||||
"verified_at": "2026-10-04T01:59:40Z",
|
||||
"result": "passed",
|
||||
"changed_paths": [
|
||||
"frontend-modern/src/components/Workloads/GuestRow.tsx"
|
||||
],
|
||||
"content_sha256": {
|
||||
"frontend-modern/src/components/Workloads/GuestRow.tsx": "a2a0763252b09cb859cd79ec358aa45deac3a3398ea98db3a66453d6659b5691"
|
||||
},
|
||||
"routes": [
|
||||
"/browser-tests/guest-disk-provenance.html"
|
||||
],
|
||||
"viewports": [
|
||||
{
|
||||
"width": 1365,
|
||||
"height": 900
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"height": 844
|
||||
},
|
||||
{
|
||||
"width": 360,
|
||||
"height": 844
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
"Production GuestRow, full GuestDrawer, responsive column selection/weights and CSS; synthetic observations. Playwright 1.56.1 matches integration lock, desktop and phone Chromium 141.0.7390.37 plus dark phone WebKit 26.0. All 12 final bitmaps opened.",
|
||||
"96 fixed-deferral states across bars/sparklines, retained/no prior sample, before hover: visible Last known/Prior versus Unavailable/N/A and full safe assistive reason. Retained numbers are announced last known, never current. Independent fresh control and CT rows remain unmarked.",
|
||||
"Cue geometry and every inline sparkline value fit the existing canonical compact/phone/narrow columns, with 32px row height equal to an unmarked control and no horizontal document overflow. Inline plot yields width to its value; phone fresh 75% remains visible.",
|
||||
"This verifies production component presentation/input, not a full application route, physical phone, collector, backup task completion, guest thaw/liveness, installed forward/recovery or containing release. Initial matrix success did not catch numeric clipping; its adverse visual finding and exact original records are retained separately.",
|
||||
"After exact-source type-check failure TS2339, the memo narrows a local guest through the existing VM type guard before reading the VM-only reason. A fresh 96-state browser pass on that final hash was followed by opening all 12 final bitmaps. Earlier receipt remains unchanged and bound to its own parent."
|
||||
],
|
||||
"interactions": [
|
||||
"Mouse and keyboard history lenses preserve visible freshness and last-known accessible numeric context while replacing the bar with a chart. No new event listener, action or tab stop is introduced.",
|
||||
"Trusted phone touch on the noninteractive provenance label activates the existing row exactly once, opens the full readable safe reason and does not create a hover history lens; existing collapse remains usable.",
|
||||
"Clearing a VM lock with a subsequent in-flight read reason does not withdraw the notice. A new same-identity fresh observation clears title/notice, updates 75% and current accessible context without replacing the row node.",
|
||||
"Guest fixtures make only local synthetic GET requests and report no page errors. No real backup, QGA or release operation is sent."
|
||||
]
|
||||
}
|
||||
@@ -220,8 +220,9 @@ export function GuestRow(props: GuestRowProps) {
|
||||
// A native title or bar tooltip is not a visible freshness cue on touch,
|
||||
// and disappears from the chart's accessible value when the history lens opens.
|
||||
const diskReadStatus = createMemo(() => {
|
||||
const reason = props.guest.diskStatusReason;
|
||||
if (!isVM(props.guest) || !reason) return undefined;
|
||||
const guest = props.guest;
|
||||
if (!isVM(guest) || !guest.diskStatusReason) return undefined;
|
||||
const reason = guest.diskStatusReason;
|
||||
const retained = reason.startsWith('prev-');
|
||||
return {
|
||||
label: retained
|
||||
|
||||
Reference in New Issue
Block a user