Skip to content

feat: canonical module path, public extension API, and embeddable bootstrap#457

Open
SantiagoDePolonia wants to merge 9 commits into
mainfrom
build/canonical-module-path
Open

feat: canonical module path, public extension API, and embeddable bootstrap#457
SantiagoDePolonia wants to merge 9 commits into
mainfrom
build/canonical-module-path

Conversation

@SantiagoDePolonia

Copy link
Copy Markdown
Contributor

What this does

Makes GoModel embeddable as a Go module and gives it a small, feature-neutral extension surface, so separate binaries can be built on top of the gateway (the open-source binary itself becomes a thin wrapper over the same API).

1. Canonical module path (build:)

Renames the module from gomodel to github.com/ENTERPILOT/GoModel — a pure mechanical rename of go.mod, all import paths, and version ldflags (Makefile, Dockerfile, goreleaser). This is what allows anyone to require github.com/ENTERPILOT/GoModel as a dependency. No behavior change.

2. Public ext package (feat:)

A registry where external modules register:

  • Request rewriters — receive the raw JSON body of POST /v1/chat/completions, /v1/messages, /v1/responses (subroutes excluded) after auth and before workflow resolution, so body rewrites (including model) affect routing, failover, guardrails, budgets, and caching. Fail-closed error semantics rendered in each endpoint's native error dialect.
  • Echo middleware (runs before gateway auth), extra routes, and auth-skip paths — the surface future SSO/OAuth-style extensions need.

