feat(wfctl): add provider log capture#738
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new typed IaC “log capture” capability end-to-end: proto/service definition, SDK service registration & contract-registry exposure, wfctl typed adapter support, and a new wfctl logs capture command to stream provider logs.
Changes:
- Introduces
IaCProviderLogCapturegRPC service (server-streamingLogChunk) and wires it into SDK auto-registration + contract registry. - Extends wfctl’s typed IaC adapter to call the log-capture stream and forward chunks to an
interfaces.LogCaptureSink. - Adds
wfctl logs captureCLI command (plus config/provider resolution) and tests.
Reviewed changes
Copilot reviewed 11 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| plugin/external/sdk/iacserver.go | Registers the new optional log-capture service; adds a provider hook to receive the framework-owned *grpc.Server. |
| plugin/external/sdk/iacserver_serve_test.go | Tests that the plugin shares the constructed gRPC server with server-aware providers. |
| plugin/external/sdk/contracts_logcapture_test.go | Ensures the contract registry advertises the new log-capture service when registered. |
| plugin/external/proto/iac.proto | Adds IaCProviderLogCapture service plus LogCaptureType, CaptureLogsRequest, and LogChunk messages. |
| plugin/external/proto/iac.pb.go | Regenerated protobuf Go types for the new service/messages. |
| plugin/external/proto/iac_proto_test.go | Extends optional-service interface distinctness test to include log capture. |
| plugin/external/proto/iac_grpc.pb.go | Regenerated gRPC stubs for the new log-capture service (server-streaming). |
| interfaces/iac_provider.go | Adds LogCaptureProvider, LogCaptureRequest, LogChunk, and LogCaptureSink interfaces/types. |
| cmd/wfctl/wfctl.yaml | Registers a new top-level logs command pipeline. |
| cmd/wfctl/main.go | Adds logs to the wfctl command dispatch map. |
| cmd/wfctl/logs.go | Implements wfctl logs capture including provider resolution and streaming output sink. |
| cmd/wfctl/logs_test.go | Tests that logs capture uses the configured provider and writes captured output. |
| cmd/wfctl/iac_typed_adapter.go | Adds typed client support for log capture and translates streaming chunks into interfaces.LogChunk. |
Files not reviewed (1)
- plugin/external/proto/iac_grpc.pb.go: Language not supported
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
15bb166 to
d604da2
Compare
⏱ Benchmark Results✅ No significant performance regressions detected. benchstat comparison (baseline → PR)
|
d604da2 to
0b5ef15
Compare
0b5ef15 to
d9efca6
Compare
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.
Summary
Verification