Add bounded sources and strict YAML parsing
This commit is contained in:
@@ -53,6 +53,14 @@ Assigned to the YAML/source implementation:
|
||||
ConfigKit's scalar grammar and limits, and replace raw parser errors with safe
|
||||
diagnostics. Narratio's application decoders and YAML node types are not copied.
|
||||
|
||||
Implementation record (2026-09-06): the labeled byte/reader ownership and strict
|
||||
single-document cases above were generalized into `source.go`, `parse.go`, and
|
||||
`internal/yaml`. No production line was copied verbatim. ConfigKit adds byte and
|
||||
tree ceilings, shared atomic reader claims, regular-file checks, exact numeric
|
||||
lexemes, parser-depth calibration, ConfigKit-owned locations, safe diagnostic
|
||||
codes, and an AST import-boundary regression. Application typed decoding, parser
|
||||
errors, YAML node types, and session-specific loaders were not retained.
|
||||
|
||||
### Strict composition
|
||||
|
||||
Assigned to document composition:
|
||||
|
||||
@@ -5,10 +5,15 @@ module and package documentation boundary. Its implemented public primitives are
|
||||
|
||||
- immutable semantic `Path` construction and strict JSON Pointer parsing;
|
||||
- detached provenance and diagnostic record types with empty `Metadata` queries;
|
||||
- canonical, control-safe diagnostic rendering and structured `LoadError` access.
|
||||
- canonical, control-safe diagnostic rendering and structured `LoadError` access;
|
||||
- opaque file, byte, reader, and no-input source construction and bounded reads;
|
||||
- a parser-independent ordered tree in `internal/document`; and
|
||||
- the sole upstream YAML integration in `internal/yaml`, which translates validated
|
||||
input into that owned tree and exposes no parser types outside its boundary.
|
||||
|
||||
It intentionally exposes no loading, source, parsing, or decoding API yet. Private
|
||||
metadata population will be integrated with loading when that lifecycle exists.
|
||||
The [configuration input contract](../config.md) owns implemented source and YAML
|
||||
behavior. ConfigKit intentionally exposes no typed loading or decoding API yet.
|
||||
Private metadata population will be integrated when that lifecycle exists.
|
||||
|
||||
The source-extraction inventory records the application foundations assigned to
|
||||
future implementation work:
|
||||
|
||||
Reference in New Issue
Block a user