You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Remove the inference provider table and provider profile telemetry buckets #3906
As a contributor, I want to add an example provider profile by contributing a reviewed YAML file, without registering its ID in product code or maintaining provider specific documentation.
Problem Statement
The inference provider table duplicates information in example profiles and requires a new row for each contribution. Provider lifecycle telemetry maintains named profile buckets even though gateways have no built-in profiles. A bucket identifies a profile ID, not the definition an operator imported.
Impact / Why This Matters
Contributors are led to change docs, telemetry code, and tests for a sample YAML. Operators may mistake the table for the profiles available on their gateway. Continuing to extend these lists adds maintenance without making either one authoritative.
Proposed Design
Remove the inference provider table and direct readers to the example profile directory and openshell profile list. Remove all named provider profile telemetry buckets, the ID-to-bucket mapping, and the providerProfile field from newly emitted provider lifecycle events. Keep the event's operation and outcome.
Alternatives Considered
Keep the named buckets: they remain misleading when operators can import modified profiles under the same IDs. Emit raw profile IDs: that could disclose operator-defined names.
Acceptance Criteria
The inference provider table is removed; the docs explain where to find examples and how to list imported profiles.
Provider lifecycle events emit no profile identity or bucket, while retaining operation and outcome.
The profile bucket enum, server mapping, and associated tests are removed or updated.
Downstream collectors and reports accept both historical events with providerProfile and new events without it.
Telemetry documentation reflects the new event contents.
Adding an example provider profile requires no telemetry or provider-table changes.
Issue type:refactor Complexity: Medium Confidence: High — in-repository path is clear; downstream collector ownership is external
Summary
Remove the provider-profile identity dimension from provider lifecycle telemetry while retaining operation and outcome. Remove the static inference provider table and point readers to example YAML and the imported-profile listing command.
Scope
crates/openshell-core/src/telemetry.rs: remove the profile bucket enum and providerProfile event property; preserve the provider lifecycle event and adjust tests.
crates/openshell-server/src/grpc/provider.rs: emit create, update, and delete lifecycle events without looking up or mapping profile IDs; remove bucket-specific tests.
docs/how-it-works/providers/overview.mdx: remove the inference provider table and keep links to example profiles and the profile listing command.
docs/observability/telemetry.mdx: describe provider lifecycle operation/outcome without profile buckets.
Implementation Steps
Remove core profile buckets and update the provider lifecycle event shape and focused tests.
Simplify server call sites while preserving create, update, and delete outcomes; remove bucket-only tests.
Remove the docs table and update the published telemetry description.
Run focused tests, the repository test suite, pre-commit checks, and CI validation before opening a PR.
Test Plan
Unit tests: Verify the provider lifecycle event contains operation and outcome without providerProfile; compile and run with telemetry enabled and disabled. Run existing server provider tests after call-site changes.
Integration tests: N/A; event emission is a local helper and no collector implementation lives in this repository.
E2E tests: N/A; no sandbox, policy, infrastructure, or e2e test files change.
Risks & Open Questions
The external telemetry collector or report generator may require providerProfile. The repository has only historical Markdown reports and no collector schema or query. Ask the telemetry owner to confirm mixed old/new event compatibility; preserve historical reports. Do not emit a placeholder profile identity because the issue requires removing this dimension.
Documentation Impact
Update the providers overview and published telemetry page. Current main has no architecture/ directory; no gateway TOML, Helm, or SDK documentation changes apply.
Revision 2 — removed architecture file scope because current main has no architecture/ directory Revision 1 — initial plan
Removed the static inference provider table, named provider-profile telemetry buckets, and providerProfile from newly emitted provider lifecycle events. Create, update, and delete operation/outcome telemetry remains.
Verification: focused core and server tests, mise run pre-commit, and mise run ci passed. Published providers and telemetry docs were updated.
The remaining acceptance check is external: the telemetry collector/report owner should confirm that old events with providerProfile and new events without it are both accepted. The PR is draft and does not auto-close this issue until that check is complete.
This issue has had no activity for 14 days and is now marked stale. It may be closed in 14 days if there is no further activity. Comment or remove the state:stale label to keep it open.
Activity
feat(providers): add OCI Generative AI example provider profile
johntmyers commentedon Sep 29, 2026
Implementation Plan
Issue type:
refactorComplexity: Medium
Confidence: High — in-repository path is clear; downstream collector ownership is external
Summary
Remove the provider-profile identity dimension from provider lifecycle telemetry while retaining operation and outcome. Remove the static inference provider table and point readers to example YAML and the imported-profile listing command.
Scope
crates/openshell-core/src/telemetry.rs: remove the profile bucket enum andproviderProfileevent property; preserve the provider lifecycle event and adjust tests.crates/openshell-server/src/grpc/provider.rs: emit create, update, and delete lifecycle events without looking up or mapping profile IDs; remove bucket-specific tests.docs/how-it-works/providers/overview.mdx: remove the inference provider table and keep links to example profiles and the profile listing command.docs/observability/telemetry.mdx: describe provider lifecycle operation/outcome without profile buckets.Implementation Steps
Test Plan
providerProfile; compile and run with telemetry enabled and disabled. Run existing server provider tests after call-site changes.Risks & Open Questions
providerProfile. The repository has only historical Markdown reports and no collector schema or query. Ask the telemetry owner to confirm mixed old/new event compatibility; preserve historical reports. Do not emit a placeholder profile identity because the issue requires removing this dimension.Documentation Impact
mainhas noarchitecture/directory; no gateway TOML, Helm, or SDK documentation changes apply.Revision 2 — removed architecture file scope because current
mainhas noarchitecture/directoryRevision 1 — initial plan
feat(providers): add OCI Generative AI example provider profile (#3904)
johntmyers commentedon Sep 29, 2026
Implementation Ready for Review
Draft PR: #3914
Removed the static inference provider table, named provider-profile telemetry buckets, and
providerProfilefrom newly emitted provider lifecycle events. Create, update, and delete operation/outcome telemetry remains.Verification: focused core and server tests,
mise run pre-commit, andmise run cipassed. Published providers and telemetry docs were updated.The remaining acceptance check is external: the telemetry collector/report owner should confirm that old events with
providerProfileand new events without it are both accepted. The PR is draft and does not auto-close this issue until that check is complete.github-actions commentedon Oct 14, 2026
This issue has had no activity for 14 days and is now marked stale. It may be closed in 14 days if there is no further activity. Comment or remove the state:stale label to keep it open.