feat(providers): make profiles authoritative - #2962
Conversation
Closes #1988 Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
|
🌿 Preview your docs: https://nvidia-preview-pr-2962.docs.buildwithfern.com/openshell |
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
The provider-profile migration is project-valid and the docs cover the direct UX changes, but two TUI correctness regressions need fixes before pipeline handoff.
Action required: @johntmyers, please address the two inline Warnings and add the focused TUI state/key-handling coverage described there.
Blocking findings:
GATOR-86a7222e-02: valid runtime-resolvable or optional-credential profiles cannot be created without a static secret in the TUIGATOR-86a7222e-03: an empty or unavailable profile catalog lets Enter panic the provider-create modal
Carried findings:
- None
Non-blocking suggestions:
- None
Gator metadata
- Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs and navigation are updated for the user-facing provider workflow
- Checks: current-head Branch Checks and Helm Lint are pending; DCO is green
- E2E:
test:e2eis required for provider credential flow, policy composition, and sandbox lifecycle, but dispatch waits until review blockers are resolved - Head SHA:
86a7222e1614b7817a56bfa62da1c1bbfec8e3e8 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
e241be15c4197e8cb3a7b8587815577cebcf6a08 - Gator payload:
7 - Review mode:
initial - Previous reviewed SHA: none
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
The maintainer-requested fresh initial review covered the complete 58-file, four-commit stack. It independently confirms the two existing TUI obligations and finds one additional gateway regression in authoritative provider credential-key validation.
Action required: @johntmyers, please address the two carried TUI Warnings and the new inline gateway Warning, with the focused regression coverage requested in each.
Blocking findings:
GATOR-86a7222e-04: broker-only credentials identified by profile name are rejected as undeclared
Carried findings:
GATOR-86a7222e-02: TUI creation misclassifies valid empty-credential and broker-only profilesGATOR-86a7222e-03: an empty or unavailable profile catalog lets Enter panic the provider-create modal
Non-blocking suggestions:
- None
Gator metadata
- Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs, navigation, and the legacy-route redirect are updated for the user-facing provider workflow
- Checks: current-head Branch Checks, Helm Lint, DCO, and published required gate statuses are green
- E2E:
test:e2eis required for provider credential flow, policy composition, and sandbox lifecycle; dispatch waits until review blockers are resolved - Head SHA:
86a7222e1614b7817a56bfa62da1c1bbfec8e3e8 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
e241be15c4197e8cb3a7b8587815577cebcf6a08 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR replacement) - Previous reviewed SHA: none for this scope-authorized rerun
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @johntmyers. I rechecked your e438dcf8 fixes for the three earlier findings and independently reviewed the complete 58-file, five-commit merge-base-to-head patch. Those earlier obligations are resolved, but the full review found one profile-resolution regression that can silently substitute a built-in profile for an exact imported profile ID.
Action required: @johntmyers, please make profile resolution exact-ID-first across creation and runtime lookup paths and add the imported alias-shaped profile regression test described inline.
Blocking findings:
GATOR-e438dcf8-01: legacy alias normalization can override an exact imported provider profile ID
Carried findings:
- None;
GATOR-86a7222e-02,GATOR-86a7222e-03, andGATOR-86a7222e-04are resolved by the current patch
Non-blocking suggestions:
- None
Gator metadata
- Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs, navigation, and the legacy-route redirect are updated for the direct UX changes
- Checks: current-head Branch Checks, Helm Lint, DCO, docs preview, and published required gate statuses are green
- E2E:
test:e2eis required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until the blocking review finding is resolved - Head SHA:
e438dcf8e4978a3b0c7fb33ee0a28a17f3a5dfe5 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
49a93ee08010048b2e11d4c8ef4aa72af600d705 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA: none for this scope-authorized rerun
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @johntmyers. The maintainer-requested replacement review covered the complete 58-file, five-commit merge-base-to-head patch. It independently confirms the open exact-profile alias obligation and found one additional upgrade regression: removing the provider-composition gate can activate a previously rejected ambiguous policy for an existing sandbox.
Action required: @johntmyers, please address the carried exact-ID-first resolution Warning and the new upgrade-preflight Warning, with the regression coverage requested in each.
Blocking findings:
GATOR-e438dcf8-02: unconditional provider composition can activate an invalid persisted sandbox policy after upgrade
Carried findings:
GATOR-e438dcf8-01: exact imported profile IDs must resolve before legacy aliases across creation and runtime lookup paths
Non-blocking suggestions:
- Align the CLI skill/reference and provider table with optional credential sources and the authoritative built-in/imported profile inventory.
Gator metadata
- Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs and navigation are updated; one non-blocking companion-reference consistency suggestion remains
- Checks: current-head Branch Checks, Helm Lint, DCO, docs preview, and published required gate statuses are green
- E2E:
test:e2eis required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review findings are resolved - Head SHA:
e438dcf8e4978a3b0c7fb33ee0a28a17f3a5dfe5 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
49a93ee08010048b2e11d4c8ef4aa72af600d705 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA: none for this scope-authorized rerun
- Review budget exhausted: yes after this third finding-bearing round; any later autonomous review is Critical-only
- Maintainer decision required: no; the concrete author fixes above are the current next action
- Next state:
gator:in-review
| fn provider_policy_composition_enabled_in(settings: &StoredSettings) -> Result<bool, Status> { | ||
| Ok(decode_policy_from_global_settings(settings)?.is_none() | ||
| && bool_setting_enabled(settings, settings::PROVIDERS_V2_ENABLED_KEY)?) | ||
| Ok(decode_policy_from_global_settings(settings)?.is_none()) |
There was a problem hiding this comment.
gator-agent
Warning — GATOR-e438dcf8-02 · Upgrade can activate a policy the guarded transition rejected
Summary: An operator upgrading with provider composition disabled or unset can have an existing sandbox whose base and attached-profile rules conflict at equal specificity. This change makes composition unconditional without running the former all-sandbox activation validation. On restart or synchronization, the supervisor rejects the ambiguous effective policy, so a previously running sandbox cannot activate policy or start normally.
Fix: Before enabling unconditional composition for persisted deployments, run the existing full-sandbox validator as an upgrade migration or preflight. Keep invalid records dormant until the named conflicts are resolved, and restore an upgrade regression based on the removed activation test.
Verify: Create the conflicting sandbox while the old gate is unset, upgrade, then restart or fetch its configuration. The upgrade must report the sandbox-specific conflict before activation; it must not send an ambiguous policy to the supervisor.
Agent context
- Location:
crates/openshell-server/src/grpc/policy.rs:2042 - Ownership: This PR removes the controlled activation transition and makes persisted provider composition active by default.
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @johntmyers. The maintainer-requested replacement review independently covered the complete 58-file, six-commit merge-base-to-head patch. The exact imported-profile-ID obligation is resolved at this head. The full review still confirms the upgrade-preflight obligation: removing the provider-composition gate can activate a previously dormant ambiguous policy for an existing sandbox.
Action required: @johntmyers, please add an upgrade migration or preflight that reports incompatible persisted sandboxes before provider composition becomes active, and restore deterministic upgrade regression coverage.
Blocking findings:
- None newly introduced by this full review
Carried findings:
GATOR-e438dcf8-02: unconditional provider composition can activate an invalid persisted sandbox policy after upgrade
Non-blocking suggestions:
- None
Gator metadata
- Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs and navigation cover the direct UX changes
- Checks: current-head Branch Checks fail in Go SDK; Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
- E2E:
test:e2eis required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review feedback is resolved - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR replacement) - Previous reviewed SHA: none for this scope-authorized rerun
- Review budget exhausted: no
- Maintainer decision required: no; the concrete author fix above is the current next action
- Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
The maintainer-requested replacement review independently covered the complete 58-file, six-commit merge-base-to-head patch. It confirms the existing upgrade-preflight obligation and finds one additional provider-update regression: the new authoritative profile credential rules are enforced when a provider is created but can be bypassed by updating that provider.
Action required: @johntmyers, add an upgrade migration or preflight for incompatible persisted sandboxes, and enforce declared/required profile credentials on provider updates while preserving the intended legacy-profileless compatibility path.
Blocking findings:
GATOR-dc5184a4-01: provider updates bypass authoritative profile credential validation
Carried findings:
GATOR-e438dcf8-02: unconditional composition can activate an invalid persisted sandbox policy after upgrade
Non-blocking suggestions:
- None
Gator metadata
- Validation: project-valid because it implements review-ready issue #1988 and was submitted by a repository maintainer
- Docs: Fern provider docs and navigation cover the direct UX changes
- Checks: current-head Branch Checks fail in Go SDK; Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
- E2E:
test:e2eis required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review feedback is resolved - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR replacement) - Previous reviewed SHA: none for this scope-authorized rerun
- Review budget exhausted: yes in the prior ledger; the maintainer explicitly authorized this scope-correcting Warning-bearing replacement
- Maintainer decision required: no; the explicit override authorizes this replacement and the two concrete author obligations are stated above
- Next state:
gator:in-review
| .snapshot_catalog(state.store.as_ref(), &workspace) | ||
| .await?; | ||
| let profile = resolve_provider_create_profile(&catalog, &mut provider)?; | ||
| validate_provider_create_credentials(&profile, &provider)?; |
There was a problem hiding this comment.
gator-agent
Warning — GATOR-dc5184a4-01 · Provider updates bypass profile credential rules
Summary: A workspace administrator can create a valid profile-backed provider, then use the supported update API or CLI to delete a required credential or add an undeclared environment key. Creation now rejects both states, but update persists them, so an attached workload can lose its required credential or receive a key its authoritative profile never declared.
Fix: For resolvable profiles, validate incoming keys against the profile and validate the fully staged candidate’s required static credentials, including pending driver-stored values. Preserve compatibility only for profileless legacy records. Add update regressions for undeclared additions and required-key deletion with inline and driver-stored credentials.
Verify: Create an openai provider with OPENAI_API_KEY, then update it once with OPENAI_API_KEY="" and once with UNDECLARED_TOKEN=value; both updates must be rejected, while a legacy profileless record retains its supported update behavior.
Agent context
- Agent path:
UpdateProvider→ merged candidate → mutable/attachment validation → persistence - Ownership: This PR makes profiles authoritative and adds the credential validation here only to
CreateProvider; the supported update boundary remains open. - Location:
crates/openshell-server/src/grpc/provider.rs:2412 - Sibling sites: update persistence at
crates/openshell-server/src/grpc/provider.rs:468; CLI update atcrates/openshell-cli/src/run.rs:4866
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
This maintainer-authorized replacement review independently covered the complete six-commit, 58-file pull request. It validates two existing obligations and identifies three additional blockers from the full upgrade, provider-runtime, and TUI paths; one is a Critical secret-exposure path.
Action required: @johntmyers, please address the five blocking findings and push an updated head; the existing Gator threads for the two carried findings remain the canonical discussion locations.
Blocking findings:
GATOR-e438dcf8-02(carried): upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.GATOR-dc5184a4-01(carried): provider updates can persist credential states that the new authoritative create path rejects.GATOR-dc5184a4-02: new built-in profile IDs can break catalogs containing previously supported imported profiles.GATOR-dc5184a4-03(Critical): new built-ins can bind undeclared legacy secrets to OpenAI or Anthropic endpoints.GATOR-dc5184a4-04: the authoritative TUI picker silently omits profiles after the first page.
Carried findings:
GATOR-e438dcf8-02andGATOR-dc5184a4-01remain open and were revalidated against the complete patch.
Non-blocking suggestions:
- Update
.agents/skills/openshell-cli/cli-reference.mdto say credential sources are mutually exclusive when supplied, but optional for profiles that permit empty initial credentials.
Gator metadata
- Validation: Project-valid, maintainer-authored implementation of linked issue #1988 with the complete change stack explicitly authorized for review.
- Docs: Fern docs and navigation are updated; one agent-facing CLI reference detail remains a non-blocking suggestion.
- Checks: Current-head
OpenShell / Branch Checksis failing in the Go SDK single-flight test; Helm Lint and DCO are green. - E2E: Required for provider credential flow; current-head E2E status exists, but test dispatch is not advanced while blocking review findings remain.
- Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR replacement review) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this full replacement review was explicitly authorized. - Maintainer decision required:
no— the current concrete action is author remediation of the validated blocker set. - Next state:
gator:in-review
| include_str!("../../../providers/google-cloud.yaml"), | ||
| include_str!("../../../providers/google-vertex-ai.yaml"), | ||
| include_str!("../../../providers/nvidia.yaml"), | ||
| include_str!("../../../providers/openai.yaml"), |
There was a problem hiding this comment.
gator-agent
Warning — GATOR-dc5184a4-02 · New built-in IDs break existing imported profiles
Summary: An administrator who previously imported an openai or anthropic profile can upgrade successfully, but any operation that builds the default profile catalog then fails on the duplicate static and user-managed ID. Provider management and sandbox policy or credential synchronization remain unavailable until the persisted profile is renamed or deleted.
Fix: Treat the new built-ins as fallbacks when a user-managed profile already owns the ID, or migrate before activation while preserving the custom profile and reporting the operator action. Cover both IDs with upgrade tests.
Verify: Import openai on the base version, upgrade with default profile sources, then list profiles and fetch sandbox configuration; both must continue using the imported profile without a duplicate-ID failure. Repeat for anthropic.
Agent context
- Location:
crates/openshell-providers/src/profiles.rs:42 - Ownership: This PR reserves two previously importable IDs while catalog assembly still rejects static-versus-user duplicates.
| include_str!("../../../providers/google-cloud.yaml"), | ||
| include_str!("../../../providers/google-vertex-ai.yaml"), | ||
| include_str!("../../../providers/nvidia.yaml"), | ||
| include_str!("../../../providers/openai.yaml"), |
There was a problem hiding this comment.
gator-agent
Critical — GATOR-dc5184a4-03 · Undeclared legacy secrets become bound to public endpoints
Summary: After upgrade, a sandbox using a legacy openai or anthropic provider can receive any valid stored environment-key credential as an endpoint-bound placeholder, even when the new profile never declared that key. A sandboxed agent can place an unrelated secret such as AWS_SECRET_ACCESS_KEY in a request to OpenAI or Anthropic and cause proxy substitution, disclosing the secret externally.
Fix: Before adopting a profile for an existing record, validate stored and driver-backed keys against accepted_stored_keys; never emit or bind undeclared keys. Report incompatible records through upgrade preflight or migration and add both provider regressions.
Verify: Persist a legacy openai provider containing only AWS_SECRET_ACCESS_KEY, attach it, upgrade, and synchronize with static bindings enabled. The key and binding must be withheld and unusable in a request to api.openai.com; repeat for anthropic.
Agent context
- Agent path: built-in profile resolution → every stored valid environment key → static binding → proxy substitution
- Location:
crates/openshell-providers/src/profiles.rs:42 - Ownership: This PR adds matching built-ins and enables their behavior unconditionally while preserving legacy records.
| let mut profiles = HashMap::new(); | ||
| app.provider_profiles.clear(); | ||
| for ws in &workspaces { | ||
| let req = openshell_core::proto::ListProviderProfilesRequest { |
There was a problem hiding this comment.
gator-agent
Warning — GATOR-dc5184a4-04 · The authoritative TUI picker truncates profile catalogs
Summary: In a workspace with more than 100 visible built-in, imported, or interceptor profiles, an operator opening provider creation sees only the first response page. The TUI never requests the next offset, so valid later profiles are absent from the advertised creation workflow and can also lack metadata in the provider table.
Fix: Fetch pages until the server returns a short page, merge them before updating the profile cache and picker, and cover a selectable profile returned on page two.
Verify: Mock ListProviderProfiles with 100 results at offset 0 and one result at offset 100, refresh the TUI, and open provider creation. The TUI must make the second request and expose the final profile.
Agent context
- Location:
crates/openshell-tui/src/lib.rs:2127 - Ownership: This PR makes the remote catalog authoritative for TUI creation while retaining a single fixed-size request.
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch—not only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the five carried findings and push an updated head.
Blocking findings:
- No new blocking findings from this full replacement review
Carried findings:
GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflightGATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rulesGATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profilesGATOR-dc5184a4-03(Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpointsGATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid, maintainer-authored implementation of linked issue #1988
- Docs: Fern docs and navigation cover the direct UX changes
- Checks: Current-head
OpenShell / Branch Checksfails in Go SDK;OpenShell / Helm Lint, DCO, and docs preview are green - E2E:
test:e2eis required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full review was explicitly authorized - Maintainer decision required:
no— concrete author remediation is the next action - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the five carried findings and push an updated head.
Blocking findings:
- No new blocking findings from this full replacement review
Carried findings:
GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflightGATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discoveryGATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profilesGATOR-dc5184a4-03(Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpointsGATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid, maintainer-authored implementation of linked issue #1988
- Docs: Fern docs and navigation cover the direct UX changes
- Checks: Current-head
OpenShell / Branch Checksfails in Go SDK;OpenShell / Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green - E2E:
test:e2eis required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full review was explicitly authorized - Maintainer decision required:
no— concrete author remediation is the next action - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the five carried findings and push an updated head.
Blocking findings:
- No new blocking findings from this full replacement review
Carried findings:
GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflightGATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discoveryGATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profilesGATOR-dc5184a4-03(Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpointsGATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid, maintainer-authored implementation of linked issue #1988
- Docs: Fern docs and navigation cover the direct UX changes
- Checks: Current-head
OpenShell / Branch Checksfails in the Go SDK job;OpenShell / Helm Lintand the published E2E/GPU gate statuses are green - E2E:
test:e2eis required for provider credential, policy-composition, and sandbox-lifecycle changes; Gator does not advance test dispatch while blocking review feedback remains - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full review was explicitly authorized - Maintainer decision required:
no— concrete author remediation is the next action - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the five carried findings and push an updated head.
Blocking findings:
- No new blocking findings from this full replacement review
Carried findings:
GATOR-e438dcf8-02: upgrading can activate a conflicting persisted provider-composed policy without the former compatibility preflightGATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discoveryGATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profilesGATOR-dc5184a4-03(Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpointsGATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid, maintainer-authored implementation of linked issue #1988
- Docs: Fern docs and navigation cover the direct UX changes
- Checks: Current-head
OpenShell / Branch Checksfails in the Go SDK job;OpenShell / Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green - E2E:
test:e2eis required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full review was explicitly authorized - Maintainer decision required:
no— concrete author remediation is the next action - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
John requested a fresh review of the complete six-commit stack because the prior same-head disposition appeared too narrowly focused. I independently reviewed the full 58-file merge-base-to-head diff. That complete pass validates all five existing Gator obligations and adds two blockers that were not captured by the earlier narrow review.
Action required: address the seven blocking findings, including the two new inline findings below, then push an updated head for follow-up review.
Blocking findings:
GATOR-dc5184a4-05: configurable OpenAI/Anthropic credentials can be bound to the wrong public vendor endpoint.GATOR-dc5184a4-06: the canonical provider inventory still advertises types that authoritative creation rejects.
Carried findings:
GATOR-e438dcf8-02: upgrade activates provider policy without the former compatibility preflight.GATOR-dc5184a4-01: provider updates bypass authoritative credential validation.GATOR-dc5184a4-02: new built-in IDs collide with persisted imported profiles.GATOR-dc5184a4-03: profile adoption can bind undeclared legacy secrets to public endpoints.GATOR-dc5184a4-04: the authoritative TUI profile picker does not paginate.
Non-blocking suggestions:
- None.
Gator metadata
- Validation: project-valid implementation of accepted issue #1988, with an explicit maintainer-requested complete-stack review
- Docs: updated, but the supported-provider inventory remains materially contradictory (
GATOR-dc5184a4-06) - Checks: current-head branch checks include a Go SDK failure; pipeline handoff is deferred while review blockers remain
- E2E: required for provider credential, policy, gateway/supervisor, and sandbox behavior; dispatch deferred until blocking review feedback is resolved
- Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR scope override) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
nofor this explicitly authorized full initial rerun - Maintainer decision required:
no - Next state:
gator:in-review
| discovery: | ||
| credentials: [api_key] | ||
| endpoints: | ||
| - host: api.openai.com |
There was a problem hiding this comment.
gator-agent
Critical — GATOR-dc5184a4-05 · Configurable inference secrets can be sent to the wrong vendor
Summary: An administrator can follow the supported OpenAI-compatible flow, store a third-party or private-service key with OPENAI_BASE_URL, and attach it to a sandbox. The new profile ignores that configured upstream and also grants curl access plus credential substitution at api.openai.com; a sandboxed agent can therefore send the third-party key to OpenAI. The Anthropic path has the same defect.
Fix: When an alternate base URL is configured, do not emit fixed-vendor policy or bind its key to that vendor. Keep the provider route-only or require an endpoint-matching custom profile, and cover both provider types.
Verify: Configure api.example.com with a distinct key, attach it, and request the public vendor with the placeholder. The public-vendor request must be denied or must not substitute the key.
Agent context
- Location:
providers/openai.yaml:19 - Sibling site:
providers/anthropic.yaml:19 - Ownership: This PR adds the fixed public profiles while preserving alternate-base-URL semantics and enabling profile composition unconditionally.
| have a built-in or imported provider profile with a `discovery` section. If no | ||
| matching profile exists, the CLI returns an error instead of falling back to | ||
| legacy discovery. | ||
| Provider creation rejects profileless types. For a custom GitLab deployment, |
There was a problem hiding this comment.
gator-agent
Warning — GATOR-dc5184a4-06 · The provider reference advertises types creation rejects
Summary: An operator following this canonical page is told here that profileless creation is rejected, but the Supported Provider Types table later on the same page still advertises generic, gitlab, and opencode as creatable types. This PR removes their authoritative profiles and public normalization paths, so the documented create commands deterministically fail.
Fix: Remove those types from the creatable inventory, or label them existing-record-only and direct new deployments to import an endpoint-bearing custom profile.
Verify: Follow each retained table entry on this head. Every type advertised as creatable must resolve to a built-in or imported profile and succeed past exact profile lookup; legacy-only entries must not claim new-create support.
Agent context
- Location:
docs/sandboxes/manage-providers.mdx:106 - Contradictory entries: lines 410, 412, and 415
- Ownership: This PR retires these public types and edits this page for authoritative profiles without reconciling its inventory.
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
John requested a fresh initial review of the complete pull request because the prior same-head disposition appeared to focus too narrowly on the latest TUI commit. I rebuilt the review from the full six-commit, 58-file merge-base-to-head patch and independently re-evaluated every changed file. That complete pass revalidates the seven existing obligations and finds no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the seven carried findings and push an updated head for follow-up review.
Blocking findings:
- No new blocking findings from this complete replacement review.
Carried findings:
GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.GATOR-dc5184a4-01: provider updates bypass authoritative credential validation, including persisted profile scope during CLI discovery.GATOR-dc5184a4-02: new built-in profile IDs can make existing imported profiles prevent authoritative catalog construction.GATOR-dc5184a4-03(Critical): profile adoption can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints.GATOR-dc5184a4-04: the authoritative TUI profile picker does not paginate beyond 100 profiles.GATOR-dc5184a4-05(Critical): alternate-upstream OpenAI or Anthropic credentials can be substituted at the wrong public vendor endpoint.GATOR-dc5184a4-06: the canonical provider inventory still advertises types that authoritative creation rejects.
Non-blocking suggestions:
- None.
Gator metadata
- Validation: project-valid, maintainer-authored implementation of review-ready issue #1988, with an explicit maintainer-requested complete-stack review.
- Docs: Fern docs and navigation are updated, but the canonical supported-provider inventory remains materially contradictory (
GATOR-dc5184a4-06). - Checks: current-head
OpenShell / Branch Checksis failing in the Go SDK job;OpenShell / Helm Lint, DCO, and docs preview are green. - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved. - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA scope override) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized. - Maintainer decision required:
no— the concrete next action is author remediation of the independently validated blocker set. - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The complete pass revalidates the seven existing obligations and finds no additional blockers; the existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please address the seven carried findings and push an updated head for follow-up review.
Blocking findings:
- No new blocking findings from this complete replacement review.
Carried findings:
GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.GATOR-dc5184a4-01: provider updates bypass authoritative profile credential validation.GATOR-dc5184a4-02: new built-in IDs can make an existing imported profile prevent catalog construction.GATOR-dc5184a4-03(Critical): profile adoption can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints.GATOR-dc5184a4-04: the authoritative TUI profile picker omits profiles after the first page.GATOR-dc5184a4-05(Critical): alternate-upstream credentials can be substituted at the wrong public vendor endpoint.GATOR-dc5184a4-06: the canonical provider inventory advertises types authoritative creation rejects.
Non-blocking suggestions:
- None.
Gator metadata
- Validation: project-valid, maintainer-authored implementation of review-ready issue #1988, with an explicit maintainer-requested complete-stack review.
- Docs: Fern docs and navigation are updated, but the canonical supported-provider inventory remains materially contradictory (
GATOR-dc5184a4-06). - Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job;OpenShell / Helm Lint, DCO, and docs preview are green. - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved. - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR same-SHA scope override) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope invalidated for this rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized. - Maintainer decision required:
no— concrete author remediation is the next action. - Next state:
gator:in-review
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full pass revalidates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, because the autonomous Warning budget is exhausted, please make the convergence decision for these concrete obligations: push fixes for the findings that should be remediated and explicitly waive any that are acceptable as implemented. Gator can then verify the resulting author delta and dispositions.
Blocking findings:
- No new blocking findings
Carried findings:
GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-03: prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoptionGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-05: prevent alternate-upstream inference credentials from being substituted at fixed public-vendor endpointsGATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects
Gator metadata
- Validation: linked roadmap issue #1988 explicitly defines the cross-subsystem Providers v2 migration and the author is a verified repository administrator
- Docs: updated, with one validated contradictory provider-type inventory obligation still open
- Checks: current-head Branch Checks are failing; pipeline handoff is deferred until review obligations converge
- E2E:
test:e2eis required for provider credential and policy behavior, but dispatch is deferred until blocking review feedback is resolved or waived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(scope-invalid for this requested rerun) - Review budget exhausted: yes
- Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
- Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. I completed the maintainer-requested replacement review against the complete merge-base-to-head patch: all six commits and all 58 changed files, not only the latest TUI commit. This independent pass validates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings:
GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoptionGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpointsGATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: updated, with one independently validated contradictory provider-type inventory obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO andOpenShell / Helm Lintare green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch is deferred until blocking review feedback is resolved or waived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized - Maintainer decision required:
yes— seven independently validated obligations remain unresolved and unwaived - Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, this replacement initial review rebuilt context from the complete six-commit, 58-file merge-base-to-head patch instead of focusing on the latest TUI commit. The independent full-PR pass revalidates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; the complete review did not reopen the resolved TUI, broker-credential, or exact-ID findings.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings:
GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoptionGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-05(Critical): prevent alternate-upstream inference credentials from being substituted at fixed public-vendor endpointsGATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: updated, with one independently validated contradictory provider-type inventory obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO andOpenShell / Helm Lintare green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch is deferred until blocking review feedback is resolved or waived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized - Maintainer decision required:
yes— seven independently validated obligations remain unresolved and unwaived - Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, I rebuilt this replacement initial review from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than focusing on the latest TUI commit, prior findings, or an author-only delta. The independent full pass revalidates seven existing obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings validated by the complete review:
GATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoptionGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpointsGATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO,OpenShell / Helm Lint, docs preview, and published E2E/GPU gate statuses are green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized - Maintainer decision required:
yes— seven independently validated obligations remain unresolved and unwaived - Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At the maintainer's request, this replacement initial review rebuilt context from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than the latest TUI commit, a latest-commit delta, or prior findings alone. The independent full pass validates the seven existing open obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; resolved findings were not reopened.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings validated by the complete review:
GATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoptionGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpointsGATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO andOpenShell / Helm Lintare green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized - Maintainer decision required:
yes— seven independently validated obligations remain unresolved and unwaived - Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At the maintainer's request, I rebuilt this replacement initial review from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than the latest TUI commit, prior findings, or an author-only delta. The independent full pass validates the seven existing open obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; resolved findings were not reopened.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings validated by the complete review:
GATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoptionGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpointsGATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO andOpenShell / Helm Lintare green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted:
yesin the historical ledger; this scope-correcting full initial review was explicitly authorized - Maintainer decision required:
yes— seven independently validated obligations remain unresolved and unwaived - Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At the maintainer's request, I rebuilt this replacement initial review from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than the latest TUI commit, prior findings, or an author-only delta. The independent full pass validates the seven existing open obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; resolved findings were not reopened.
Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.
Blocking findings:
- No new blocking findings from the complete replacement review
Carried findings validated by the complete review:
GATOR-dc5184a4-03(Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoptionGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpointsGATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflictsGATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creationGATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entriesGATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources
Non-blocking suggestions:
- None
Gator metadata
- Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
- Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
- Checks: current-head
OpenShell / Branch Checksfails in the Go SDK job; DCO andOpenShell / Helm Lintare green - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete-patch same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope treated as invalid for this requested rerun) - Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized
- Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
- Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, I rebuilt this replacement initial review from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than the latest TUI commit, prior findings, or an author-only delta. The independent full pass validates the seven existing open obligations (two Critical and five Warning), finds no additional blockers, and does not reopen resolved findings. The existing Gator threads remain the canonical discussion locations.
Action required: a maintainer must make the convergence decision for the seven unresolved obligations—confirm they remain required or explicitly waive them—before another author-fix round proceeds.
Blocking findings:
- No new findings in this replacement review
Carried findings:
GATOR-e438dcf8-02: unconditional profile composition lacks an upgrade preflight for persisted conflicting policiesGATOR-dc5184a4-01: provider updates bypass authoritative profile credential validationGATOR-dc5184a4-02: new built-in IDs conflict with existing importedopenaiandanthropicprofilesGATOR-dc5184a4-03: adopting built-ins for legacy records can bind undeclared secrets to public endpointsGATOR-dc5184a4-04: the TUI profile picker truncates catalogs after the first 100 entriesGATOR-dc5184a4-05: alternate-upstream credentials can be substituted at fixed public-vendor endpointsGATOR-dc5184a4-06: canonical provider documentation and CLI skill references advertise rejected or obsolete creation behavior
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid implementation of accepted issue #1988; the PR author is a repository maintainer.
- Docs: Updated broadly, but the remaining authoritative-provider reference mismatch is tracked by
GATOR-dc5184a4-06. - Checks: Current-head test dispatch is deferred while blocking review obligations remain.
- E2E:
test:e2eis required for provider credential flow and sandbox policy behavior, but is not dispatched while review is blocked. - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized full-PR replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope explicitly invalidated for this rerun) - Review budget exhausted: yes
- Maintainer decision required: yes — seven concrete obligations remain unresolved and unwaived
- Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks John. At your request, I rebuilt this replacement initial review from the complete merge-base-to-head patch: all six commits and every changed file, not the latest TUI commit, prior findings, or an author-only delta. The independent pass revalidates seven existing obligations—two Critical and five Warning—finds no additional blockers, and does not reopen resolved findings. Existing Gator threads remain the canonical discussion locations.
Action required: a verified maintainer must confirm which of the seven concrete obligations remain required and explicitly waive any acceptable as implemented; the author can then address the required set in one convergence round.
Blocking findings:
- No new findings in this complete replacement review
Carried findings independently validated by the complete review:
GATOR-e438dcf8-02(Warning): preflight persisted sandboxes before unconditional provider composition activates previously dormant policy conflictsGATOR-dc5184a4-01(Warning): enforce authoritative profile credential rules at supported provider-update boundaries as well as creationGATOR-dc5184a4-02(Warning): preserve previously valid imported profiles when new built-ins claim the same IDsGATOR-dc5184a4-03(Critical): prevent automatic profile adoption from binding undeclared legacy secrets to newly authorized public endpointsGATOR-dc5184a4-04(Warning): retrieve every profile-catalog page before the authoritative TUI presents creation choicesGATOR-dc5184a4-05(Critical): prevent alternate-upstream credentials from receiving substitution authority at unrelated fixed public-vendor endpointsGATOR-dc5184a4-06(Warning): reconcile canonical provider documentation and CLI references with the profile types and credential-source behavior the implementation accepts
Non-blocking suggestions:
- None
Gator metadata
- Validation: Project-valid implementation of linked issue #1988; the PR author is a verified repository administrator.
- Docs: Broadly updated;
GATOR-dc5184a4-06tracks the remaining authoritative provider-reference mismatch. - Checks: Current-head
OpenShell / Branch Checksfails in Go SDK;OpenShell / Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green. - E2E:
test:e2eis required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review obligations are unresolved or unwaived. - Head SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57 - Base SHA:
572843baf8a68263dda80a46441d1697e201ba74 - Merge base SHA:
c3993426498d5b602ec080bc1d3cbad5e8460f4a - Patch ID:
7e5b2eef9a0bd663685a2933149fcb0b3196ff60 - Gator payload:
7 - Review mode:
initial(maintainer-authorized complete full-PR same-SHA replacement) - Previous reviewed SHA:
dc5184a4574fb76115e8c32982a0c02a1ddd8b57(prior scope explicitly invalidated for this rerun) - Review budget exhausted: yes in the historical ledger; this scope-correcting initial review was explicitly authorized
- Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
- Review telemetry: 3 finding-bearing rounds, 11 unique historical findings, 117 duplicate finding-ID occurrences, current patch matches the last review
- Next state:
gator:blocked - Blocked reason:
review_convergence_decision_required
Summary
Make provider profiles authoritative for new provider creation and discovery, removing the Providers v2 compatibility switch and legacy public provider workflows.
Related Issue
Closes #1988
Changes
providers_v2_enabledand always composes attached profile policy for sandbox-scoped policiesopenaiandanthropicprofiles and retires publicgeneric,gitlab,opencode, andoutlookselection/discoveryTesting
mise run cimise run testmise run e2e:rustmise run e2e:python(89 passed, 84 skipped)mise run docs:build:strictcargo test --manifest-path e2e/rust/Cargo.toml --all-features --no-runcargo test --manifest-path examples/governance-interceptor/Cargo.tomlChecklist