Repository navigation
[OA-011] Add watch rules, debounced local alerts, and event acknowledgement #11
Copy link
Copy link
Open
Labels
integration-gateExternal or native capability requires reproducible evidenceExternal or native capability requires reproducible evidenceplannedExecution-ready planned work; not implementedExecution-ready planned work; not implemented
Milestone
Description
Planned implementation slice OA-011. No application behavior is implemented by this issue.
Phase: P3 · Dependencies: OA-009
Full roadmap detail · Contracts
Requirements
OA-ALT-001, OA-ALT-002, OA-ALT-003, OA-ALT-004, OA-ALT-005, OA-AI-002
Target files
packages/core/src/rules/evaluate.tspackages/core/src/rules/debounce.tsapps/service/src/notifications/local.tsapps/desktop/src/renderer/rules/RuleEditor.tsxapps/desktop/src/renderer/events/EventDetails.tsx
Acceptance criteria
- Rules bind a named source and region to deterministic motion sensitivity/hold/cooldown or an explicit semantic condition/cadence/expiry; rule creation never authorizes actions.
- Repeated observations coalesce by rule/source/active condition. Cooldown is 30 seconds from the last trigger; semantic reset needs two clear samples, including samples during cooldown. Rearm only after cooldown elapsed and latest fresh evidence remains clear; stale or missing evidence never clears or rearms. Acknowledge/snooze controls remain available.
- Local dashboard/OS alerts show evidence timestamp and uncertainty; unknown or stale evidence cannot satisfy a fresh condition.
- Notification delivery failure appears in the timeline; Bionic unsolicited notification delivery remains disabled until a compatibility gate passes.
- Source-group rules declare any/all/ordered relation and evidence skew (proposed 5 seconds). Missing/stale members make all unknown; preserve member timestamps, and do not count repeated ROIs of one parent as independent observations.
Verification
- Synthetic observation replay for true/false/unknown/stale conditions, cooldown, acknowledgement, and snooze.
- Fake-clock duplicate event and retry tests.
- Opt-in native Windows notification test with a harmless synthetic event.
- Synthetic frame sequence tests sustained motion, pixel noise, selected region, hold time, cooldown/clear/rearm, disconnected source, disabled/deleted/paused rules.
- Group replay tests cover any/all, missing/stale members, >5-second skew, ordered relations, and duplicate parent-source regions; unsupported relation yields an explicit gate.
Gate and estimate
G3c: alerts have grounded evidence, bounded repetition, and visible delivery state.
4-8 first-pass work-unit hours; NOT an alpha completion estimate; assumption: 8 bounded 30-60 minute work units, prepared environment and fixtures; integration waits/rework excluded
Handoff
Record changed files, actual commands/results, mock versus live evidence, residual limits, and review verdict. Do not connect personal feeds or accounts in CI.
Bounded work units
- Define rule schema (30-60 minutes)
- Build rule editor (30-60 minutes)
- Evaluate source-specific condition (30-60 minutes)
- Add unknown/stale suppression (30-60 minutes)
- Implement debounce and cooldown (30-60 minutes)
- Add local notification delivery (30-60 minutes)
- Build acknowledgement controls (30-60 minutes)
- Test replay and delivery failure (30-60 minutes)
Linked dependencies
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
integration-gateExternal or native capability requires reproducible evidenceExternal or native capability requires reproducible evidenceplannedExecution-ready planned work; not implementedExecution-ready planned work; not implemented
Activity