Skip to content

refactor(execution): move native dispatch behind a port - #28

Merged
jmgilman merged 1 commit into
masterfrom
refactor/execution-native-dispatch
Aug 25, 2026
Merged

jmgilman merged 1 commit into
masterfrom
refactor/execution-native-dispatch

Conversation

@jmgilman

Copy link
Copy Markdown
Contributor

Summary

  • replace catalog-backed interpreter dispatch with process-neutral capability bindings and a request-specific native-call function port
  • move authoritative re-binding, authorization, handler invocation, panic recovery, and typed output conversion into a root parent dispatcher
  • keep the current in-process deadline watcher while sharing the elapsed-budget context with the dispatcher during this transitional increment
  • delete obsolete direct Starlark-to-typed binding paths

Behavior note

Native result objects now enter Starlark through the process-neutral map conversion path, which inserts keys in deterministic lexicographic order rather than Go struct declaration order. Tests pin this ordering before the worker protocol depends on it.

Review

One persistent reviewer completed bounded contract, slice, integration, fix, and lint-only passes. All blocking findings were fixed; the final pass reported zero merge blockers.

Verification

  • mise exec -- golangci-lint fmt --config .golangci.yml
  • scoped golangci-lint run for root, binding, and execution packages
  • mise exec -- go test ./internal/execution -count=1
  • mise exec -- go test . -run '^(TestDispatch|TestServerExecute)' -count=1

Part of the worker-isolation remediation for #12; does not close the issue.

@jmgilman
jmgilman merged commit 561bae0 into master Aug 25, 2026
4 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