feat: Create structured MDX entries from collection folders - #6317
Merged
Conversation
kof
force-pushed
the
feat/content-collection-folders-6316
branch
from
September 6, 2026 14:28
da96904 to
ce5f877
Compare
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
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.
Paragraph editing follow-up — 42a16db (September 9)
Nested formatted paragraphs now retain their text, links, styling identity, and existing labels during editing and saving. No database migration.
Full E2E and agent evaluations were not rerun for this focused follow-up. Earlier CI and suite results below apply to their recorded commits, not this new head.
Final verification — 50093ed (September 9)
Article edits now retain inline formatting and save newly inserted custom components reliably. Saving a file no longer sends a second project-sync write that could restore an older revision. No database migration.
visual-change-approvedafter the user's explicit approval of the 24 reviewed intended visual changes.Agent evaluations were explicitly skipped for these final runtime fixes, as requested. Earlier evaluation results below apply to their recorded commits, not this final commit. This summary supersedes historical pending-check notes below. The PR has not been merged.
Final merge check — 9bc31ca (September 9)
The live hero replacement and article/custom-component checks below are now complete. The PR has not been merged.
Merge-readiness follow-up — September 9
The previously pending live hero-swap and article/custom-component checks are now complete. See the current verification summary above.
Article editing follow-up — d307c8b (September 9)
The target blog's hero source was incorrectly marked read-only. It now uses the existing writable image picker. Reading time and the author URL also use direct writable values. Time properties now have native date/date-time controls. No database migration.
These results supersede the earlier pending image-product decisions and live-check notes. Evaluation status for the latest fixes is recorded above.
Blog authoring fixes — 6359f97 (September 9)
This review fixes failed UI-to-MDX saves, missing source Undo/Redo, editor recovery and focus, and publication preparation for the migrated blog. No database migration.
Remaining verification and decisions
Unknown JSX already has source-range lint diagnostics; it remains an editable missing-template placeholder, not an unconditionally blocked save. The target author's binding was also repaired through the UI so Content mode can edit its referenced author file. Shared resolved URLs remain read-only text; the image picker changes the article reference, and Asset settings edits the shared Description.
This section supersedes earlier claims of complete verification for the latest code; historical results below remain records of earlier runs.
Sync and import verification — a2a5675 (September 9)
Ordinary
link→sync→importnow exports the current saved Builder project with its current assets. It no longer mixes an older published build with current files. Import uploads assets before assigning their source folders, then restores those assignments when importing the bundle.--buildIdexport behavior unchanged; default sync does not require publishing.Sync still downloads the project and missing asset files and builds the content index locally. This is not a transfer-free operation. Default sync exports editable-build metadata rather than published deployment metadata; use the explicit build option when selecting a particular build.
Final review and verification — ab3a6b7 (September 9)
Existing entries now use the same field controls as New entry. The author-name permission fix, field-level validation, publishing warnings, and final cache fixes are included. No database migration.
Completed
Verification results
Final delivery checklist
No known code or functional-test blocker remains from this review. CI was not checked at the user's request. Manual Storybook/screen-reader checks remain deferred; the automated E2E and agent visual checks above passed.
The historical review sections below retain their original run results. This section supersedes earlier claims about strict entry validation, entry editing, browsing reads, and evaluation authorization.
Outcome
Content editors can create structured MDX entries from a collection folder without writing frontmatter. Designers configure flat fields, limits, optional slug behavior, and the Markdown template in the Builder.
High-level goals
Implementation todos
Deep review checklist
A checked item means the area was inspected and evidence was recorded. It does not mean the behavior passed. Unresolved defects and product decisions remain listed in Review findings.
1. Product contract
2. State machine
3. Activation and deactivation paths
4. Folder membership and nested collections
5. Roles and authorization
6. Mutation surfaces
7. Concurrent operations
8. Collection initialization and recovery
9. JSON Schema conformance
10. Schema resource limits and hostile input
11. Configurator ownership and round trips
12. Required/default/unset semantics
13. Schema evolution and migration
14. Template, YAML, and MDX
15. New-entry form and creation
16. Entry editing and lifecycle
17. Slug and filename identity
18. Collection-root restrictions
19. Storage, database, idempotency, and cleanup
20. Query, build, and publication
21. Cache and snapshot consistency
22. Performance and availability
23. Invalid-state repair
24. Entry navigation
25. Accessibility and responsive behavior
26. Portability, compatibility, and rollback
27. Observability and supportability
28. Verification strategy
Persistence and recovery
No database migration is needed. Folders remain ordinary database rows; their direct collection.json activates collection behavior. This PR adds no table, column, index, RPC, folder type, or backfill.
Review findings
The implementation review is complete. Confirmed defects were fixed and the following tradeoffs remain explicit.
Fixed
Known tradeoffs
Latest unstaged-change review — 2026-09-07
Verification
Local checks for commit 2b81956:
MDX editing review — commit c3702a7
Latest verification
The new mutation-commit check covers Builder operations affecting loaded external content roots. It is not a claim that every remote API mutation is now guarded by this client-side check.
Closes #6316
Local-change review — 2026-09-08