Skip to content

fix: use strict manifest loader across all CLI commands (#1100)#1104

Merged
nextlevelshit merged 1 commit intomainfrom
fix/manifest-loader-all-commands-1100
Apr 13, 2026
Merged

fix: use strict manifest loader across all CLI commands (#1100)#1104
nextlevelshit merged 1 commit intomainfrom
fix/manifest-loader-all-commands-1100

Conversation

@nextlevelshit
Copy link
Copy Markdown
Collaborator

Summary

  • All 11 CLI commands now use loadManifestStrict() instead of raw yaml.Unmarshal
  • Strict parsing rejects unknown YAML fields (catches ghost config like the params block from Ghost params field in wave.yaml: not in schema, not in Go types, silently dropped #1089)
  • Sets Manifest.RootDirrequired for env file support (without this, .env file loading in adapter.go was dead code)
  • Added manifest.UnmarshalStrict() — strict parsing without full structural validation

Commands fixed: run, do, chat, compose (2x), fork, resume, rewind, meta, retro, validate, agent

Closes #1100

Test plan

  • go test ./... — all packages pass
  • wave validate works with strict parsing
  • Test fixtures updated (error messages, minimal wave.yaml in compose test)

All 11 CLI commands that loaded wave.yaml now use loadManifestStrict()
which provides KnownFields(true) parsing and sets Manifest.RootDir.
This unblocks env file support — without RootDir, the adapter env
file resolution had no base path to resolve relative .env paths.

Added manifest.UnmarshalStrict() for strict parsing without full
manifest validation (which requires workspace_root, adapters, etc.).
Commands get strict field checking + RootDir while test fixtures
with minimal YAMLs still work.

Closes #1100
@nextlevelshit nextlevelshit force-pushed the fix/manifest-loader-all-commands-1100 branch from f946af1 to b31c2b8 Compare April 13, 2026 17:51
@nextlevelshit nextlevelshit merged commit c20bf4a into main Apr 13, 2026
4 checks passed
@nextlevelshit nextlevelshit deleted the fix/manifest-loader-all-commands-1100 branch April 13, 2026 17:56
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.

Strict manifest parsing bypassed in 13+ CLI commands (follow-up to #1089)

1 participant