Mainskeeper - App — checkpoint 0.1.11
NONFINAL REVIEW CHECKPOINT. Browser acceptance is blocked.

Scope and version
Continue mainskeeper-app-checkpoint-0.1.10.zip in checkpoint-0.1.11/.
Patch bump: aggregate-range correction and regression coverage; feature scope unchanged.
Original ZIP and all earlier archives preserved. Lattice/Datum, concepts 1–9,
branding, styles, fonts and unrelated product pages retained byte-for-byte.
See preservation.txt for the bounded comparison with the input ZIP.

Correction
UPS aggregate duration boundaries intersect the exact requested range with each
hour bucket. Metric samples stay on their minute grid and only timestamps within
the request feed charge/load statistics. Coverage and duration never inherit the
rounded sample start. Bucket labels retain their original hourly grid.
The stale review footer now reads 0.1.11. Previous-round notes remain historical.

Executed numerical verification (Node, not browser)
- node product/app/assets/state-checks.js: 210 passed, 0 failed.
  All nine groups ran, including source identity and duplicates, availability and
  role gating, witness-down, cadence, platform commands, onboarding persistence,
  incident acknowledgment, exact gaps, third-cycle stability and store reloads.
  Existing short-gap / closely spaced-gap checks preserved. Seven assertions
  added and the existing ten-second regression strengthened.
- Same final suite with only fixture.js replaced in memory by the archive's
  0.1.10 fixture: 202 passed, 8 failed (expected). See state-before-fix.txt.
- node verification/aggregate-ranges.js: group 9 scenario B recreated.
  Gaps: 15:22:27–15:28:27, 15:28:42–15:34:12.
  15:28:30–15:28:40 => total 10 s; unknown 0 s; coverage 100%.
  15:25:15–15:30:15 => total 300 s; unknown 285 s; coverage 5%.
  Aggregate totals, availability and series unknown duration agree.
  See aggregate-range-results.json. These are numerical results, not screenshots.
- node product/cli/build-examples.js: generator self-check completed; all 151
  exports regenerated and byte-identical to their input-checkpoint counterparts.
  See cli-checks.txt. No CLI product implementation was performed.
- python3 verification/check-source.py: JavaScript syntax via node --check;
  static local HTML/CSS file references; static anchors. Exact counts, errors and
  dynamic anchors requiring browser review are recorded in source-checks.txt.
  External destinations, computed JavaScript navigation, CSS rendering and
  runtime interaction behavior are outside this static check.

Browser capability and attempted review
Playwright 1.64.0 installed under /private/tmp/mainskeeper-browser-review, with
its npm cache in /private/tmp. No dependency or browser profile is packaged.
Node v25.9.0; Python 3.14.7.
The initial default launch reported a missing Playwright revision 1248 executable.
The installed Google Chrome was then selected normally: launch failed before a
page opened, process SIGABRT. Evidence: browser-capability.txt.
The installed Chromium headless shell revision 1243 was selected with
chromiumSandbox:true. It failed before a page opened with:
  FATAL base/apple/mach_port_rendezvous_mac.cc:159
  bootstrap_check_in org.chromium.Chromium.MachPortRendezvousServer
  Permission denied (1100)
Process SIGTRAP; cleanup also reported kill EPERM.
Evidence: browser-headless-capability.txt.
No alternate permission route was attempted after this explicit denial.

The prototype was served with:
  python3 -m http.server 8765 --bind 127.0.0.1 --directory checkpoint-0.1.11
GET /product/review.html returned HTTP 200 via curl. This checks local serving,
not browser rendering. The temporary server is stopped after packaging.

Browser checks actually completed: ZERO.
Screenshots actually captured: ZERO. No screenshot directory or synthetic
screenshot evidence is included. Screenshot routes remain in product/review.html.
No browser console/network/JS-runtime result can be claimed because no page opened.

Outstanding browser review (all items NOT RUN)
1. Onboarding through real sign-in, site form, platform choice, installation,
   enrollment approval, source selection, first readings, fleet and persistence.
2. Incident acknowledgment, utility restoration and resolved-state propagation.
3. Duplex loss, recovery and historical backfill.
4. Collector reporting while its UPS source stops reporting.
5. Revoked credential diagnosis and re-enrollment.
6. Network NUT/SNMP forms; success, unreachable, rejected access, unsupported
   capability; hard duplicate; serial-match confirm/cancel; queued test and roles.
7. Witness down vs site contact lost vs observed connectivity failure.
8. Workstation sleep; pending configuration and reconnect/check-in behavior.
9. Filtered history at 24 h / 7 d, gap rendering, chart labels and comparison.
10. Mobile incident acknowledgment, focus return and persistent acknowledgment.

Viewport/theme matrix: 375 dark/light, 768 dark/light, 1024 dark/light,
1440 dark/light: ALL NOT RUN. Keyboard/skip links, focus rings and return,
dialog trapping/Escape, navigation, overflow, form validation, touch targets,
reduced motion, contrast in place and browser errors: ALL NOT RUN.
The original screenshot list plus corrected-history scenarios remains outstanding.

Open and resume
Extract the ZIP into a fresh directory. Open index.html and choose the primary
complete-design review launcher, or serve the extracted root with
python3 -m http.server 8765 --bind 127.0.0.1 and visit /product/review.html.
Use the documented Reset demo before each journey. Browser-state persistence
uses localStorage and is distinct from the in-memory reload checks run in Node.

Packaging
Actual upstream package-design-checkpoint skill and package_checkpoint.py helper:
https://github.com/JonathanPorta/ai-skills/tree/c44a59a3e9782105ada5f0816ab3211028fc995b/skills/package-design-checkpoint
Canonical project identity: Mainskeeper - App; namespace: release-stable.
Primary target: product/review.html. Alternatives: all preserved app routes,
CLI, design-system gallery, notes, comparison canvases and concepts 1–9,
with the original functional labels in the root index.
Version is selected by the helper against all prior archives in the parent.
Intentional exclusion: the prior generated _checkpoint/ directory is omitted
from source payload; the helper generates the new 0.1.11 changelog in the ZIP.
The old metadata remains in the extraction and the original ZIP. The helper
initially rejected the reserved old directory; the documented --exclude option
resolves that conflict without changing the helper. No design content is excluded.
Standard exclusions cover prior archives, control files, VCS, dependency/cache
trees and OS metadata.
External tools/caches are outside the extracted source, so are not ZIP payload.
No package-design-handoff invocation. This checkpoint is not final acceptance.
