Files
Final-Year-Project/docs/FOREGROUND_WEB_MOTION_DETECTION_VALIDATION_MATRIX.md

8.3 KiB

Foreground Web Motion Detection Validation Matrix

Row ID Checklist Item Status Code Test Runtime
VM-MWM-001 Confirm first-release scope is web camera role only and foreground-tab only done WebApp/src/lib/app/controller.js shouldRunMotionDetector; docs/FOREGROUND_WEB_MOTION_DETECTION_IMPLEMENTATION_PLAN.md Constraints/Non-Goals bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-002 Add detector-related state fields to store done WebApp/src/lib/app/store.js createInitialState; WebApp/src/lib/app/controller.js getDefaultMotionDetectionState bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-003 Define default detector config values done WebApp/src/lib/app/controller.js MOTION_DETECTION_PROFILES, buildMotionDetectionState bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-004 Create dedicated detector module done WebApp/src/lib/app/motion-detector.js createMotionDetector bun run test -- src/lib/app/motion-detector.spec.js bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-005 Implement low-resolution frame sampling done WebApp/src/lib/app/motion-detector.js DEFAULT_FRAME_WIDTH, DEFAULT_FRAME_HEIGHT, analyzeFrame bun run test -- src/lib/app/motion-detector.spec.js bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-006 Implement grayscale conversion and frame-difference scoring done WebApp/src/lib/app/motion-detector.js computeLuma, computeChangedPixelRatio src/lib/app/motion-detector.spec.js computes grayscale luminance..., reports the ratio... bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-007 Implement score smoothing or block aggregation done WebApp/src/lib/app/motion-detector.js DEFAULT_SMOOTHING_FACTOR, analyzeFrame bun run test -- src/lib/app/motion-detector.spec.js bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-008 Implement detector state machine transitions done WebApp/src/lib/app/motion-detector.js createMotionMachineSnapshot, applyMotionStateMachine src/lib/app/motion-detector.spec.js requires consecutive high-motion frames..., holds motion until minimum duration... bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-009 Implement adaptive sampling done WebApp/src/lib/app/motion-detector.js tick; WebApp/src/lib/app/controller.js MOTION_DETECTION_PROFILES bun run test -- src/lib/app/motion-detector.spec.js bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-010 Start detector only when camera role, preview, and armed state are valid done WebApp/src/lib/app/controller.js shouldRunMotionDetector, applyMotionDetectionReadiness bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-011 Pause detector on permission loss, preview teardown, disconnect, or page hide done WebApp/src/lib/app/controller.js getMotionDetectionPauseReason, applyMotionDetectionReadiness, onVisibilityChange bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-012 Add camera dashboard arm/disarm and sensitivity controls done WebApp/src/routes/camera/+page.svelte Automatic Detection controls; WebApp/src/lib/app/controller.js setMotionDetectionEnabled, setMotionDetectionProfile bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-013 Add camera dashboard detector status and score UI done WebApp/src/routes/camera/+page.svelte Detector State/Motion Score cards bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-014 Preserve manual motion controls done WebApp/src/routes/camera/+page.svelte manual buttons; WebApp/src/lib/app/controller.js actions.startMotion, actions.endMotion bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-015 Trigger existing start-motion flow with auto_motion done WebApp/src/lib/app/controller.js getMotionStartPayload, startMotionEvent, syncAutoMotionLifecycle; WebApp/src/lib/app/api.js events.startMotion bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-016 Prevent duplicate automatic motion starts done WebApp/src/lib/app/controller.js startMotionEvent, syncAutoMotionLifecycle, autoMotionTransitionInFlight src/lib/app/motion-detector.spec.js requires consecutive high-motion frames... bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-017 Implement minimum event duration and quiet cooldown done WebApp/src/lib/app/motion-detector.js applyMotionStateMachine; WebApp/src/lib/app/controller.js syncAutoMotionLifecycle src/lib/app/motion-detector.spec.js holds motion until minimum duration... bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-018 Wire quiet-state completion to existing end-motion flow done WebApp/src/lib/app/controller.js endMotionEvent, syncAutoMotionLifecycle, applyMotionDetectionReadiness src/lib/app/motion-detector.spec.js holds motion until minimum duration... bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-019 Add activity-log messages for detector lifecycle done WebApp/src/lib/app/controller.js addActivity calls in applyMotionDetectionReadiness, setMotionDetectionEnabled, startMotionEvent, endMotionEvent bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-020 Add local persistence for detector settings done WebApp/src/lib/app/controller.js loadMotionDetectionSettings, persistMotionDetectionSettings, updateMotionDetectionState bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-021 Validate existing client notifications still work pending Existing backend fan-out remains unchanged in Backend/routes/events.ts Runtime validation still required with linked client devices
VM-MWM-022 Validate recording behavior still works for auto-started events pending Existing recording paths remain in WebApp/src/lib/app/controller.js startLocalRecording, endMotionEvent, uploadStandaloneMotionRecording Runtime validation still required with an actual auto-triggered event
VM-MWM-023 Add unit tests for scoring and state-machine transitions done WebApp/src/lib/app/motion-detector.js exported helpers; WebApp/src/lib/app/motion-detector.spec.js bun run test -- src/lib/app/motion-detector.spec.js bun run test -- src/lib/app/motion-detector.spec.js -> 4 passed
VM-MWM-024 Add integration tests or deterministic mocks for cooldown and dedupe in_progress WebApp/src/lib/app/motion-detector.spec.js covers deterministic cooldown and trigger gating; controller dedupe still untested bun run test -- src/lib/app/motion-detector.spec.js Additional controller-level mock coverage still needed
VM-MWM-025 Perform manual validation for idle, real motion, flicker, and camera shake pending
VM-MWM-026 Measure runtime CPU and thermal behavior during long foreground session pending
VM-MWM-027 Document foreground-only assumption and limits done docs/FOREGROUND_WEB_MOTION_DETECTION_IMPLEMENTATION_PLAN.md Constraints/Non-Goals/Acceptance Criteria Doc updated in repo
VM-MWM-028 Document recommended low-battery and low-heat settings done docs/FOREGROUND_WEB_MOTION_DETECTION_IMPLEMENTATION_PLAN.md Battery and heat controls; Recommended Operator Settings Doc updated in repo
VM-MWM-029 Add immediate rollback behavior when detection is disabled done WebApp/src/lib/app/controller.js setMotionDetectionEnabled, applyMotionDetectionReadiness, endMotionEvent bun run check bun run check -> svelte-check found 0 errors and 0 warnings
VM-MWM-030 Publish rollout note for first-release non-goals done docs/FOREGROUND_WEB_MOTION_DETECTION_IMPLEMENTATION_PLAN.md Non-Goals Doc updated in repo