docs(observatory): record selector rules and local UI acceptance

This commit is contained in:
DCCONSTRUCTIONS
2026-09-03 10:16:12 +03:00
parent e436fb56d4
commit 44afadb021
3 changed files with 115 additions and 2 deletions
@@ -137,7 +137,7 @@ Sequential validation under `mission-core-product-ui`:
Private snapshots/logs and previous frontend: `.runtime/docker-vm-recovery-z1636o/`.
No raw recording content was collected into this diagnostic evidence.
## Remaining product acceptance
## Product acceptance remaining at initial cache activation
The cache increment is active, but the complete workflow is not accepted.
Browser QA reproduced the next-stage UI mismatch: archived entries and portable
@@ -151,3 +151,70 @@ progress, complete recorded calculation and sequential M4.9T5/LAB V1 acceptance.
Stage1 user-facing reconciliation and the full stage2 workflow remain open.
Do not repeat the memory recovery or claim/v3 repair, or treat the old realtime
FAIL as a new gate. No per-LAB UI branch or automatic inference on Refresh.
## Selector correction and acceptance — 2026-09-03
The owner clarified that a finished calculation is represented only by its
profile-marked evidence below, never by a completion button/status. Implemented
in the shared Observatory surface using existing Design Guideline components:
- Only compatible, uncalculated portable definitions are offered. The verified
catalog cache decision remains authoritative; names, archived definitions,
failed or unpublished jobs cannot hide a current profile. No Calculate when
the selection is empty. During an accepted computation only an activity
indicator appears; no invented percentage. Before admission the button is
disabled. Failed publication retains recovery without new inference.
- Removed completion badges, the duplicate recorded-review badge and the
six-result presentation cap. All results in the loaded catalog are shown.
The existing catalog-window bound remains explicit; this is not complete
pagination for500 recordings.
- Queue reads filter source/setup/definition before LIMIT. UI snapshots are
fenced by the same selection key before React effects, so previous jobs and
request errors cannot flash against a new selection. Historical terminal logs
are not displayed as new operator failures; observed/current failures remain
actionable.
- Publication refreshes both catalogs; projection deletion refreshes selection.
Browser QA found selector compression in a restored narrow window; moved the
existing responsive layout from viewport width to workspace container width.
No new component, per-LAB page, model configuration or Worker deployment.
Sequential checks: architecture4/4, full typecheck, frontend720/720,
focused queue/API52/52, Ruff and mypy PASS. A synthetic test proves definition
filtering happens before pagination; API accepts a valid digest and rejects a
malformed one with422. Tests cover zero/all/partly cached choices, old versions,
incompatible/archived entries, missing projections and stale first-render data.
Final production build14.56s, peak RSS2108293120bytes; unchanged large-chunk
warnings. Pressure remained1 and swap fell2666.19→2618.19MiB. No concurrent heavy
tests/builds/browser runs; Docker limits/containers and operator apps untouched.
Active canonical8000: backend PID69976, health200/reconciler ready, frontend
`/assets/index-BHcT8phv.js`, CSS `/assets/index-pPpyKjkx.css`,
index SHA256 `97da43251ef0d0635eb078ee1a102fa820f1716bb9ec5879dffb284aa3628ea6`.
No alternate backend8765/preview4173. The existing LaunchAgent restarted only
the canonical backend for the API change; final frontend-only corrections did
not restart it again. Original frontend backup:
`.runtime/observatory-selector-fQUwPT/frontend-dist-previous`.
For rollback, restore that build and the matching pre-change code on the same
8000 endpoint. Do not replace or truncate the queue DB.
In-app browser acceptance:
- 004TREE offers exactly the two current portable profiles, not four mixed
archive/current entries. Both select correctly; Calculate becomes available
after preflight. Completion labels and historical error alerts are absent.
- 01 has an empty disabled selector and no Calculate because its capture
attestation is missing. This is incompatibility, not a fake cache hit.
- 00 renders all14 loaded evidence entries. 004TREE retains both old entries
and its existing admitted LAB V1 review action; no archive projection was
deleted or falsely promoted into a current verified result.
- Refresh, dropdown Escape, normal/expanded windows and readable selector text
verified. Final browser console warnings/errors0; completion labels0,
alerts0. No Calculate, publication retry, delete, rename or replay was invoked.
All six queue-table row hashes are identical before/after this correction and
browser checks:11 jobs,50000 legacy receipts,1 reconciliation,0 live leases,
v3 grants and preemptions. No inference or publication jobs were created.
Current real data still contains no exact successful/published cache hit;
all-cached/partial-cache behavior is synthetic-test evidence, not a new completed
LAB run. The remaining stage2 work is measured progress, full sequential
M4.9T5/LAB V1 calculation, publication, and cached viewing after restart.