Repository navigation
Conversation
TL-14: Multi-target emit — emit transport middleware configuration per target language. Adds emit functions for Rust (Target SDK constructors), Go (struct literals), C (static const structs), and MIPS (data section). Each bundle emitter now produces inline middleware config and a JSON manifest file alongside generated code. The Protobuf/gRPC pattern: .dag declares domain policy, compiler emits config, runtime consumes it. TL-15: Substrate cleanup — lib/transport/ becomes pure Target SDK. Removes all hardcoded provider-specific error parsing (parse_github_error, parse_gcp_error, parse_anthropic_error, parse_openai_error) and the ProviderDiagnostics struct from classify.rs. Error extraction now uses only the error_shape JSON-path rules from TL-16. The parse_provider_error_shapes fallback is eliminated; the field is retained in the IR struct for serialization backward compat but is always false. Lane 2 is now fully complete (all 25 tasks done). https://claude.ai/code/session_01ChHSbjrUYfHYWXrRgxLQwF
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cf8514da6d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "// {op_name}MiddlewareConfig returns the transport middleware configuration.\n\ | ||
| func {op_name}MiddlewareConfig() TransportMiddlewareConfig {{\n\ | ||
| \treturn TransportMiddlewareConfig{{\n" |
There was a problem hiding this comment.
Define Go middleware config types before emitting helper funcs
emit_go_middleware_config now generates functions returning TransportMiddlewareConfig and referencing RateLimitConfig, RetryConfig, and ErrorShapeExtraction, but emit_go_bundle still emits only a single main.go file and does not generate or import definitions for those Go types. Any DAG that has middleware (e.g. existing services with rate_limit/retry) will therefore produce Go output that fails go build due to undefined identifiers.
Useful? React with 👍 / 👎.
| provider, | ||
| prioritize_auth_errors: true, | ||
| parse_provider_error_shapes: error_shape.is_none(), | ||
| parse_provider_error_shapes: false, |
There was a problem hiding this comment.
Keep provider fallback until error_shape coverage is complete
Forcing parse_provider_error_shapes to false here removes the only fallback path for services that do not emit error_shape; derive_middleware_config only fills error_shape from service.config.error_shapes, and a repo-wide check shows current dsl/services definitions rely on rate_limit/retry but have no error_shape blocks. Combined with the classifier change, those services now lose body-message extraction and can misclassify non-401/403 auth payloads (e.g. Anthropic-style 400 auth errors) as generic client errors.
Useful? React with 👍 / 👎.
Fix 1: workflow_commands.dag deps entries referenced `-p gunbc-deps`
(library crate) instead of `-p gunbc-dag` (where the binary lives).
Also added distinguishing subcommand args ("deps" vs "deps-generate")
so execute_installs and write_deps_toml invoke different operations.
Fixes 2 and 3 from the review were already applied in prior commits:
- Value::Json field access flattening (resolve.rs:398-401)
- A1-A5 binary purge (src/bin/ only has ci.rs + codegen_cli.rs)
Phase 3 "Purist Engine" section adds 5 aspirational tasks (C27-C30,
CT-8) for the final compiler refactor: Daggen AOT compilation, dynamic
JSON-path output mappings, type-aware JSON bridging, typed config
blocks, and contract test generation wiring.
https://claude.ai/code/session_01ChHSbjrUYfHYWXrRgxLQwF
TL-14: Multi-target emit — emit transport middleware configuration per target language. Adds emit functions for Rust (Target SDK constructors), Go (struct literals), C (static const structs), and MIPS (data section). Each bundle emitter now produces inline middleware config and a JSON manifest file alongside generated code. The Protobuf/gRPC pattern: .dag declares domain policy, compiler emits config, runtime consumes it.
TL-15: Substrate cleanup — lib/transport/ becomes pure Target SDK. Removes all hardcoded provider-specific error parsing (parse_github_error, parse_gcp_error, parse_anthropic_error, parse_openai_error) and the ProviderDiagnostics struct from classify.rs. Error extraction now uses only the error_shape JSON-path rules from TL-16. The parse_provider_error_shapes fallback is eliminated; the field is retained in the IR struct for serialization backward compat but is always false.
Lane 2 is now fully complete (all 25 tasks done).
https://claude.ai/code/session_01ChHSbjrUYfHYWXrRgxLQwF