Skip to content

feat(nickel): emit config block as empty-array placeholder#64

Merged
UnbreakableMJ merged 1 commit into
mainfrom
feat/nickel-emit-config-files
Apr 29, 2026
Merged

feat(nickel): emit config block as empty-array placeholder#64
UnbreakableMJ merged 1 commit into
mainfrom
feat/nickel-emit-config-files

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Summary

  • Adds the config = [] placeholder, completing imported.ncl block coverage. Every DeclaredState field the operator curates during reconcile (meta, kernel, packages, config, services, users) now has an emit slot.
  • Block lands between packages and services to mirror DeclaredState's serde field order — stable golden-fixture diffs in subsequent chunks.
  • Documents why the block is empty: ConfigFileInventory is keyed on declared targets (pearlite-fs::probe_config_files), so a fresh-reconcile probe has nothing to emit; re-emitting partial inventory entries with a placeholder source would clobber the operator's real config-repo paths.

Test plan

  • cargo test -p pearlite-nickel --all-features — 20 passed (was 18, +2 for placeholder + ordering)
  • cargo clippy --workspace --all-targets --all-features -- -D warnings clean
  • cargo fmt --all -- --check clean
  • scripts/ci/check-spdx.sh clean
  • pearlite-audit check . clean

🤖 Generated with Claude Code

Closes the imported.ncl block coverage: every DeclaredState field
the operator hand-edits during reconcile (`meta`, `kernel`,
`packages`, `config`, `services`, `users`) now has an emitter
slot in stable schema order. ConfigFileInventory is keyed on
declared targets, so a fresh-reconcile run has nothing to emit;
re-emitting partial inventory entries with a placeholder source
would clobber operator-real config-repo paths, so we leave the
array empty regardless.

Block ordering now mirrors DeclaredState's serde field order
(meta, kernel, packages, config, services, users) for stable
golden-fixture diffs.

Refs: PRD §11 (reconcile), Plan §6.1 (DeclaredState)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit dc30393 into main Apr 29, 2026
3 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the feat/nickel-emit-config-files branch April 29, 2026 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant