Files
scrying-pool/_bmad-output/implementation-artifacts/sprint-status.yaml
T
uberwald 61f362004e Story 4.1: Task 1 Complete - PlayerPrivacyManager Core Logic
- Created src/contracts/privacy-settings.js with:
  - PrivacySettings typedef
  - PRIVACY_SETTINGS_DEFAULT (both flags false)
  - PRIVACY_SETTING_KEYS and FEATURE_NAME_MAP constants
  - createPrivacySettings() factory
  - isValidPrivacySettings() validator
  - validateSettingKey(), validateSettingValue(), validateFeatureName() helpers
- Created src/core/PlayerPrivacyManager.js with:
  - Constructor with FoundryAdapter DI validation
  - getSettings(userId) - retrieves settings from user flags
  - setSetting(userId, key, value) - async, validates, persists via user.setFlag
  - isOptedIn(userId, feature) - convenience method for feature checks
  - getAllSettings() - aggregates all users' settings (GM view)
  - onChange(callback) - subscription pattern for change events
  - teardown() - cleanup
- Created tests/unit/contracts/privacy-settings.test.js - 44 tests
- Created tests/unit/core/PlayerPrivacyManager.test.js - 35 tests
- All tests passing, lint clean
- Updated sprint-status.yaml: 4-1 from ready-for-dev to in-progress
- Updated story file: Task 1 subtasks 1.1-1.8 marked complete

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-23 21:11:55 +02:00

74 lines
2.8 KiB
YAML

# generated: 2026-05-21T01:00:00+02:00
# last_updated: 2026-05-21T01:00:00+02:00
# project: video-view-manager
# project_key: NOKEY
# tracking_system: file-system
# story_location: _bmad-output/implementation-artifacts
# STATUS DEFINITIONS:
# ==================
# Epic Status:
# - backlog: Epic not yet started
# - in-progress: Epic actively being worked on
# - done: All stories in epic completed
#
# Epic Status Transitions:
# - backlog → in-progress: Automatically when first story is created (via create-story)
# - in-progress → done: Manually when all stories reach 'done' status
#
# Story Status:
# - backlog: Story only exists in epic file
# - ready-for-dev: Story file created in stories folder
# - in-progress: Developer actively working on implementation
# - review: Ready for code review (via Dev's code-review workflow)
# - done: Story completed
#
# Retrospective Status:
# - optional: Can be completed but not required
# - done: Retrospective has been completed
#
# WORKFLOW NOTES:
# ===============
# - Epic transitions to 'in-progress' automatically when first story is created
# - Stories can be worked in parallel if team capacity allows
# - Developer typically creates next story after previous one is 'done' to incorporate learnings
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
generated: "2026-05-21T01:00:00+02:00"
last_updated: "2026-05-24T21:00:00+02:00"
project: video-view-manager
project_key: NOKEY
tracking_system: file-system
story_location: _bmad-output/implementation-artifacts
development_status:
# Epic 1: Core Camera Visibility Control
epic-1: done
1-1-module-scaffold-cicd-pipeline-and-design-token-system: done
1-2-webrtc-spike-track-disabling-api-validation: done
1-3-data-layer-foundryadapter-statestore-and-socket-infrastructure: done
1-4-core-logic-scryingpoolcontroller-and-visibilitymanager: done
1-5-gm-control-ui-scryingpoolstrip-actionpopover-and-av-tile-integration: done
1-6-player-camera-status-badge: done
epic-1-retrospective: done
# Epic 2: Player Notifications & Director's Board
epic-2: done
2-1-notificationbus-and-notification-verbosity: done
2-2-directors-board-core-layout-and-participant-toggle: done
2-3-directors-board-bulk-actions-spotlight-and-keyboard-shortcuts: done (code review: 2026-05-23)
epic-2-retrospective: done
# Epic 3: Scene-Aware Camera Automation (Scene Presets)
epic-3: done
3-1-save-and-load-scene-presets: done
3-2-scene-auto-apply-and-confirmationbar: done
3-3-preset-import-and-export: done
epic-3-retrospective: done
# Epic 4: Player Privacy Panel
epic-4: in-progress
4-1-player-privacy-panel-and-automation-opt-ins: in-progress
4-2-custom-portrait-fallback: backlog
epic-4-retrospective: optional