Files
meshcore-analyzer/docs/test-plans/v3.4.2-manual-validation.md
T
you cde62166cb docs: v3.5.0 release notes + API documentation across README, deployment guide, FAQ
- Release notes for 95 commits since v3.4.1
- OpenAPI/Swagger docs: /api/spec and /api/docs called out everywhere
- Deployment guide: new API Documentation section
- README: API docs link added
- FAQ: 'Where is the API documentation?' entry
- Test plans for v3.4.2 validation
2026-04-08 06:55:25 +00:00

7.1 KiB
Raw Blame History

v3.4.2 Manual Validation Checklist

Tester: _______________ Staging: http://20.109.157.39 Prod: https://analyzer.00id.net (READ ONLY — do not deploy until staging passes) Browser: Chrome + Firefox + Safari (mobile for responsive items) Time estimate: ~45 minutes


🔴 HIGH RISK — Test First

1. Zero-hop hash size display (#649, #653)

  • Go to Packets page, find a DIRECT advert (route_type=2, 0 hops)
  • Open packet detail — hash size should say "Unknown (zero-hop)" or be hidden, NOT "1 byte"
  • Check "Path Length" field shows hash_count=0 (direct advert)
  • Find a FLOOD advert with 0 hops — it SHOULD show hash size (this is different from DIRECT)

2. TRACE packet real path (#651, #656)

  • Send a trace from your companion
  • Watch Live map — the animated dot should only travel along completed hops (solid line)
  • Unreached hops should show as dashed/ghosted line at reduced opacity
  • If trace completes fully, entire path should be solid
  • Ghost line should auto-clean after ~10 seconds

3. "Paths through this node" accuracy (#655, #658)

4. Hash Stats "By Repeaters" (#652, #654)

  • Go to Analytics → Hash Stats
  • "By Repeaters" section should only show repeater-role nodes
  • Compare count in "Multi-Byte Hash Adopters" vs "By Repeaters" — adopters may include companions, repeaters section should not
  • Check that companions/rooms/sensors are excluded from the repeater distribution

5. Noise floor column chart (#600, #659)

  • Go to Analytics → RF Health
  • Noise floor chart should show vertical color-coded bars, NOT a line
  • Green bars (< -100 dBm), yellow (-100 to -85), red (≥ -85)
  • Hover over a bar — tooltip should show exact dBm + timestamp
  • Check with only 1 observer selected — chart should still render (division by zero edge case)
  • Reboot markers (if any) should show as vertical dashed lines

6. Async backfill on startup

  • SSH to staging: ssh -i ~/.ssh/id_ed25519 runner@20.109.157.39
  • docker restart corescope-staging-go
  • Within 30 seconds, hit curl http://localhost:82/api/stats — should return data (not hang)
  • Check backfilling and backfillProgress fields in stats response
  • Server should be serving HTTP while backfill runs in background

🟡 MEDIUM RISK — Features

7. Distance unit preference (#621, #646)

  • Go to Customizer → Display tab
  • Change distance unit to "mi" — all distances should show in miles
  • Change to "km" — all distances should show in km
  • Change to "auto" — should use locale (US = miles, EU = km)
  • Check Analytics page distances update after customizer change (no page reload needed)
  • Check Node detail → Neighbors table distances
  • Very small distances (<0.1 mi) should show in feet, not "0.0 mi"

8. Panel corner toggle (#608, #657)

  • Go to Live map page
  • Each panel (feed, legend, node detail) should have a small corner-toggle button
  • Click the button — panel should snap to next corner (TL → TR → BR → BL)
  • Refresh page — panel positions should persist (localStorage)
  • Move two panels to same corner — collision avoidance should skip to next free corner
  • On mobile viewport (<768px?) — toggle buttons should be hidden

9. Deep linking (#536, #618)

  • Navigate to Nodes page, click a node → URL should update with pubkey hash
  • Copy URL, open in new tab → should land on same node
  • Apply packet filters → URL hash should include filter params
  • Channels page: select a node → URL should reflect selection
  • Analytics tabs: switch tabs → URL should include tab name
  • Share a deep link with someone — they should see the same view

10. Sortable tables (#620, #638, #639)

  • Nodes list: click column headers — should sort ascending/descending
  • Sort indicator (arrow) should be visible on active column
  • Node detail → Neighbors table: sortable
  • Node detail → Observers table: sortable
  • Packets table: sortable by column headers

11. Channel color highlighting (#271, #607, #611)

  • Go to Channels page
  • Assign a color to a channel using the color picker
  • Feed rows should highlight with that color
  • Change color — should update immediately
  • Refresh — color assignment should persist

12. Collapsible panels (#606)

  • Live map: panels should have collapse/expand toggle
  • Collapsed panel should show just the header
  • State should persist across page navigations

13. Mobile accessibility (#630, #633)

  • Open staging on phone (or Chrome DevTools mobile emulation)
  • Touch targets should be at least 44×44px
  • Channel color picker should work on mobile
  • No horizontal scroll on any page
  • ARIA labels present on interactive elements (inspect with accessibility tools)

14. Map byte-size filter (#565, #568)

  • Go to Map page
  • Find the byte-size filter control
  • Filter by packet size — map should update to show only matching packets
  • Clear filter — all packets should return

15. API key security (#532, #628)

  • Try accessing a write endpoint without API key — should be blocked
  • Try with a weak key (e.g., "test", "admin") — should be rejected at startup
  • Check staging logs for API key warning: docker logs corescope-staging-go 2>&1 | grep -i "apiKey\|api_key\|security"

16. OpenAPI/Swagger (#530, #632)


🟢 LOW RISK — Verify Quickly

17. View Route on Map button

  • Go to any packet detail page
  • Click "View Route on Map" — should navigate to map with route highlighted

18. og-image compression

  • Check page source or network tab — og-image.png should be < 300KB (was 1.1MB)

19. Prefix Tool

  • Analytics → Prefix Tool tab should load
  • Should show collision data

20. License

  • Check repo footer/LICENSE — should be GPL v3

21. Docker DISABLE_CADDY

  • (If testable) Set DISABLE_CADDY=true — Caddy should not start

22. Region filter on RF Health

  • RF Health tab: change region filter — charts should update

🏁 Sign-off

Section Status Notes
High risk (1-6)
Medium risk (7-16)
Low risk (17-22)
Overall

Tested by: _______________
Date: _______________
Staging version: curl -s http://20.109.157.39/api/stats | jq .version
Ready for release: ☐ Yes / ☐ No — blockers: _______________