-
-
Notifications
You must be signed in to change notification settings - Fork 0
Update course manifest structure for scaffolded courses #950
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
NiloCK
merged 5 commits into
master
from
claude/update-course-manifest-docs-011CUoLd2QSFK1DvhVBPSo8m
Nov 5, 2025
Merged
Update course manifest structure for scaffolded courses #950
NiloCK
merged 5 commits into
master
from
claude/update-course-manifest-docs-011CUoLd2QSFK1DvhVBPSo8m
Nov 5, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Updates CLI and standalone-ui to use the new hierarchical manifest
structure that was introduced for the docs site but not propagated
to scaffolded applications.
Changes:
- CLI now generates course-level skuilder.json for each course
- CLI now generates root skuilder.json in public/ with course dependencies
- standalone-ui updated to fetch root manifest and use new DataLayerProvider API
The new structure has three levels:
1. Root /public/skuilder.json (lists course dependencies)
2. Course /static-courses/{id}/skuilder.json (points to manifest.json)
3. Course /static-courses/{id}/manifest.json (contains courseConfig and data)
This matches the implementation in docs/.vitepress/theme/composables/useStaticDataLayer.ts
and the updated StaticDataLayerProvider API from commits 4fb97b0, 0e2fb4b, 40aaf39.
Fixes runtime failures in newly scaffolded static apps caused by API mismatch.
The previous fix only generated course-level skuilder.json files for newly scaffolded empty courses. Imported courses (via --import-course-data) were missing this file, causing the manifest hierarchy to be incomplete. Now packCourses() creates the course-level skuilder.json after each course is successfully packed, ensuring all courses have the complete 3-level structure.
The provider was storing courses by dependency name (e.g., '@skuilder/course-<id>') but getCourseDB() was looking them up by raw courseId. This caused 'Course not found' errors when trying to access courses in static mode. Now extracts courseId from manifest and uses it as the map key for both courseUnpackers and manifests, ensuring consistent lookup.
NiloCK
pushed a commit
that referenced
this pull request
Nov 5, 2025
The PR #950 changed the provider to store courses by courseId (extracted from manifest), which broke the docs site that passes dependency names like '@skuilder/hero-course' to getCourseDB(). This adds a mapping from dependency name to courseId, allowing getCourseDB() to accept either format: - Direct courseId lookup (e.g., '2aeb8315...') for scaffolded apps - Dependency name lookup (e.g., '@skuilder/hero-course') for docs site The provider now maintains both maps and falls back to dependency name lookup if direct courseId lookup fails, ensuring backwards compatibility.
NiloCK
added a commit
that referenced
this pull request
Nov 5, 2025
The PR #950 changed the provider to store courses by courseId (extracted from manifest), which broke the docs site that passes dependency names like '@skuilder/hero-course' to getCourseDB(). This adds a mapping from dependency name to courseId, allowing getCourseDB() to accept either format: - Direct courseId lookup (e.g., '2aeb8315...') for scaffolded apps - Dependency name lookup (e.g., '@skuilder/hero-course') for docs site The provider now maintains both maps and falls back to dependency name lookup if direct courseId lookup fails, ensuring backwards compatibility.
NiloCK
pushed a commit
that referenced
this pull request
Nov 10, 2025
Completes the work from PR #950 by ensuring all pack operations (CLI pack command, Express pack endpoint, and CLI pack-courses utility) generate course-level skuilder.json files. Previously only the pack-courses utility (used by skuilder init) created skuilder.json. This caused inconsistencies where courses packed via: - studio-ui flush button (Express endpoint) - missing skuilder.json - skuilder pack command (CLI) - missing skuilder.json Now all pack operations consistently create skuilder.json with the hierarchical manifest structure introduced in PR #950. Changes: - packages/express/src/client-requests/pack-requests.ts: Add skuilder.json generation after packing - packages/cli/src/commands/pack.ts: Add skuilder.json generation after packing Fixes: Packed courses now match the expected structure for StaticDataLayerProvider
NiloCK
added a commit
that referenced
this pull request
Nov 10, 2025
Completes the work from PR #950 by ensuring all pack operations (CLI pack command, Express pack endpoint, and CLI pack-courses utility) generate course-level skuilder.json files. Previously only the pack-courses utility (used by skuilder init) created skuilder.json. This caused inconsistencies where courses packed via: - studio-ui flush button (Express endpoint) - missing skuilder.json - skuilder pack command (CLI) - missing skuilder.json Now all pack operations consistently create skuilder.json with the hierarchical manifest structure introduced in PR #950. Changes: - packages/express/src/client-requests/pack-requests.ts: Add skuilder.json generation after packing - packages/cli/src/commands/pack.ts: Add skuilder.json generation after packing Fixes: Packed courses now match the expected structure for StaticDataLayerProvider
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Updates CLI and standalone-ui to use the new hierarchical manifest structure that was introduced for the docs site but not propagated to scaffolded applications.
Changes:
The new structure has three levels:
This matches the implementation in docs/.vitepress/theme/composables/useStaticDataLayer.ts and the updated StaticDataLayerProvider API from commits 4fb97b0, 0e2fb4b, 40aaf39.
Fixes runtime failures in newly scaffolded static apps caused by API mismatch.