Skip to content

feat(op): Add **kwargs support to receiver bridges (#264) - #267

Merged
David-Noble-at-work merged 1 commit into
developfrom
refactor/extract-starlark-from-op
Mar 25, 2026
Merged

David-Noble-at-work merged 1 commit into
developfrom
refactor/extract-starlark-from-op

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Summary

Phase 1.50 of #264 — add **kwargs support to both receiver bridges.

  • ExecutingReceiver bridge — "**kwargs" in Params collects remaining keyword arguments into a map[string]any Go parameter. When **kwargs coexists with *args, the Go method is non-variadic ([]any + map[string]any), so Call is used instead of CallSlice.
  • PlanningReceiver bridge — same detection and splitting; extra kwargs are filled as dict sub-slots (e.g., kwargs.path, kwargs.service) via FillSlot.
  • Plan Provider — Degraded and Fatal restored to (format any, args []any, kwargs map[string]any) signature.
  • Test scripts — template kwargs restored: plan.degraded("wrote {{ .path }}", path=written), plan.fatal("{{ .service }} startup failed", service=svc).

Test plan

  • make test — all 80 packages pass
  • make lint — 198 issues (matches develop baseline)
  • devlore-test template kwargs scripts pass
  • flow integration tests pass

Phase 1.50: extend both ExecutingReceiver and PlanningReceiver bridges
to handle **kwargs. A "**kwargs" entry in Params collects remaining
keyword arguments into a map[string]any parameter (executing) or dict
sub-slots (planning).

- ExecutingReceiver: split incoming kwargs into known/extra, unmarshal
  extras into map[string]any, use Call (not CallSlice) when **kwargs
  coexists with *args
- PlanningReceiver: split incoming kwargs, fill extras as dict sub-slots
  via FillSlot
- Restore kwargs on plan Provider Degraded/Fatal methods
- Restore devlore-test template kwargs scripts
@David-Noble-at-work
David-Noble-at-work merged commit fbcd8ff into develop Mar 25, 2026
2 checks passed
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