Skip to content

options registry: one table for flag / env / .deva key #519

Description

@lroolle

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

  • Enhancement

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

  • table covers every flag in parse_wrapper_args (test asserts no unregistered flag)
  • TRACE=1 in .deva enables trace at create, warns on attach mismatch
  • intent flags still beat config (existing -p test extended)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions