Description
Wrapper flags grew ad-hoc: some have env twins, some .deva keys, some neither (--trace has no .deva key at all). One registry table per option — flag, env, .deva key, default, scope — with help text derived from it.
Type
Details
Same disease as the profile strings in #485, applied to options. The precedence rule already exists (deva.sh:7 — env > .deva files > profile > default) but is enforced per-option by hand.
Two design constraints:
- Per-run intent flags (-p, deva.sh:3295) beat config by design; the registry needs an intent-vs-posture distinction, not blanket config-derivability.
- Config-derived --trace is not free: trace changes port mappings so trace containers get a distinct name (deva.sh:4019). A workspace TRACE=1 silently forks persistent-container identity. Apply at create only, and surface trace state in deva ps.
Bash deliverable: the audit table + missing .deva keys + docs generated from it. The bun port inherits the registry as its actual parser schema.
Related Files
- deva.sh (parse_wrapper_args, load_config_sources, apply_config_pair)
- docs
Test Plan
Description
Wrapper flags grew ad-hoc: some have env twins, some .deva keys, some neither (--trace has no .deva key at all). One registry table per option — flag, env, .deva key, default, scope — with help text derived from it.
Type
Details
Same disease as the profile strings in #485, applied to options. The precedence rule already exists (deva.sh:7 — env > .deva files > profile > default) but is enforced per-option by hand.
Two design constraints:
Bash deliverable: the audit table + missing .deva keys + docs generated from it. The bun port inherits the registry as its actual parser schema.
Related Files
Test Plan