client: refactor executor to use Spec + Invocation (PRINFRA-121) - #9
Merged
somanshreddy merged 1 commit intoMar 31, 2026
Conversation
This was referenced Mar 31, 2026
Collaborator
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Mar 31, 2026
PRINFRA-121 CLI M1: OpenAPI codegen pipeline
Build the code generation pipeline that reads Scope
Mapping Rules
Acceptance Criteria
|
somanshreddy
force-pushed
the
03-31-add_command.spec_command.invocation_types_generic_builder_refactor_executor
branch
from
March 31, 2026 21:06
9e74e48 to
bb1119f
Compare
somanshreddy
force-pushed
the
03-31-client_refactor_executor_to_use_command.spec_command.invocation
branch
from
March 31, 2026 21:06
691cf11 to
8116acf
Compare
somanshreddy
marked this pull request as ready for review
March 31, 2026 21:11
somanshreddy
force-pushed
the
03-31-client_refactor_executor_to_use_command.spec_command.invocation
branch
from
March 31, 2026 21:25
8116acf to
6d230d5
Compare
somanshreddy
force-pushed
the
03-31-add_command.spec_command.invocation_types_generic_builder_refactor_executor
branch
from
March 31, 2026 21:25
bb1119f to
1b0e167
Compare
somanshreddy
force-pushed
the
03-31-client_refactor_executor_to_use_command.spec_command.invocation
branch
from
March 31, 2026 21:55
6d230d5 to
6dd7748
Compare
somanshreddy
force-pushed
the
03-31-add_command.spec_command.invocation_types_generic_builder_refactor_executor
branch
from
March 31, 2026 21:55
1b0e167 to
5c35595
Compare
jrusso1020
approved these changes
Mar 31, 2026
Collaborator
Author
Merge activity
|
somanshreddy
changed the base branch from
03-31-add_command.spec_command.invocation_types_generic_builder_refactor_executor
to
graphite-base/9
March 31, 2026 22:38
Executor signature changes from Execute(RequestSpec) to Execute(*Spec, *Invocation). Removes RequestSpec, QueryParam, FieldSpec types. Video list migrated to new types. Limit validation now server-side (spec doesn't define min/max for this endpoint). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
somanshreddy
force-pushed
the
03-31-client_refactor_executor_to_use_command.spec_command.invocation
branch
from
March 31, 2026 22:39
6dd7748 to
9f16c50
Compare
somanshreddy
deleted the
03-31-client_refactor_executor_to_use_command.spec_command.invocation
branch
March 31, 2026 22:41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Migrates the HTTP executor from the old
RequestSpec(one struct mixing static metadata and runtime values) to the new two-type design:command.Specfor what the command is,command.Invocationfor what the user provided.The executor now receives both and combines them: it reads the endpoint template and HTTP method from Spec, substitutes path params and encodes query params from Invocation, and marshals the body only if Invocation.Body is non-nil (preventing accidental
{}on bodyless endpoints).Deletes the old
RequestSpec,QueryParam, andFieldSpectypes entirely. The hand-writtenvideo listcommand is updated to use the new types as a migration proof — it will be replaced by the generated version in Stack 2.Testing
All existing executor tests updated to new signature. Added tests for nil body (no content sent) and missing Method (returns error). All M0 command tests pass.
TestVideoList_LimitOutOfRangeexpectations updated — limit validation is now server-side since the OpenAPI spec defines min/max on the generated version.Files
internal/client/executor.go— refactored to Execute(*Spec, *Invocation)internal/client/executor_test.go— updated to new signature + nil body + method-required testsinternal/client/request_spec.go— deleted (types moved to internal/command)cmd/heygen/video_list.go— migrated to new typescmd/heygen/video_list_test.go— limit validation test updated to expect API error