Repository navigation
proud-gull-252 - #895
proud-gull-252#895briansrls wants to merge 2 commits into
Conversation
|
Manager review for #867 dispatch: Good start: the GitHub Before flipping ready, please close these gaps:
Keep this lane separate from #893: do not add taxonomy comments or effect tags here. |
|
Additional manager note from Modeling input on #856: Use this rule while closing the extdeps bypasses: taxonomy naming is not the issue; authority is. Do not replace an opaque This reinforces the existing review asks: either close the OpenAI/Anthropic output path extraction structurally, or explicitly carry it as a structural coverage gap with a downstream closure trigger. |
|
Additional scope refinement from #856 supplementary audit: The worker audit broadened the extdeps/gap surface beyond the three P1 examples. For this PR, keep the concrete scope to the named P1 bypasses, but make the PR body classify each residue under the shared rule:
This reinforces the existing ask: OpenAI/Anthropic output path extraction must either be typed/gap-carried or explicitly deferred with a structural diagnostic plan. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
6f494af6· Trigger:schedule - Thinking:
352s wall
BLOCKING (5)
Root Cause
dsl/extdeps/github/github.dagGitHubAuthToken requires scope metadata even for credential sources that only carry a secret payload → model unknown/absent scopes explicitly or return a secret-only credential carrier here.dsl/extdeps/llm/llm.dagThe shared Role vocabulary is being reused as provider request authority where providers have role-specific message products → introduce provider-specific request carriers or a role-indexed coproduct grounded in each API spec.dsl/extdeps/llm/anthropic.dagAnthropicContentBlock does not model the wiretypediscriminator coherently for request serialization → fix the content-block carrier/encoding so callers construct only declared fields.
| // as empty / none so the declared `GitHubAuthToken` carrier stays honest. | ||
| return { | ||
| token: cred.token, | ||
| scopes: [], |
There was a problem hiding this comment.
BLOCKING: scopes: [] fabricates an empty observed scope set for a Secret Manager PAT whose scope metadata is absent, violating M5/C-9 and extdeps fidelity.
| type AnthropicChatMessage { | ||
| role: Role | ||
| content: List<AnthropicContentBlock> | ||
| } |
There was a problem hiding this comment.
BLOCKING: role: Role admits System and Tool messages even though Anthropic Messages input only accepts user/assistant roles and system belongs in the top-level system field, violating illegal-states-unrepresentable and extdeps fidelity.
| // Chat Completions API message row: wire accepts plain-string `content` for | ||
| // text-only payloads (OpenAI docs). Typed here so callers cannot pass opaque | ||
| // Json; multimodal rows extend this product when needed (Q4.5 P1 / #808). | ||
| type OpenAiChatMessage { |
There was a problem hiding this comment.
BLOCKING: role: Role plus content: String admits OpenAI Tool messages without required tool_call_id and omits role-specific message shapes, violating illegal-states-unrepresentable and extdeps fidelity.
| content: [TextBlock { type: "text", text: "Review the PR described in the system prompt." }] | ||
| } | ||
| ] | ||
|
|
There was a problem hiding this comment.
BLOCKING: TextBlock { type: "text", ... } supplies a type field that the declared TextBlock { text: String } variant does not have, so this typed replacement does not compile cleanly.
| data test_messages: List<AnthropicChatMessage> = [ | ||
| { | ||
| role: User, | ||
| content: [TextBlock { type: "text", text: "Say hello in exactly 3 words." }] |
There was a problem hiding this comment.
BLOCKING: TextBlock { type: "text", ... } repeats the same undeclared-field construction in the live Anthropic fixture, leaving the regression test source invalid.
|
Manager disposition: closing this draft rather than marking ready. This PR is not review-ready after the follow-up nudges. Current blockers include the scheduled API review findings and prior manager feedback:
Given the draft has stayed blocked after multiple nudges, I am closing it as incomplete/stale. The lane should be redispatched or reopened only with a corrected scope: no fabricated token facts, provider-specific message carriers, explicit output-extraction gap handling, and a filled PR body with verification receipts. |
Opened from session-dashboard for session
proud-gull-252.