You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Draw Steel system module with dynamic Foundry sync and admin CORS management
Draw Steel System Module:
- Full manifest with 24 character fields and Foundry path annotations
- foundry_actor_type: "hero" matching Draw Steel's actor type
- Creature preset with EV, role, and Draw Steel-specific combat fields
- CC-BY reference data: 8 abilities, 6 creatures, 10 ancestries, 6 kits
Dynamic Actor Type Support:
- Added foundry_actor_type to manifest system (EntityPresetDef + API response)
- Generic adapter reads actor type from character-fields API
- actor-sync.mjs uses adapter's actorType instead of hardcoded 'character'
- All existing adapters (dnd5e, pf2e) updated with actorType exports
CORS Origin Whitelist:
- Dynamic CORS middleware reads allowed origins from site_settings DB table
- Admin API endpoints (GET/POST /admin/api/cors) for managing origins
- CORS management card added to sync admin dashboard
- Settings service with validation for origin URLs
Bug Fixes:
- Fixed SYSTEM_MAP_FALLBACK key: 'draw-steel' instead of 'drawsteel'
- Fixed hardcoded actor type checks throughout actor-sync.mjs
https://claude.ai/code/session_01NnKM8NqJzGz8756CZ4PEGg
44.**Sprint: Draw Steel System Module + Infrastructure.**
14
+
-**Draw Steel System (COMPLETE)** — Full manifest expansion: 24-field character preset with Foundry path annotations, creature preset with EV/role/role_type, kit preset. Reference data: 8 abilities, 6 creatures, 10 ancestries, 6 kits (CC-BY-4.0). Status changed from `coming_soon` to `available`.
15
+
-**Dynamic Foundry Actor Types (COMPLETE)** — Added `foundry_actor_type` to `EntityPresetDef` struct and `CharacterFieldsResponse` API. Draw Steel uses `"hero"` (not `"character"`). Generic adapter reads `actorType` from API. `actor-sync.mjs` uses `this._actorType` everywhere instead of hardcoded `'character'`.
16
+
-**CORS Admin Whitelist (COMPLETE)** — `cors.allowed_origins` in `site_settings`. `GetCORSOrigins()`/`UpdateCORSOrigins()` on SettingsService. CORS middleware accepts `DynamicOrigins` function that reads from DB. Admin UI on `/admin/api` page with textarea for managing origins. Fixes Foundry VTT CORS-blocked connections.
17
+
-**SYSTEM_MAP_FALLBACK Fix (COMPLETE)** — Changed `drawsteel` key to `'draw-steel'` to match the Foundry system ID.
Copy file name to clipboardExpand all lines: .ai/todo.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -313,7 +313,7 @@ is truly modular and self-service._
313
313
### Deferred to Phase S+ (or community contributions)
314
314
315
315
-[ ]**Module Builder UI** — Guided wizard that helps users create custom game system modules through the web UI. Step-by-step: name/metadata → define categories → define fields per category → paste/upload reference data → preview tooltips → export as module directory. Eliminates need to hand-write manifest.json + data files.
316
-
-[] Draw Steel module (system data + Foundry adapter)
316
+
-[x] Draw Steel module (system data + Foundry adapter)
317
317
-[ ] Dagger Heart module (system data + Foundry adapter)
0 commit comments