8.3 KiB
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 |