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
Copy file name to clipboardExpand all lines: .ai.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,7 @@ All sync modules use a `_syncing` boolean flag to prevent infinite loops:
65
65
|`chronicle-package.json`| Repo-root serving descriptor (schema v1). Chronicle's `foundry_vtt` sub-plugin reads this from the extracted release zip via `PostInstallHook` to learn how to serve this package: which fields to rewrite, what URL templates to emit, whether per-campaign signed tokens are required. Source of truth for the install/update flow's URL shape. |
66
66
|`tools/check-package-descriptor.mjs`| CI script. Validates `chronicle-package.json` against `module.json` (id match, file paths resolve, endpoint templates carry required placeholders). Run by `.github/workflows/check-descriptor.yml` on every push + PR. |
67
67
|`tools/test-lang-expand.mjs`| CI guard for `lang/en.json` (FM-LANG-COLLISION-FIX). Simulates Foundry's `expandObject` and fails loud on any string-vs-object collision or duplicate-after-expansion path that would cause Foundry to reject the whole lang file at boot. See F-LANG-1 footgun below. |
68
+
|`tools/test-template-roots.mjs`| CI guard for ApplicationV2 PARTS templates (FM-SYNCCAL-ROOT-FIX). Discovers every `PARTS.*.template` binding in `scripts/*.mjs`, statically analyzes each referenced `.hbs` (recursing through every `{{#if/unless/each/with}}` branch), and asserts max-root-count == 1 — Foundry's `_parsePartHTML` rejects multi-root parts at render time. See F-PR3-4 footgun below. |
68
69
|`scripts/calendar-sync.mjs`| Adapter pattern for Calendaria and SimpleCalendar. 0-indexed↔1-indexed conversion |
0 commit comments