2 Commits

Author SHA1 Message Date
2ca365e3f4 docs: add agent guide (AGENTS.md) and remove reference recording
- AGENTS.md: project context for agents — architecture, domain facts
  (schedule math, hard mode policy, shields), build/test via Xcode MCP,
  TDD workflow expectations, UI-test harness (launch args, seed
  scenarios, accessibility identifiers, XCUI gotchas), known gaps
- CLAUDE.md points to AGENTS.md
- Delete the Opal reference screen recording (spec already captures it)
  and drop the video patterns from .gitignore

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 15:22:12 -04:00
e6c87baeba feat: clone Opal's rules feature with hard block enforcement
Rebuild the app around recurring screen-time blocking rules modeled on
Opal's My Apps tab:

- Onboarding with FamilyControls Screen Time authorization
- Apps home with Blocked Apps tiles and live rule cards
- New Rule sheet: Schedule/Time Limit/Open Limit types + preset gallery
- Rule editors: time windows (incl. overnight), day picker, app selection
  via FamilyActivityPicker (Block/Allow Only), rename, Hold to Commit
- Hard Mode: active hard rules cannot be edited, disabled, deleted, or
  unblocked until their window ends; soft rules pause until next window
- Shield enforcement through per-rule ManagedSettingsStore + RuleEnforcer
- 73 unit tests (Swift Testing) + 16 UI tests (XCUITest) with launch-arg
  harness for in-memory storage, mocked authorization, seeded scenarios
- docs/RULES_FEATURE_SPEC.md: spec derived from the reference recording

Known gap: background window transitions and time/open-limit thresholds
need a DeviceActivityMonitor extension; shields currently sync while the
app is running.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 12:35:52 -04:00