An empty registry adds zero request overhead (the middleware isn't even registered), so the default build is unchanged.

3. Public run package (refactor:)

Extracts CLI parsing, logging setup, health/ready probes, provider registration, and the start/shutdown lifecycle from cmd/gomodel into an importable run.Run(ctx, run.Options), with a Setup hook that fires only when the process actually serves (keeps --version and Docker healthcheck probes silent). cmd/gomodel keeps byte-identical CLI behavior.

4. Audit request-revision chain (feat:)

Audit entries record an ingress rewrite trail: request_body stays the original client request, and a new request_revisions array captures one entry per rewriter that changed the body (name, sizes, optional rewriter detail, rewritten body when body logging is on) — mirroring the existing provider-attempts pattern. The dashboard's audit detail view renders these as "Rewritten" tabs between Request and Response.

Docs

docs/extensions.md documents the rewriter contract, embedding recipe, cross-module ldflags versioning, and Prometheus/config guidance.

Testing

  • Full unit suite, e2e (make test-e2e), dashboard JS tests (386), TestHotPathPerfGuard, and golangci-lint all green.
  • New table-driven tests: ext registry semantics, request-rewrite middleware (per-endpoint gating, chaining, fail-closed envelopes per dialect, >64KB/>1MB bodies, audit-keeps-original assertions for streaming and buffered paths), revision recording with and without body logging, run package CLI behavior.
  • Merged with latest main (labelling system, hot-path perf, failover fix); tagging package included in the rename, server.Config carries both Tagging and the extension fields.

🤖 Generated with Claude Code

SantiagoDePolonia and others added 9 commits July 1, 2026 22:13
Makes GoModel importable as a Go module (library embedding, separate
binaries built on top of the gateway). Pure mechanical rename: go.mod,
all import paths, and version ldflags in Makefile, Dockerfile, and
goreleaser config. No behavior change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds the gomodel ext package: a registry where external modules building
custom gateway binaries register raw-JSON request rewriters, Echo
middleware, extra routes, and auth-skip paths. Core will consume an
immutable snapshot at server construction; an empty registry adds zero
request overhead. No wiring yet — no behavior change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wires the ext registry into the server: request rewriters run on the raw
JSON body of POST /v1/chat/completions, /v1/messages, and /v1/responses
after authentication and before workflow resolution, so body rewrites
(including the model field) affect routing, failover, guardrails,
budgets, and caching. Rewriter errors fail closed; audit logs keep the
original client body. Extension middleware registers before gateway
auth, extension routes after core routes, and extension public paths
join the auth skip list. Nothing is registered when no extensions
exist, so the default build is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Moves the CLI parsing, logging setup, health/ready probes, default
provider registrations, and start/shutdown lifecycle from cmd/gomodel
into the importable run package. run.Run(ctx, run.Options) executes the
full gateway lifecycle and accepts an ext.Registry, a product name, and
a swagger-docs callback, so external modules can build custom gateway
binaries; run.ExitCode maps errors to process exit codes. cmd/gomodel
becomes a thin wrapper with identical CLI behavior; the swagger
build-tag pair stays in cmd and is passed in as a callback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lets embedders register extensions and validate product licensing once
the process is committed to serving, keeping --version and the
--health/--ready probe modes silent (Docker healthchecks run the binary
every few seconds).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every rewriter that changes a request body now appends a
request_revisions entry to the audit entry: sequence, rewriter name,
body sizes, an optional rewriter-provided change summary (new
ext.Result.Detail field), and the rewritten body when body logging is
enabled. RequestBody stays the original client request, so the original
plus the revision chain reconstruct the full transformation history the
same way provider attempts are tracked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Audit entries with request_revisions now render one 'Rewritten' tab per
revision between the Request and Response tabs: a 'What changed' summary
(rewriter, byte sizes, and the rewriter-provided detail) plus the
rewritten body when body logging captured it, with an explanatory notice
when it didn't. The Request tab keeps showing the original client body.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolves import-block conflicts from the module rename and applies the
canonical module path to the newly added tagging package; server.Config
keeps both the upstream Tagging field and the extension fields.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jul 2, 2026

Copy link
Copy Markdown

Too many files changed for review. (456 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 456 files, which is 306 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 254bd6d7-7ffa-4b39-bc2d-32192e3bc63d

📥 Commits

Reviewing files that changed from the base of the PR and between 4c8e0d7 and 36a8c74.

📒 Files selected for processing (456)
  • .goreleaser.yaml
  • Dockerfile
  • Makefile
  • cmd/gomodel/main.go
  • cmd/gomodel/swagger_enabled.go
  • config/budget.go
  • config/config.go
  • config/provider_models.go
  • config/provider_models_test.go
  • config/storage.go
  • config/tagging.go
  • docs/extensions.md
  • ext/ext.go
  • ext/registry.go
  • ext/registry_test.go
  • go.mod
  • internal/admin/dashboard/dashboard.go
  • internal/admin/dashboard/static/js/modules/audit-list.js
  • internal/admin/dashboard/static/js/modules/audit-list.test.cjs
  • internal/admin/dashboard/templates/audit-pane.html
  • internal/admin/errors.go
  • internal/admin/handler.go
  • internal/admin/handler_audit.go
  • internal/admin/handler_authkeys.go
  • internal/admin/handler_authkeys_test.go
  • internal/admin/handler_budgets.go
  • internal/admin/handler_budgets_test.go
  • internal/admin/handler_failover.go
  • internal/admin/handler_failover_test.go
  • internal/admin/handler_guardrails.go
  • internal/admin/handler_guardrails_test.go
  • internal/admin/handler_live.go
  • internal/admin/handler_live_test.go
  • internal/admin/handler_model_pricing_overrides.go
  • internal/admin/handler_model_pricing_overrides_test.go
  • internal/admin/handler_models.go
  • internal/admin/handler_models_test.go
  • internal/admin/handler_pricing_test.go
  • internal/admin/handler_providers.go
  • internal/admin/handler_providers_test.go
  • internal/admin/handler_tagging.go
  • internal/admin/handler_tagging_test.go
  • internal/admin/handler_test.go
  • internal/admin/handler_usage.go
  • internal/admin/handler_virtualmodels.go
  • internal/admin/handler_virtualmodels_test.go
  • internal/admin/handler_workflows.go
  • internal/admin/handler_workflows_test.go
  • internal/anthropicapi/errors.go
  • internal/anthropicapi/errors_test.go
  • internal/anthropicapi/request.go
  • internal/anthropicapi/request_test.go
  • internal/anthropicapi/response.go
  • internal/anthropicapi/response_test.go
  • internal/anthropicapi/stream.go
  • internal/app/app.go
  • internal/app/app_test.go
  • internal/app/runtime_refresh.go
  • internal/auditlog/auditlog.go
  • internal/auditlog/auditlog_test.go
  • internal/auditlog/entry_capture.go
  • internal/auditlog/entry_capture_test.go
  • internal/auditlog/factory.go
  • internal/auditlog/middleware.go
  • internal/auditlog/middleware_test.go
  • internal/auditlog/reader_factory.go
  • internal/auditlog/reader_helpers.go
  • internal/auditlog/reader_mongodb.go
  • internal/auditlog/reader_mongodb_test.go
  • internal/auditlog/reader_postgresql.go
  • internal/auditlog/reader_sqlite.go
  • internal/auditlog/stream_observer.go
  • internal/auditlog/user_path_filter.go
  • internal/auditlog/user_path_filter_test.go
  • internal/authkeys/factory.go
  • internal/authkeys/store.go
  • internal/authkeys/store_postgresql.go
  • internal/authkeys/store_sqlite.go
  • internal/batch/factory.go
  • internal/batch/store.go
  • internal/batch/store_memory_test.go
  • internal/batch/store_sqlite_test.go
  • internal/batch/store_test.go
  • internal/batchrewrite/helpers.go
  • internal/batchrewrite/helpers_test.go
  • internal/budget/factory.go
  • internal/budget/service_test.go
  • internal/budget/store_postgresql.go
  • internal/budget/store_sqlite.go
  • internal/budget/store_sqlite_test.go
  • internal/budget/types.go
  • internal/cache/modelcache/redis.go
  • internal/cache/modelcache/redis_test.go
  • internal/conversationstore/store.go
  • internal/conversationstore/store_memory.go
  • internal/conversationstore/store_memory_test.go
  • internal/embedding/embedding.go
  • internal/embedding/embedding_test.go
  • internal/failover/factory.go
  • internal/failover/factory_test.go
  • internal/failover/resolver.go
  • internal/failover/resolver_test.go
  • internal/failover/service.go
  • internal/failover/service_test.go
  • internal/filestore/factory.go
  • internal/gateway/attempts.go
  • internal/gateway/attempts_test.go
  • internal/gateway/batch_helpers.go
  • internal/gateway/batch_orchestrator.go
  • internal/gateway/batch_orchestrator_test.go
  • internal/gateway/batch_selection.go
  • internal/gateway/batch_usage.go
  • internal/gateway/batch_usage_test.go
  • internal/gateway/failover.go
  • internal/gateway/failover_test.go
  • internal/gateway/inference_execute.go
  • internal/gateway/inference_orchestrator.go
  • internal/gateway/inference_orchestrator_test.go
  • internal/gateway/inference_prepare.go
  • internal/gateway/interfaces.go
  • internal/gateway/model_helpers.go
  • internal/gateway/refactor_findings_test.go
  • internal/gateway/request_model_resolution.go
  • internal/gateway/request_model_resolution_test.go
  • internal/gateway/usage.go
  • internal/gateway/workflow_policy.go
  • internal/guardrails/batch_rewrite.go
  • internal/guardrails/batch_rewrite_test.go
  • internal/guardrails/chat_message_apply.go
  • internal/guardrails/clone.go
  • internal/guardrails/definitions.go
  • internal/guardrails/executor.go
  • internal/guardrails/factory.go
  • internal/guardrails/guardrails.go
  • internal/guardrails/llm_based_altering.go
  • internal/guardrails/llm_based_altering_test.go
  • internal/guardrails/provider_harness_test.go
  • internal/guardrails/provider_test.go
  • internal/guardrails/registry.go
  • internal/guardrails/responses_message_apply.go
  • internal/guardrails/service.go
  • internal/guardrails/service_test.go
  • internal/guardrails/store.go
  • internal/guardrails/store_mongodb.go
  • internal/guardrails/workflow_executor.go
  • internal/live/broker.go
  • internal/live/broker_test.go
  • internal/llmclient/client.go
  • internal/llmclient/client_test.go
  • internal/modeldata/enricher.go
  • internal/modeldata/enricher_test.go
  • internal/modeldata/merge.go
  • internal/modeldata/merge_test.go
  • internal/modeldata/merger.go
  • internal/modeldata/merger_test.go
  • internal/modeldata/types.go
  • internal/modelselectors/selectors.go
  • internal/observability/metrics.go
  • internal/observability/metrics_test.go
  • internal/pricingoverrides/factory.go
  • internal/pricingoverrides/pricing.go
  • internal/pricingoverrides/resolver.go
  • internal/pricingoverrides/service.go
  • internal/pricingoverrides/service_test.go
  • internal/pricingoverrides/snapshot.go
  • internal/pricingoverrides/store.go
  • internal/pricingoverrides/types.go
  • internal/providers/anthropic/anthropic.go
  • internal/providers/anthropic/anthropic_test.go
  • internal/providers/anthropic/batch.go
  • internal/providers/anthropic/chat.go
  • internal/providers/anthropic/chat_stream.go
  • internal/providers/anthropic/passthrough_semantics.go
  • internal/providers/anthropic/passthrough_semantics_test.go
  • internal/providers/anthropic/request_translation.go
  • internal/providers/anthropic/responses.go
  • internal/providers/auth_headers.go
  • internal/providers/auth_headers_test.go
  • internal/providers/azure/azure.go
  • internal/providers/azure/azure_test.go
  • internal/providers/azure/realtime.go
  • internal/providers/azure/realtime_test.go
  • internal/providers/bailian/bailian.go
  • internal/providers/bailian/bailian_test.go
  • internal/providers/bailian/realtime.go
  • internal/providers/bailian/realtime_test.go
  • internal/providers/batch_identity.go
  • internal/providers/batch_identity_test.go
  • internal/providers/batch_results_file_adapter.go
  • internal/providers/batch_results_file_adapter_test.go
  • internal/providers/bedrock/bedrock.go
  • internal/providers/bedrock/bedrock_test.go
  • internal/providers/bedrock/chat.go
  • internal/providers/bedrock/chat_stream.go
  • internal/providers/config.go
  • internal/providers/config_test.go
  • internal/providers/configured_models.go
  • internal/providers/configured_models_test.go
  • internal/providers/deepseek/deepseek.go
  • internal/providers/deepseek/deepseek_test.go
  • internal/providers/deepseek/passthrough_semantics.go
  • internal/providers/deepseek/passthrough_semantics_test.go
  • internal/providers/factory.go
  • internal/providers/factory_test.go
  • internal/providers/file_adapter_openai_compat.go
  • internal/providers/file_adapter_openai_compat_test.go
  • internal/providers/gemini/gemini.go
  • internal/providers/gemini/gemini_test.go
  • internal/providers/gemini/native.go
  • internal/providers/gemini/native_stream.go
  • internal/providers/groq/groq.go
  • internal/providers/groq/groq_test.go
  • internal/providers/init.go
  • internal/providers/init_test.go
  • internal/providers/minimax/minimax.go
  • internal/providers/minimax/minimax_test.go
  • internal/providers/ollama/ollama.go
  • internal/providers/ollama/ollama_test.go
  • internal/providers/openai/audio.go
  • internal/providers/openai/audio_test.go
  • internal/providers/openai/chat_compatible.go
  • internal/providers/openai/compatible_provider.go
  • internal/providers/openai/compatible_provider_test.go
  • internal/providers/openai/openai.go
  • internal/providers/openai/openai_test.go
  • internal/providers/openai/passthrough_semantics.go
  • internal/providers/openai/passthrough_semantics_test.go
  • internal/providers/openai/realtime.go
  • internal/providers/openai/realtime_test.go
  • internal/providers/opencodego/opencodego.go
  • internal/providers/opencodego/opencodego_test.go
  • internal/providers/openrouter/openrouter.go
  • internal/providers/openrouter/openrouter_test.go
  • internal/providers/oracle/oracle.go
  • internal/providers/oracle/oracle_test.go
  • internal/providers/passthrough.go
  • internal/providers/realtime_url.go
  • internal/providers/reasoning_effort.go
  • internal/providers/reasoning_effort_test.go
  • internal/providers/registry.go
  • internal/providers/registry_cache.go
  • internal/providers/registry_cache_test.go
  • internal/providers/registry_init.go
  • internal/providers/registry_metadata.go
  • internal/providers/registry_metadata_override_test.go
  • internal/providers/registry_pricing_merge.go
  • internal/providers/registry_provider_refresh.go
  • internal/providers/registry_race_test.go
  • internal/providers/registry_test.go
  • internal/providers/resolve_bench_test.go
  • internal/providers/responses_adapter.go
  • internal/providers/responses_adapter_test.go
  • internal/providers/responses_content.go
  • internal/providers/responses_converter.go
  • internal/providers/responses_input.go
  • internal/providers/responses_output.go
  • internal/providers/router.go
  • internal/providers/router_realtime_test.go
  • internal/providers/router_test.go
  • internal/providers/vertex/vertex.go
  • internal/providers/vertex/vertex_test.go
  • internal/providers/vllm/passthrough_semantics.go
  • internal/providers/vllm/vllm.go
  • internal/providers/vllm/vllm_test.go
  • internal/providers/xai/realtime.go
  • internal/providers/xai/realtime_test.go
  • internal/providers/xai/xai.go
  • internal/providers/xai/xai_test.go
  • internal/providers/xiaomi/audio.go
  • internal/providers/xiaomi/audio_test.go
  • internal/providers/xiaomi/xiaomi.go
  • internal/providers/xiaomi/xiaomi_test.go
  • internal/providers/zai/realtime.go
  • internal/providers/zai/realtime_test.go
  • internal/providers/zai/zai.go
  • internal/providers/zai/zai_test.go
  • internal/realtime/proxy_test.go
  • internal/responsecache/handle_request_test.go
  • internal/responsecache/middleware_test.go
  • internal/responsecache/readiness_test.go
  • internal/responsecache/responsecache.go
  • internal/responsecache/semantic.go
  • internal/responsecache/semantic_test.go
  • internal/responsecache/simple.go
  • internal/responsecache/stream_cache.go
  • internal/responsecache/stream_cache_chat.go
  • internal/responsecache/usage_hit.go
  • internal/responsecache/vecstore.go
  • internal/responsecache/vecstore_pgvector.go
  • internal/responsecache/vecstore_pinecone.go
  • internal/responsecache/vecstore_qdrant.go
  • internal/responsecache/vecstore_weaviate.go
  • internal/responsestore/store.go
  • internal/responsestore/store_memory_test.go
  • internal/server/audio_service.go
  • internal/server/audio_service_test.go
  • internal/server/audit_attempts.go
  • internal/server/auth.go
  • internal/server/auth_test.go
  • internal/server/base_path.go
  • internal/server/batch_input_file_resolver.go
  • internal/server/batch_request_preparer.go
  • internal/server/batch_request_preparer_test.go
  • internal/server/budget_support.go
  • internal/server/budget_support_test.go
  • internal/server/conversation_handlers_test.go
  • internal/server/conversation_responses.go
  • internal/server/conversation_responses_test.go
  • internal/server/error_support.go
  • internal/server/error_support_test.go
  • internal/server/exposed_model_lister.go
  • internal/server/failover_test.go
  • internal/server/handlers.go
  • internal/server/handlers_test.go
  • internal/server/http.go
  • internal/server/http_test.go
  • internal/server/internal_chat_completion_executor.go
  • internal/server/internal_chat_completion_executor_test.go
  • internal/server/messages_handler.go
  • internal/server/messages_handler_test.go
  • internal/server/model_access.go
  • internal/server/model_validation.go
  • internal/server/model_validation_test.go
  • internal/server/native_batch_service.go
  • internal/server/native_batch_support.go
  • internal/server/native_batch_support_test.go
  • internal/server/native_conversation_service.go
  • internal/server/native_file_service.go
  • internal/server/native_response_service.go
  • internal/server/native_response_service_test.go
  • internal/server/passthrough_execution_helpers.go
  • internal/server/passthrough_execution_helpers_test.go
  • internal/server/passthrough_provider_resolution.go
  • internal/server/passthrough_semantic_enrichment.go
  • internal/server/passthrough_semantic_enrichment_test.go
  • internal/server/passthrough_service.go
  • internal/server/passthrough_support.go
  • internal/server/passthrough_support_test.go
  • internal/server/realtime_service.go
  • internal/server/request_model_resolution.go
  • internal/server/request_model_resolution_test.go
  • internal/server/request_rewrite.go
  • internal/server/request_rewrite_test.go
  • internal/server/request_selector_peek.go
  • internal/server/request_selector_peek_test.go
  • internal/server/request_snapshot.go
  • internal/server/request_snapshot_test.go
  • internal/server/request_support.go
  • internal/server/response_input_items.go
  • internal/server/response_input_items_test.go
  • internal/server/semantic_requests.go
  • internal/server/semantic_requests_test.go
  • internal/server/tagging.go
  • internal/server/tagging_test.go
  • internal/server/translated_inference_service.go
  • internal/server/translated_request_patcher.go
  • internal/server/usage_logger_test.go
  • internal/server/workflow_helpers.go
  • internal/server/workflow_helpers_test.go
  • internal/server/workflow_policy.go
  • internal/server/workflow_policy_test.go
  • internal/tagging/factory.go
  • internal/tagging/tagging.go
  • internal/usage/audio.go
  • internal/usage/audio_test.go
  • internal/usage/cache_type.go
  • internal/usage/cost.go
  • internal/usage/cost_test.go
  • internal/usage/dashboard_cost_validation_test.go
  • internal/usage/extractor.go
  • internal/usage/extractor_test.go
  • internal/usage/factory.go
  • internal/usage/pricing.go
  • internal/usage/reader_helpers.go
  • internal/usage/reader_postgresql.go
  • internal/usage/reader_sqlite.go
  • internal/usage/realtime.go
  • internal/usage/realtime_test.go
  • internal/usage/recalculate_pricing.go
  • internal/usage/recalculate_pricing_mongodb_test.go
  • internal/usage/recalculate_pricing_postgresql.go
  • internal/usage/recalculate_pricing_sqlite.go
  • internal/usage/recalculate_pricing_sqlite_test.go
  • internal/usage/recalculate_pricing_test.go
  • internal/usage/stream_observer.go
  • internal/usage/stream_observer_test.go
  • internal/usage/user_path_filter.go
  • internal/virtualmodels/authorize.go
  • internal/virtualmodels/balancer.go
  • internal/virtualmodels/balancer_test.go
  • internal/virtualmodels/batch_preparer.go
  • internal/virtualmodels/batch_preparer_test.go
  • internal/virtualmodels/config.go
  • internal/virtualmodels/config_overlay_test.go
  • internal/virtualmodels/factory.go
  • internal/virtualmodels/helpers_test.go
  • internal/virtualmodels/provider.go
  • internal/virtualmodels/provider_test.go
  • internal/virtualmodels/rename_test.go
  • internal/virtualmodels/resolve.go
  • internal/virtualmodels/seed.go
  • internal/virtualmodels/seed_test.go
  • internal/virtualmodels/service.go
  • internal/virtualmodels/service_test.go
  • internal/virtualmodels/snapshot.go
  • internal/virtualmodels/types.go
  • internal/virtualmodels/validation.go
  • internal/workflows/compiler.go
  • internal/workflows/compiler_test.go
  • internal/workflows/factory.go
  • internal/workflows/service.go
  • internal/workflows/service_test.go
  • internal/workflows/store.go
  • internal/workflows/types.go
  • internal/workflows/view.go
  • run/flags.go
  • run/flags_test.go
  • run/health.go
  • run/health_test.go
  • run/lifecycle_test.go
  • run/logging.go
  • run/logging_test.go
  • run/providers.go
  • run/ready_test.go
  • run/run.go
  • run/run_test.go
  • tests/contract/anthropic_test.go
  • tests/contract/gemini_test.go
  • tests/contract/groq_test.go
  • tests/contract/openai_audio_test.go
  • tests/contract/openai_test.go
  • tests/contract/replay_provider_helpers_test.go
  • tests/contract/usage_contract_test.go
  • tests/contract/xai_test.go
  • tests/e2e/admin_test.go
  • tests/e2e/auditlog_test.go
  • tests/e2e/auth_test.go
  • tests/e2e/budget_test.go
  • tests/e2e/chat_test.go
  • tests/e2e/helpers_test.go
  • tests/e2e/main_test.go
  • tests/e2e/mock_provider.go
  • tests/e2e/responses_test.go
  • tests/e2e/setup_test.go
  • tests/integration/admin_test.go
  • tests/integration/auditlog_test.go
  • tests/integration/budget_test.go
  • tests/integration/dbassert/auditlog.go
  • tests/integration/dbassert/budget.go
  • tests/integration/dbassert/fields.go
  • tests/integration/helpers_test.go
  • tests/integration/setup_test.go
  • tests/integration/usage_test.go
  • tests/integration/workflows_guardrails_test.go
  • tests/perf/hotpath_test.go
  • tests/stress/stress_test.go

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/canonical-module-path

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 0% with 20 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/auditlog/middleware.go 0.00% 10 Missing ⚠️
cmd/gomodel/main.go 0.00% 5 Missing ⚠️
internal/app/app.go 0.00% 5 Missing ⚠️

📢 Thoughts on this report? Let us know!

@mintlify

mintlify Bot commented Jul 2, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
gomodel 🟢 Ready View Preview Jul 2, 2026, 4:07 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants