mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-06-05 21:41:25 +00:00
cde62166cb
- 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
7.1 KiB
7.1 KiB
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)
- Go to: http://20.109.157.39/#/nodes/c0dedad4208acb6cbe44b848943fc6d3c5d43cf38a21e48b43826a70862980e4
- Check "Packets through this node" — packets should actually have this node in their path
- Compare with a node that shares a 2-char prefix (e.g. C0ffee SF) — they should show DIFFERENT packets
- Spot-check 3-4 packets: click through, verify path contains the node
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
backfillingandbackfillProgressfields 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)
- Hit http://20.109.157.39/api/spec — should return valid OpenAPI 3.0 spec
- Hit http://20.109.157.39/api/docs — should show Swagger UI
- Try an endpoint from Swagger UI — should work
🟢 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: _______________