Skip to content

feat(config): X1 — config completion (memoryMB + group/profile validation) - #27

Merged
gustavobertoi merged 1 commit into
mainfrom
nightly/X1
Jun 29, 2026
Merged

feat(config): X1 — config completion (memoryMB + group/profile validation)#27
gustavobertoi merged 1 commit into
mainfrom
nightly/X1

Conversation

@gustavobertoi

Copy link
Copy Markdown
Contributor

Chunk X1 (M6)

Completes the declarative schema + its semantic validation (spec 12/18).

  • Service.MemoryMB + Workspace.MemoryBudgetMB — the per-service budget hint + workspace budget the up warning keys off (the summation/host probe is X4/spec 18; this wires the schema so it drops in without a bump). Group.MemoryHintMB, DependsOn, Groups, DefaultProfile, and all hook points already landed (C3a + existing model).
  • validateProfiles — every groups.<g>.services entry must reference a real service (bare names across the workspace); defaultProfile (if set) must name a defined group or the reserved all. Both positioned to file:line:col with a did-you-mean.

The valid testdata now exercises these; generate ignores them so golden + determinism are unchanged.

Tests

LoadValid asserts the new fields; negatives for unknown group service, unknown defaultProfile, and the reserved all.

Gate

make ci + make determinism + make smoke green.

🤖 Generated with Claude Code

…/profile validation (spec 12/18)

Fill the remaining declarative schema + its semantic validation:

- Service.MemoryMB and Workspace.MemoryBudgetMB (spec 12/18) — the per-service
  budget hint + the workspace budget the `up` warning will key off (the
  summation/probe is X4/spec 18; this wires the schema so it drops in without a
  bump). Group.MemoryHintMB, DependsOn, Groups, DefaultProfile, and all hook
  points already landed (C3a + existing model), completing the config surface.
- validateProfiles: every `groups.<g>.services` entry must reference a real
  service (bare names across the workspace), and `defaultProfile` (if set) must
  name a defined group or the reserved "all" — both positioned to file:line:col
  with a did-you-mean.

The valid testdata now exercises defaultProfile/groups/memoryBudgetMB/memoryMB;
generate ignores them so the golden + determinism are unchanged.

Tests: LoadValid asserts the new fields; negative tests for an unknown group
service, an unknown defaultProfile group, and the reserved `all`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gustavobertoi
gustavobertoi merged commit 1c77d44 into main Jun 29, 2026
2 checks passed
@gustavobertoi
gustavobertoi deleted the nightly/X1 branch June 29, 2026 15:32
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