Commit Graph

6 Commits

Author SHA1 Message Date
uberwald daed472b46 Add CC BY-NC-SA 4.0 license
CI / ci (push) Successful in 40s
2026-05-27 12:09:20 +02:00
uberwald 5dc9b3b8d4 Module cleanup and tests
CI / ci (push) Failing after 7s
2026-05-24 23:13:45 +02:00
uberwald 06cf740aa3 Fix: Move CSS to root styles/ folder for FoundryVTT compatibility
The issue: CSS was in dist/styles/ but FoundryVTT expects module CSS
at the root level or in a standard location.

Changes:
- Build CSS to styles/scrying-pool.css (root level) instead of dist/styles/
- Update module.json to reference styles/scrying-pool.css
- Update .gitignore to track styles/scrying-pool.css
- Update build script in package.json

This ensures FoundryVTT can find and load the CSS file properly in live sessions.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 14:12:44 +02:00
uberwald 940268573a Add postinstall script to auto-build CSS
- Added 'postinstall': 'npm run build' to package.json
- This ensures CSS is automatically rebuilt when dependencies are installed
- Provides better developer experience and ensures CSS is always up-to-date

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 14:08:55 +02:00
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
uberwald 110b295a7b CLose story 1.2 2026-05-21 23:08:34 +02:00