What to build
shipnode config show currently prints only the resolved config (post-assembleConfig). When a builder method has no effect at runtime (see #7 for .aliases() / .worker() in 2.5.1), the operator has no signal — the field just isn't there. Add flags that expose the assembleConfig contract:
--raw — print the raw builder-chain output before assembleConfig runs
--diff — print a side-by-side (or unified) diff between raw and resolved, with dropped keys highlighted in red
The point is diagnostic: any time a user says "but I put X in my config", config show --diff tells them in one command whether X survived the assembly step.
Acceptance criteria
Blocked by
None - can start immediately
What to build
shipnode config showcurrently prints only the resolved config (post-assembleConfig). When a builder method has no effect at runtime (see #7 for.aliases()/.worker()in 2.5.1), the operator has no signal — the field just isn't there. Add flags that expose the assembleConfig contract:--raw— print the raw builder-chain output beforeassembleConfigruns--diff— print a side-by-side (or unified) diff between raw and resolved, with dropped keys highlighted in redThe point is diagnostic: any time a user says "but I put X in my config",
config show --difftells them in one command whether X survived the assembly step.Acceptance criteria
config show --rawprints the pre-assembly config as JSONconfig show --diffprints a diff of raw → resolved, dropped keys visually distinct.aliases(),--diffshows thealiaseskey as dropped (until bug: .aliases() and .worker() silently dropped by assembleConfig #7 is fixed; then it stays present)--config <path>--jsonstill works on the defaultshowoutput (unchanged behavior when neither new flag is set)Blocked by
None - can start immediately