Skip to content

fix(hub): deterministic requirement parameters — no guessing, no re-planning - #67

Open
wolfy-j wants to merge 1 commit into
masterfrom
fix/hub-planner-deterministic-params
Open

fix(hub): deterministic requirement parameters — no guessing, no re-planning#67
wolfy-j wants to merge 1 commit into
masterfrom
fix/hub-planner-deterministic-params

Conversation

@wolfy-j

@wolfy-j wolfy-j commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Change

  • resolve requirement resource kinds only from declared meta.value_kind; never infer types from module-authored names or target paths
  • prefer a module's declared default over an unrelated root's bare-name parameter
  • preserve a destination's recorded parameters when an update omits them or supplies an empty set
  • keep explicit non-empty parameters authoritative and reject malformed parameter input
  • declare value kinds on Keeper and Keeper Usage requirements that need resource discovery

Verification

  • make lint WIPPY=/tmp/wippy-upstream-main/dist/wippy-linux-amd64
  • Keeper: 380 entries compiled, 0 errors, 4 pre-existing warnings
  • Keeper Usage: 6 entries compiled, 0 issues

…lanning

Three sources of nondeterminism in the install planner, removed together:

1. requirement_value_kind resolves only through the declared meta.value_kind.
   Name/path inference keyed the planner to individual modules' naming.

2. The module's declared default outranks bare-name reuse. A same-named
   parameter on another deployment root is a different requirement that
   happens to share a name, not agreement — wippy/facade's bare
   `router = app:api.public` was silently adopted for any module whose
   requirement is named router, mounting its API on the wrong router.

3. An update that supplies no parameters keeps the destination's recorded
   ones: absence means unchanged, never re-planned. A recorded value that no
   longer resolves surfaces loudly as provided_invalid instead of silently
   emptying.
@wolfy-j
wolfy-j force-pushed the fix/hub-planner-deterministic-params branch from 62afc2a to b065058 Compare August 9, 2026 00:54
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