Skip to content

feat(binding): support composite capability outputs - #37

Merged
jmgilman merged 1 commit into
masterfrom
feat/issue-23-outputs
Aug 25, 2026
Merged

jmgilman merged 1 commit into
masterfrom
feat/issue-23-outputs

Conversation

@jmgilman

Copy link
Copy Markdown
Contributor

Summary

  • compile nested output type graphs into immutable reflection plans at registration
  • convert structs, arrays, slices, string-key maps, pointers, named scalars, integers, floats, and bytes into bounded process-neutral values
  • reject dynamic, custom-marshaled, cyclic, and otherwise unsupportable graphs before serving
  • derive deterministic flat nested output notation without changing the MCP schema
  • thread remaining aggregate result bytes into parent conversion preflight while leaving exact debit at the worker frame boundary

Part of #23. The real MCP composition proof and documentation follow in later increments.

Resource and safety behavior

  • preflight container lengths before proportional maps, lists, or sorted-key allocation
  • preserve nil versus empty and optional omission versus required nullable fields
  • reject uint overflow and non-finite floats as capability failures
  • classify depth, node, per-value, and remaining aggregate exhaustion as resource limits
  • keep handlers and output reflection in the parent; only process-neutral values cross to child Starlark

Validation

  • go test ./internal/binding ./internal/worker .
  • golangci-lint run --config .golangci.yml ./internal/binding ./internal/worker . --show-stats=false

Review

Bounded persistent review verified allocation ordering, type-cycle rejection, nil/omitempty semantics, numeric safety, deterministic paths, worker-boundary preservation, budget threading, and caller migration. Its named-byte-marshaler rejection finding was fixed with slice and array regressions; its eager conversion-state allocation observation was also removed.

@jmgilman
jmgilman merged commit 0c66e5e into master Aug 25, 2026
4 checks passed
@jmgilman
jmgilman deleted the feat/issue-23-outputs branch August 25, 2026 21:04
This was referenced Sep 11, 2026
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