Complete bounded glob imports

This commit is contained in:
2026-09-06 20:51:21 +00:00
parent 9f04c09be3
commit 71a73bcfd8
15 changed files with 679 additions and 82 deletions

View File

@@ -475,30 +475,9 @@ the surviving sequence, not an attempted correspondence with previous indices.
## Explicit imports and source identity
Explicit path-import traversal, source identity, containment, budgets, recursive
directives, and the temporary glob gate are implemented and owned by the
[current configuration contract](../config.md#explicit-path-imports). Bounded glob
expansion remains target behavior. Illustrative future fragment:
```yaml
_configkit:
imports:
- glob: fragments/outputs/*.yml
optional: true
```
- Expand declarations in list order, sorting each glob's matches
lexicographically by slash-separated relative path, with no locale sorting.
Use the slash-based [Go `path.Match` grammar](https://pkg.go.dev/path#Match)
(`*`, `?`, character classes, and backslash escapes), with recursive `**`
syntax forbidden. Backslashes escape pattern characters, not directory separators.
- A required unmatched glob is an error. Optional suppresses only zero matches.
Invalid patterns, permission
failures, directories, and invalid matched documents remain errors.
- Glob traversal counts examined directory entries, including nonmatches, against
its separate work budget; only accepted matches contribute to sorted source order.
Expansion remains pattern-directed and must preserve the current path-import
identity, containment, repetition, and depth-first traversal rules.
Explicit path and glob imports, recursive traversal, source identity, containment,
filesystem context, and budgets are implemented and now owned by the
[current configuration contract](../config.md#explicit-imports).
## Profiles