Repository navigation
feat(config): add typed TOML application manifests - #60
Merged
Merged
Conversation
nick2781
marked this pull request as ready for review
October 16, 2026 08:10
nick2781
enabled auto-merge (squash)
October 16, 2026 08:10
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.
Applications can now select plugin libraries and configuration files with a validated TOML manifest through the existing
-a/--app_confoption. Existing XML manifests remain supported. Invalid input, duplicate or empty plugin names and embedded NUL characters are rejected before plugin initialization, and TOML errors never fall back to XML. Error messages report the manifest path and available location without echoing configuration values.The
ark::configtarget keeps parser dependencies private, with a standard-library-only public result and reader API. This change includes an equivalent sample manifest, native parser regressions, and bilingual Nimbus guides with navigation, legacy redirects and AI-readable Markdown. Directory-prefix behavior, working-directory resolution and unordered plugin initialization are documented explicitly; this does not introduce dependency ordering or live reload.Validation on macOS: complete clang-format 18 check; 19 CI policy/README tests; six site content tests and full Astro/site-link checks; incremental Release core 16/1750, XML 7/30, manifest 12/213 and 39 shutdown checks; ASan/UBSan manifest 12/213; application/utility/sample targets; real TOML/XML/Unicode startup and orderly shutdown, plus five rejected-input paths. The final source retains the original PR's runtime/CMake/test/config bytes and the reused builds' recorded source bindings. Fresh required GitHub CI remains the cross-platform merge gate.
Launcher error handling
Validate the manifest before starting the Windows console thread, so an invalid manifest returns exit code 1 without leaving a joinable global thread. Add four real-launcher subprocess cases for a missing file, malformed TOML, malformed XML and a field with the wrong type; require normal exit 1 and the manifest diagnostic. The application CI matrix runs these cases through
check-core.The new launcher cases and combined source-layout/core/network/private-database build were exercised locally on macOS. Native Windows execution remains part of the fresh required CI; no change to normal shutdown policy is included.