| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(api): add the demo content bundle Everything a prospect sees, checked in as data: 6 courses across 3 sections, 18 chapters, 54 activities, 6 graded assignments, 40 learner personas, 3 cohorts, a community with 5 discussions, 3 canvas boards, 2 playgrounds, 3 podcasts with 10 episodes and a storefront with 5 offers. The loader validates the whole thing on read, so a malformed bundle fails at startup with a specific message rather than half-building an organization. Two properties the sync depends on: Activity content compiles from a compact block DSL, and every id it emits is uuid5 of the text it belongs to. Compiling the same bundle twice is byte-identical, which is what lets a refresh compare rather than rewrite. Personas are drawn from a seeded generator, so a given content epoch always produces the same distribution. Images and audio come from committed generator scripts rather than stock files: provenance is clean, there is no licensing question, and no photograph of a real person or AI-generated face is involved. Board canvases are Yjs CRDT documents, built by a script in apps/collab where yjs already lives. | 24 天前 | |
feat: implement Playgrounds | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 24 天前 | ||
| 6 个月前 |