Skip to content

refactor: use different naming#137

Merged
giorgi-pro merged 7 commits intomainfrom
refactor/introduce_simpler_naming
Mar 13, 2026
Merged

refactor: use different naming#137
giorgi-pro merged 7 commits intomainfrom
refactor/introduce_simpler_naming

Conversation

@giorgi-pro
Copy link
Copy Markdown
Collaborator

@giorgi-pro giorgi-pro commented Mar 12, 2026

Naming Review (ADR-0002 Refactor Concepts)

This document summarizes proposed renames for the new concepts introduced by the ADR-0002 refactor (ingress snapshot + semantic extraction + passthrough). Goal: names that are easier to guess from first principles and communicate scope/lifecycle.

Transport Capture (as received at HTTP boundary)

Current Proposed Rationale
IngressFrame RequestSnapshot "Snapshot" communicates immutable capture; "frame" is ambiguous in HTTP contexts; "ingress" is widely associated with Kubernetes and can be misleading in a non-K8s-specific gateway.
NewIngressFrame(...) NewRequestSnapshot(...) Matches the type rename.
IngressCapture() (middleware) CaptureRequestSnapshot() or RequestSnapshotMiddleware() Makes it obvious this is middleware that captures transport.
RawBodyTooLarge BodyNotCaptured or BodyTruncated Expresses the behavior directly.
GetRawBody() CapturedBody() or BodyBytes() “Raw” is less helpful than “captured”.

Derived Meaning (gateway interpretation)

Current Proposed Rationale
SemanticEnvelope RequestSemantics Reads as "what the gateway thinks this request means" rather than a generic wrapper.
BuildSemanticEnvelope(...) DeriveRequestSemantics(...) "Derive" conveys best-effort extraction from a snapshot.
SelectorHints RoutingHints or RouteHints These are routing-relevant hints, not canonical selectors.
Dialect RouteKind or APIDialect "Dialect" is jargon; make the axis explicit.
Operation OperationKind or EndpointKind Clarifies this is a classification.
JSONBodyParsed SelectorHintsFromJSON (or similar) Current name suggests full JSON parse; reality is partial selector extraction.

Route-Specific Sparse Metadata

Current Proposed Rationale
FileRequestSemantic FileRouteInfo or FileRouteSemantics It’s transport-derived route metadata, not the full request body.
BatchRequestSemantic BatchRouteInfo or BatchRouteSemantics Same reasoning as files.
BuildFileRequestSemanticFromTransport DeriveFileRouteInfoFromTransport Prefer consistent "Derive ... FromTransport" pattern.
BuildBatchRequestSemanticFromTransport DeriveBatchRouteInfoFromTransport Ditto.
CacheFileRequestSemantic CacheFileRouteInfo Align cache naming with struct naming.

Canonical Decode + Caching

Current Proposed Rationale
cachedValues cache Short and conventional.
CachedCanonicalSelector() CanonicalSelectorFromCachedRequest() Makes the dependency (cached canonical decode) explicit.

Passthrough

Current Proposed Rationale
PassthroughRoutableProvider PassthroughRouter or RoutablePassthrough Reduces wordiness; clearer role.

Config (external surface)

Current Proposed Rationale
EnableProviderPassthrough EnablePassthroughRoutes Users care about routes, not “provider-ness”.
SupportedPassthroughProviders AllowedPassthroughProviders "Allowed" reads like an allowlist.
NormalizePassthroughV1Prefix AllowPassthroughV1Alias Expresses behavior (alias support) over implementation (normalization).

Proposed Convention (so names stay predictable)

  • Transport capture types start with Request... and use “Snapshot/Capture”.
  • Derived meaning types use “Semantics” (not “Envelope”).
  • Partial/heuristic values are “Hints”; canonical values are “Selector/Canonical”.
  • Transport-derived sparse structs are ...RouteInfo.

Summary by CodeRabbit

  • Configuration Changes

    • Passthrough config keys renamed (enable_provider_passthrough → enable_passthrough_routes, normalize_passthrough_v1_prefix → allow_passthrough_v1_alias, supported_passthrough_providers → enabled_passthrough_providers). Added ENABLED_PASSTHROUGH_PROVIDERS (comma-separated list) and preserved prior defaults/semantics.
  • Documentation

    • README, docs and API descriptions updated to reflect the new passthrough flag names and provider enablement wording.

@giorgi-pro giorgi-pro marked this pull request as draft March 12, 2026 19:08
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 12, 2026

Warning

Rate limit exceeded

@giorgi-pro has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 4 minutes and 46 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 50fddbaf-42f0-4b2c-ac3c-940ca7fe5d79

📥 Commits

Reviewing files that changed from the base of the PR and between e9b9231 and 508b9f6.

📒 Files selected for processing (10)
  • .env.template
  • CLAUDE.md
  • README.md
  • cmd/gomodel/docs/docs.go
  • config/config.go
  • docs/adr/0002-ingress-frame-and-semantic-envelope.md
  • internal/auditlog/middleware.go
  • internal/core/context.go
  • internal/server/handlers.go
  • internal/server/handlers_test.go
📝 Walkthrough

Walkthrough

Renames passthrough config keys and adds ENABLED_PASSTHROUGH_PROVIDERS; replaces transport/semantic carriers and many semantic types: IngressFrame → RequestSnapshot, SemanticEnvelope → WhiteBoxPrompt, SelectorHints → RouteHints, Batch/File semantics → RouteInfo; updates code, tests, docs, and swagger to match renamed APIs and env keys.

Changes

Cohort / File(s) Summary
Config & env
/.env.template, config/config.example.yaml, config/config.go, CLAUDE.md
Renamed passthrough env/config keys (ENABLE_PROVIDER_PASSTHROUGHENABLE_PASSTHROUGH_ROUTES, NORMALIZE_PASSTHROUGH_V1_PREFIXALLOW_PASSTHROUGH_V1_ALIAS) and added ENABLED_PASSTHROUGH_PROVIDERS (comma list). Updated defaults, YAML/env tags, and examples.
Docs & API spec
README.md, cmd/gomodel/docs/docs.go, cmd/gomodel/docs/swagger.json
Updated documentation and swagger descriptions to reference new passthrough flag names and added options (ALLOW_PASSTHROUGH_V1_ALIAS, ENABLED_PASSTHROUGH_PROVIDERS).
Core: request snapshot & context
internal/core/request_snapshot.go, internal/core/request_snapshot_test.go, internal/core/context.go
Renamed transport carrier and context helpers: IngressFrameRequestSnapshot (rawBody→capturedBody, RawBodyTooLarge→BodyNotCaptured). Replaced With/GetIngressFrame with With/GetRequestSnapshot.
Core: semantics & routing
internal/core/semantic.go, internal/core/semantic_canonical.go, internal/core/semantic_canonical_test.go, internal/core/semantic_test.go
Renamed SemanticEnvelopeWhiteBoxPrompt, SelectorHintsRouteHints; renamed methods/receivers and many decode/cache helpers to use WhiteBoxPrompt and new route-info types.
Core: route-info & passthrough
internal/core/batch.go, internal/core/files.go, internal/core/passthrough.go
Renamed BatchRequestSemanticBatchRouteInfo, FileRequestSemanticFileRouteInfo; interface PassthroughRoutableProviderRoutablePassthrough and Passthrough now accepts providerType param; extended multipart reader interface.
Server: middleware & snapshot capture
internal/server/request_snapshot.go, internal/server/request_snapshot_test.go, internal/server/http.go, internal/server/http_test.go
Ingress capture middleware renamed to RequestSnapshotCapture; pipeline and wiring now use RequestSnapshot and WhiteBoxPrompt; config wiring uses renamed fields (DisableProviderPassthrough→DisablePassthroughRoutes, SupportedPassthroughProviders→EnabledPassthroughProviders, EnablePassthroughV1PrefixNormalization→AllowPassthroughV1Alias).
Server: handlers & semantic helpers
internal/server/handlers.go, internal/server/handlers_test.go, internal/server/semantic_requests.go, internal/server/semantic_requests_test.go
Renamed helpers to WhiteBoxPrompt variants (e.g., ensureSemanticEnvelope→ensureWhiteBoxPrompt), updated canonical/file/batch helper names and enabled-passthrough provider handling, and switched semantic retrieval to GetWhiteBoxPrompt.
App, guardrails & audit
internal/app/app.go, internal/guardrails/provider.go, internal/auditlog/middleware.go, internal/auditlog/auditlog_test.go
Updated initialization and provider assertions to new passthrough naming and RoutablePassthrough interface; auditlog code/tests switched to RequestSnapshot/WhiteBoxPrompt accessors.
Tests (widespread)
internal/**/_test.go (many files)
Extensive test updates to reflect renamed types, constructors, accessors, helper names, and adjusted assertions across the codebase (RequestSnapshot, WhiteBoxPrompt, RouteHints, RouteInfo, enabled passthrough provider names).

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

enhancement

Suggested reviewers

  • SantiagoDePolonia

Poem

🐇 I hopped through snapshots, soft and bright,
I swapped frames for prompts beneath the light,
Hints now route where names once slept,
Providers listed, configs kept,
A tidy rename — the code feels light. ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 23.48% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'refactor: use different naming' is vague and generic, describing a refactoring activity without specifying what naming changes are being introduced or their purpose. Consider a more specific title like 'refactor: rename IngressFrame to RequestSnapshot and SemanticEnvelope to WhiteBoxPrompt' or 'refactor: introduce clearer naming for transport capture and semantics' to better communicate the primary changes.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/introduce_simpler_naming
📝 Coding Plan
  • Generate coding plan for human review comments

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 and usage tips.

@SantiagoDePolonia
Copy link
Copy Markdown
Contributor

SantiagoDePolonia commented Mar 13, 2026

Current Proposed Thoughts/Decision
IngressFrame RequestSnapshot It's fine, but... WDYT about... IngressFrame -> PromptBlackBox and SemanticEnvelop -> PromptWhiteBox ? It will be more domain driven - the users send prompts.

| IngressCapture() (middleware) | CaptureRequestSnapshot() or RequestSnapshotMiddleware() | PromptBlackBox(Capture)Middleware ? |
| RawBodyTooLarge | BodyNotCaptured or BodyTruncated | RawBodyTooLargeTooHandle ? :) |
| GetRawBody() | CapturedBody() or BodyBytes() | "Raw" means that it wasn't preprocessed or modified in any way. CapturedBody suggests that it could be modified before capture. |

Derived Meaning (gateway interpretation)

Current Proposed Thoughts/Decision
SemanticEnvelope RequestSemantics RequestSemantics is fine, but WDYT about WhiteBoxPrompt (so, we understand what it's inside more and we can somehow preprocess it. WhiteBoxPrompt is more funny and simpler IMHO)
BuildSemanticEnvelope(...) DeriveRequestSemantics(...) As above
SelectorHints RoutingHints or RouteHints Not sure what it does. Both are fine for me.
Dialect RouteKind or APIDialect Maybe just type? Yes, dialect might me kind of overcomplicated.
Operation OperationKind or EndpointKind Operation or OperationKind/Type -> Both are fine
JSONBodyParsed SelectorHintsFromJSON (or similar) I would keep JSONBodyParsed. It's a flag with true/false values.

Route-Specific Sparse Metadata

Current Proposed Thoughts/Decision
FileRequestSemantic FileRouteInfo or FileRouteSemantics Ok
BatchRequestSemantic BatchRouteInfo or BatchRouteSemantics Ok
BuildFileRequestSemanticFromTransport DeriveFileRouteInfoFromTransport Ok
BuildBatchRequestSemanticFromTransport DeriveBatchRouteInfoFromTransport Ok
CacheFileRequestSemantic CacheFileRouteInfo Ok

Canonical Decode + Caching

Current Proposed Thoughts/Decision
cachedValues cache Ok
CachedCanonicalSelector() CanonicalSelectorFromCachedRequest() Ok

Passthrough

Current Proposed Thoughts/Decision
PassthroughRoutableProvider PassthroughRouter or RoutablePassthrough RoutablePassthrough? -> sounds ok

Config (external surface)

Current Proposed Thoughts/Decision
EnableProviderPassthrough EnablePassthroughRoutes Approved
SupportedPassthroughProviders AllowedPassthroughProviders EnabledPassthroughProviders ?
NormalizePassthroughV1Prefix AllowPassthroughV1Alias Approved

@giorgi-pro giorgi-pro marked this pull request as ready for review March 13, 2026 17:05
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (10)
internal/server/handlers_test.go (2)

761-833: 🧹 Nitpick | 🔵 Trivial

Test name inconsistency with new naming convention.

The test function TestChatCompletion_UsesIngressFrameForDecoding still references the old "IngressFrame" terminology while the implementation now uses NewRequestSnapshot. Consider renaming to TestChatCompletion_UsesRequestSnapshotForDecoding for consistency with the refactor.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/handlers_test.go` around lines 761 - 833, Rename the test
function TestChatCompletion_UsesIngressFrameForDecoding to use the new naming
convention (e.g., TestChatCompletion_UsesRequestSnapshotForDecoding) so it
matches the refactor that replaced "IngressFrame" with NewRequestSnapshot;
update the test function identifier and any references to the old name (in this
file's test definition) to the new name, leaving the test body and assertions
(provider, frame creation via core.NewRequestSnapshot, and semantics checks)
unchanged.

915-982: 🧹 Nitpick | 🔵 Trivial

Test names reference old terminology.

Similar to the chat completions test, these test functions still reference "IngressFrame" in their names:

  • TestResponses_UsesIngressFrameForDecoding (Line 915)
  • TestEmbeddings_UsesIngressFrameForDecoding (Line 984)
  • TestBatches_UsesIngressFrameForDecoding (Line 1050)
  • TestGetBatch_UsesSemanticEnvelopeRouteMetadata (Line 1130)
  • TestListBatches_UsesSemanticEnvelopeQueryMetadata (Line 1176)

Consider renaming these to use "RequestSnapshot" and "RequestSemantics" terminology for consistency. The implementation code itself is correct.

Also applies to: 984-1048, 1050-1128, 1130-1174

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/handlers_test.go` around lines 915 - 982, Rename the tests
that still reference old "IngressFrame" terminology to use "RequestSnapshot" and
"RequestSemantics" as suggested: change
TestResponses_UsesIngressFrameForDecoding ->
TestResponses_UsesRequestSnapshotForDecoding,
TestEmbeddings_UsesIngressFrameForDecoding ->
TestEmbeddings_UsesRequestSnapshotForDecoding,
TestBatches_UsesIngressFrameForDecoding ->
TestBatches_UsesRequestSnapshotForDecoding,
TestGetBatch_UsesSemanticEnvelopeRouteMetadata ->
TestGetBatch_UsesRequestSemanticsRouteMetadata, and
TestListBatches_UsesSemanticEnvelopeQueryMetadata ->
TestListBatches_UsesRequestSemanticsQueryMetadata; update the function names and
any internal references/calls to those symbols (test function identifiers and
any t.Run strings or comments) so names are consistent while leaving test logic
unchanged.
internal/server/semantic_requests_test.go (8)

230-257: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestFileRequestFromSemanticEnvelope_InvalidLimitFromIngressReturnsError.

Consider renaming to TestFileRouteInfoFromSemantics_InvalidLimitReturnsError. "Ingress" terminology could be updated to "Snapshot" or removed.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 230 - 257, Rename the
test function
TestFileRequestFromSemanticEnvelope_InvalidLimitFromIngressReturnsError to
TestFileRouteInfoFromSemantics_InvalidLimitReturnsError to match naming
conventions and the function under test (fileRouteInfoFromSemantics); update the
test function declaration accordingly and any references to it so the name no
longer uses "Ingress" or "Envelope" and instead reflects
"RouteInfoFromSemantics" and "InvalidLimit".

109-137: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestCanonicalJSONRequestFromSemanticEnvelope_FallsBackToLiveBodyWhenIngressBodyMissing.

Consider renaming to use "Semantics" instead of "SemanticEnvelope". The phrase "IngressBody" could also be updated to "SnapshotBody" or "CapturedBody" for full consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 109 - 137, Rename the
test function
TestCanonicalJSONRequestFromSemanticEnvelope_FallsBackToLiveBodyWhenIngressBodyMissing
to use consistent terminology (e.g.,
TestCanonicalJSONRequestFromSemantics_FallsBackToSnapshotBodyWhenIngressBodyMissing
or
TestCanonicalJSONRequestFromSemantics_FallsBackToCapturedBodyWhenSnapshotMissing);
update the function declaration and any references to it (test name strings,
usages in other tests or CI configurations) and ensure the new name still
follows Go test naming conventions and matches the intent in
canonicalJSONRequestFromSemantics and core.RequestSnapshot/ingress terminology.

18-61: 🧹 Nitpick | 🔵 Trivial

Test function name still references old terminology.

The test function is named TestCanonicalJSONRequestFromSemanticEnvelope_CachesChatRequest but the implementation now uses RequestSemantics. Consider renaming to TestCanonicalJSONRequestFromSemantics_CachesChatRequest for consistency with the internal helper rename (canonicalJSONRequestFromSemantics).

The internal logic correctly uses the new types and field names (RequestSnapshot, RequestSemantics, RoutingHints).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 18 - 61, Rename the
test function to match the updated terminology: change
TestCanonicalJSONRequestFromSemanticEnvelope_CachesChatRequest to
TestCanonicalJSONRequestFromSemantics_CachesChatRequest so it aligns with the
helper canonicalJSONRequestFromSemantics and the new RequestSemantics types;
update any references or comments in the file that mention "SemanticEnvelope" to
"Semantics" and ensure the test still asserts env.CachedChatRequest(),
GetRequestSemantics, and RoutingHints behavior unchanged.

299-338: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestFileRequestFromSemanticEnvelope_CachesListMetadata.

Consider renaming to TestFileRouteInfoFromSemantics_CachesListMetadata. The internal implementation correctly uses new terminology.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 299 - 338, Rename the
test function TestFileRequestFromSemanticEnvelope_CachesListMetadata to
TestFileRouteInfoFromSemantics_CachesListMetadata to match the new terminology;
update the test declaration (the func name) and any references to it, keeping
the test body and assertions intact (the test uses fileRouteInfoFromSemantics,
core.FileActionList, and related fields like Provider, Purpose, After, HasLimit,
Limit).

189-228: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestBatchRequestMetadataFromSemanticEnvelope_CachesListMetadata.

Consider renaming to TestBatchRouteInfoFromSemantics_CachesListMetadata to align with the helper rename (batchRouteInfoFromSemantics) and the return type (BatchRouteInfo).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 189 - 228, Rename the
test function TestBatchRequestMetadataFromSemanticEnvelope_CachesListMetadata to
TestBatchRouteInfoFromSemantics_CachesListMetadata so the name matches the
helper batchRouteInfoFromSemantics and the returned type BatchRouteInfo; update
the function declaration and any references to the old test name in the test
file to the new name to keep naming consistent.

259-297: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestFileRequestFromSemanticEnvelope_EnrichesCreateMetadata.

Consider renaming to TestFileRouteInfoFromSemantics_EnrichesCreateMetadata. Internal logic correctly uses the new types.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 259 - 297, Rename the
test function TestFileRequestFromSemanticEnvelope_EnrichesCreateMetadata to
TestFileRouteInfoFromSemantics_EnrichesCreateMetadata; update the function
declaration and any references or test names so they match the new identifier,
ensuring it still calls fileRouteInfoFromSemantics, core.GetRequestSemantics,
and asserts on env.CachedFileRouteInfo() unchanged so the test compiles and runs
under the new name.

139-187: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestCanonicalJSONRequestFromSemanticEnvelope_CachesBatchRequest.

Consider renaming to TestCanonicalJSONRequestFromSemantics_CachesBatchRequest. The internal logic is correct.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 139 - 187, Rename the
test function TestCanonicalJSONRequestFromSemanticEnvelope_CachesBatchRequest to
TestCanonicalJSONRequestFromSemantics_CachesBatchRequest to match naming
conventions; update the function declaration (the test func name) so callers and
test runner use the new name while leaving the body intact—the test still
exercises canonicalJSONRequestFromSemantics[*core.BatchRequest] and
env.CachedBatchRequest() behavior.

63-107: 🧹 Nitpick | 🔵 Trivial

Test function name inconsistency: TestCanonicalJSONRequestFromSemanticEnvelope_CachesResponsesRequest.

Same as above - consider renaming to align with the new terminology. The internal implementation is correct.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/semantic_requests_test.go` around lines 63 - 107, Rename the
test function to use the updated terminology: change
TestCanonicalJSONRequestFromSemanticEnvelope_CachesResponsesRequest to a name
like TestCanonicalJSONRequestFromSemantics_CachesResponsesRequest (or
TestCanonicalJSONRequestFromRequestSemantics_CachesResponsesRequest) so it
matches the implementation that calls canonicalJSONRequestFromSemantics and
core.DecodeResponsesRequest; update the test function declaration and any
references accordingly and re-run tests to ensure there are no remaining name
mismatches.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@cmd/gomodel/docs/docs.go`:
- Line 541: Update the passthrough endpoint descriptions to mention the provider
allowlist: state that passthrough routes are not only controlled by
server.enable_passthrough_routes but also restricted by
server.allowed_passthrough_providers (the default allowlist), so clients know
access depends on that list; apply the same wording change to the other endpoint
description strings referenced (the other occurrences around the same
passthrough descriptions). Locate the description strings in
cmd/gomodel/docs/docs.go (the JSON-like description values for the
/p/{provider}/{endpoint} passthrough methods) and edit them to include a brief
clause about server.allowed_passthrough_providers governing which providers are
permitted.

In `@docs/adr/0002-ingress-frame-and-semantic-envelope.md`:
- Line 67: Replace the retired phrases "ingress frame" and "semantic envelope"
in the sentence containing RequestSemantics with the ADR's canonical terms used
elsewhere in this document (use the established canonical names for the ingress
frame and the semantic extraction — e.g., ingressFrame and RequestSemantics) so
both occurrences match the new terminology consistently.

In `@internal/auditlog/middleware.go`:
- Around line 77-82: The audit middleware currently calls
snapshot.CapturedBody() twice which triggers two defensive copies; to fix it,
call core.GetRequestSnapshot(req.Context()) as before but assign
snapshot.CapturedBody() to a local variable once (e.g., body :=
snapshot.CapturedBody()), check body for nil and set
entry.Data.RequestBodyTooBigToHandle if snapshot.BodyNotCaptured, and pass that
single local body to captureLoggedRequestBody(entry, body) so the full request
body is only cloned once; update the branch that references
snapshot.BodyNotCaptured, CapturedBody(), and captureLoggedRequestBody
accordingly.

---

Outside diff comments:
In `@internal/server/handlers_test.go`:
- Around line 761-833: Rename the test function
TestChatCompletion_UsesIngressFrameForDecoding to use the new naming convention
(e.g., TestChatCompletion_UsesRequestSnapshotForDecoding) so it matches the
refactor that replaced "IngressFrame" with NewRequestSnapshot; update the test
function identifier and any references to the old name (in this file's test
definition) to the new name, leaving the test body and assertions (provider,
frame creation via core.NewRequestSnapshot, and semantics checks) unchanged.
- Around line 915-982: Rename the tests that still reference old "IngressFrame"
terminology to use "RequestSnapshot" and "RequestSemantics" as suggested: change
TestResponses_UsesIngressFrameForDecoding ->
TestResponses_UsesRequestSnapshotForDecoding,
TestEmbeddings_UsesIngressFrameForDecoding ->
TestEmbeddings_UsesRequestSnapshotForDecoding,
TestBatches_UsesIngressFrameForDecoding ->
TestBatches_UsesRequestSnapshotForDecoding,
TestGetBatch_UsesSemanticEnvelopeRouteMetadata ->
TestGetBatch_UsesRequestSemanticsRouteMetadata, and
TestListBatches_UsesSemanticEnvelopeQueryMetadata ->
TestListBatches_UsesRequestSemanticsQueryMetadata; update the function names and
any internal references/calls to those symbols (test function identifiers and
any t.Run strings or comments) so names are consistent while leaving test logic
unchanged.

In `@internal/server/semantic_requests_test.go`:
- Around line 230-257: Rename the test function
TestFileRequestFromSemanticEnvelope_InvalidLimitFromIngressReturnsError to
TestFileRouteInfoFromSemantics_InvalidLimitReturnsError to match naming
conventions and the function under test (fileRouteInfoFromSemantics); update the
test function declaration accordingly and any references to it so the name no
longer uses "Ingress" or "Envelope" and instead reflects
"RouteInfoFromSemantics" and "InvalidLimit".
- Around line 109-137: Rename the test function
TestCanonicalJSONRequestFromSemanticEnvelope_FallsBackToLiveBodyWhenIngressBodyMissing
to use consistent terminology (e.g.,
TestCanonicalJSONRequestFromSemantics_FallsBackToSnapshotBodyWhenIngressBodyMissing
or
TestCanonicalJSONRequestFromSemantics_FallsBackToCapturedBodyWhenSnapshotMissing);
update the function declaration and any references to it (test name strings,
usages in other tests or CI configurations) and ensure the new name still
follows Go test naming conventions and matches the intent in
canonicalJSONRequestFromSemantics and core.RequestSnapshot/ingress terminology.
- Around line 18-61: Rename the test function to match the updated terminology:
change TestCanonicalJSONRequestFromSemanticEnvelope_CachesChatRequest to
TestCanonicalJSONRequestFromSemantics_CachesChatRequest so it aligns with the
helper canonicalJSONRequestFromSemantics and the new RequestSemantics types;
update any references or comments in the file that mention "SemanticEnvelope" to
"Semantics" and ensure the test still asserts env.CachedChatRequest(),
GetRequestSemantics, and RoutingHints behavior unchanged.
- Around line 299-338: Rename the test function
TestFileRequestFromSemanticEnvelope_CachesListMetadata to
TestFileRouteInfoFromSemantics_CachesListMetadata to match the new terminology;
update the test declaration (the func name) and any references to it, keeping
the test body and assertions intact (the test uses fileRouteInfoFromSemantics,
core.FileActionList, and related fields like Provider, Purpose, After, HasLimit,
Limit).
- Around line 189-228: Rename the test function
TestBatchRequestMetadataFromSemanticEnvelope_CachesListMetadata to
TestBatchRouteInfoFromSemantics_CachesListMetadata so the name matches the
helper batchRouteInfoFromSemantics and the returned type BatchRouteInfo; update
the function declaration and any references to the old test name in the test
file to the new name to keep naming consistent.
- Around line 259-297: Rename the test function
TestFileRequestFromSemanticEnvelope_EnrichesCreateMetadata to
TestFileRouteInfoFromSemantics_EnrichesCreateMetadata; update the function
declaration and any references or test names so they match the new identifier,
ensuring it still calls fileRouteInfoFromSemantics, core.GetRequestSemantics,
and asserts on env.CachedFileRouteInfo() unchanged so the test compiles and runs
under the new name.
- Around line 139-187: Rename the test function
TestCanonicalJSONRequestFromSemanticEnvelope_CachesBatchRequest to
TestCanonicalJSONRequestFromSemantics_CachesBatchRequest to match naming
conventions; update the function declaration (the test func name) so callers and
test runner use the new name while leaving the body intact—the test still
exercises canonicalJSONRequestFromSemantics[*core.BatchRequest] and
env.CachedBatchRequest() behavior.
- Around line 63-107: Rename the test function to use the updated terminology:
change TestCanonicalJSONRequestFromSemanticEnvelope_CachesResponsesRequest to a
name like TestCanonicalJSONRequestFromSemantics_CachesResponsesRequest (or
TestCanonicalJSONRequestFromRequestSemantics_CachesResponsesRequest) so it
matches the implementation that calls canonicalJSONRequestFromSemantics and
core.DecodeResponsesRequest; update the test function declaration and any
references accordingly and re-run tests to ensure there are no remaining name
mismatches.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 84cf9209-6d2d-40ac-8851-6d0f3cee012d

📥 Commits

Reviewing files that changed from the base of the PR and between 9aa359c and 9a1ef9e.

⛔ Files ignored due to path filters (1)
  • docs/adr/assets/0002-ingress-frame-flow.svg is excluded by !**/*.svg
📒 Files selected for processing (34)
  • .env.template
  • README.md
  • cmd/gomodel/docs/docs.go
  • cmd/gomodel/docs/swagger.json
  • config/config.example.yaml
  • config/config.go
  • config/config_helpers_test.go
  • config/config_test.go
  • docs/adr/0002-ingress-frame-and-semantic-envelope.md
  • docs/adr/0003-policy-resolved-execution-plan.md
  • internal/app/app.go
  • internal/auditlog/auditlog_test.go
  • internal/auditlog/middleware.go
  • internal/core/batch.go
  • internal/core/context.go
  • internal/core/files.go
  • internal/core/passthrough.go
  • internal/core/request_snapshot.go
  • internal/core/request_snapshot_test.go
  • internal/core/semantic.go
  • internal/core/semantic_canonical.go
  • internal/core/semantic_canonical_test.go
  • internal/core/semantic_test.go
  • internal/guardrails/provider.go
  • internal/server/handlers.go
  • internal/server/handlers_test.go
  • internal/server/http.go
  • internal/server/http_test.go
  • internal/server/model_validation.go
  • internal/server/model_validation_test.go
  • internal/server/request_snapshot.go
  • internal/server/request_snapshot_test.go
  • internal/server/semantic_requests.go
  • internal/server/semantic_requests_test.go

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
internal/core/semantic_test.go (1)

8-49: 🧹 Nitpick | 🔵 Trivial

Rename these core semantic tests to the new API surface.

The bodies now validate DeriveWhiteBoxPrompt, but the TestBuildSemanticEnvelope_* names still point grep results and failure output at removed terminology. The sibling cases in this file have the same drift.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/core/semantic_test.go` around lines 8 - 49, Rename the test
functions to reflect the new API surface: change
TestBuildSemanticEnvelope_OpenAICompat to TestDeriveWhiteBoxPrompt_OpenAICompat
(and similarly rename the other sibling TestBuildSemanticEnvelope_* tests in
this file) so their names match the function under test DeriveWhiteBoxPrompt;
update any references in test names and test failure messages if they still
mention "BuildSemanticEnvelope" to use "DeriveWhiteBoxPrompt" to keep
grep/failure output consistent with the current implementation.
internal/server/handlers_test.go (1)

789-807: 🧹 Nitpick | 🔵 Trivial

Extract the snapshot/prompt request setup into a test helper.

The NewRequestSnapshotWithRequestSnapshotWithWhiteBoxPrompt wiring is repeated throughout this file. A small helper will make the next context-shape or naming change much cheaper.

♻️ Possible helper
+func withSnapshotAndPrompt(req *http.Request, snapshot *core.RequestSnapshot) *http.Request {
+	ctx := core.WithRequestSnapshot(req.Context(), snapshot)
+	if prompt := core.DeriveWhiteBoxPrompt(snapshot); prompt != nil {
+		ctx = core.WithWhiteBoxPrompt(ctx, prompt)
+	}
+	return req.WithContext(ctx)
+}
...
-ctx := core.WithRequestSnapshot(req.Context(), frame)
-ctx = core.WithWhiteBoxPrompt(ctx, core.DeriveWhiteBoxPrompt(frame))
-req = req.WithContext(ctx)
+req = withSnapshotAndPrompt(req, frame)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/server/handlers_test.go` around lines 789 - 807, Extract the
repeated snapshot/prompt setup into a single test helper (e.g.,
makeTestRequestContext or buildSnapshotContext) that accepts the original
*http.Request or parameters and returns a context with core.NewRequestSnapshot,
core.WithRequestSnapshot and core.WithWhiteBoxPrompt applied (using
core.DeriveWhiteBoxPrompt). Replace each occurrence of the three-line sequence
in handlers_test.go with a call to this helper and update tests to use the
returned context (or req.WithContext) so callers no longer duplicate
NewRequestSnapshot, WithRequestSnapshot, WithWhiteBoxPrompt wiring.
internal/core/semantic.go (1)

239-278: 🧹 Nitpick | 🔵 Trivial

Finish the rename in the transport classifiers.

DeriveFileRouteInfoFromTransport and DeriveBatchRouteInfoFromTransport still depend on fileActionFromIngress / batchActionFromIngress, so the old term remains in the core route-derivation path. Renaming those helpers in the same sweep will keep grep/search and follow-up refactors consistent.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/core/semantic.go` around lines 239 - 278, The two transport-derived
helpers were partially renamed but callers still use fileActionFromIngress and
batchActionFromIngress; update the helpers and all call sites to the new names
(e.g., rename fileActionFromIngress -> fileActionFromTransport and
batchActionFromIngress -> batchActionFromTransport) and change the calls inside
DeriveFileRouteInfoFromTransport and DeriveBatchRouteInfoFromTransport
accordingly; ensure you also rename the function declarations, update any
imports/tests/other references to the old names, and run tests to confirm no
remaining references to the old identifiers remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@internal/server/semantic_requests.go`:
- Around line 69-70: The code currently calls
core.EnrichFileCreateRouteInfo(req, echoFileMultipartReader{ctx: c}) for all
file routes; restrict this so enrichment only runs for create requests by
checking req.Action == core.FileActionCreate before calling
EnrichFileCreateRouteInfo (leave core.CacheFileRouteInfo(env, req) unchanged).
Update the block around EnrichFileCreateRouteInfo and echoFileMultipartReader to
run only when the action equals core.FileActionCreate.

In `@README.md`:
- Around line 153-155: Update the Configuration Reference section in CLAUDE.md
to add entries for the three new passthrough settings:
ENABLE_PASSTHROUGH_ROUTES, ALLOW_PASSTHROUGH_V1_ALIAS, and
ENABLED_PASSTHROUGH_PROVIDERS; for each include the default value and short
description matching README.md (ENABLE_PASSTHROUGH_ROUTES — true — Enable
provider-native passthrough routes under /p/{provider}/...,
ALLOW_PASSTHROUGH_V1_ALIAS — true — Allow /p/{provider}/v1/... aliases while
keeping /p/{provider}/... canonical, ENABLED_PASSTHROUGH_PROVIDERS —
openai,anthropic — Comma-separated list of enabled passthrough providers) so
CLAUDE.md stays in sync with README.md.

---

Outside diff comments:
In `@internal/core/semantic_test.go`:
- Around line 8-49: Rename the test functions to reflect the new API surface:
change TestBuildSemanticEnvelope_OpenAICompat to
TestDeriveWhiteBoxPrompt_OpenAICompat (and similarly rename the other sibling
TestBuildSemanticEnvelope_* tests in this file) so their names match the
function under test DeriveWhiteBoxPrompt; update any references in test names
and test failure messages if they still mention "BuildSemanticEnvelope" to use
"DeriveWhiteBoxPrompt" to keep grep/failure output consistent with the current
implementation.

In `@internal/core/semantic.go`:
- Around line 239-278: The two transport-derived helpers were partially renamed
but callers still use fileActionFromIngress and batchActionFromIngress; update
the helpers and all call sites to the new names (e.g., rename
fileActionFromIngress -> fileActionFromTransport and batchActionFromIngress ->
batchActionFromTransport) and change the calls inside
DeriveFileRouteInfoFromTransport and DeriveBatchRouteInfoFromTransport
accordingly; ensure you also rename the function declarations, update any
imports/tests/other references to the old names, and run tests to confirm no
remaining references to the old identifiers remain.

In `@internal/server/handlers_test.go`:
- Around line 789-807: Extract the repeated snapshot/prompt setup into a single
test helper (e.g., makeTestRequestContext or buildSnapshotContext) that accepts
the original *http.Request or parameters and returns a context with
core.NewRequestSnapshot, core.WithRequestSnapshot and core.WithWhiteBoxPrompt
applied (using core.DeriveWhiteBoxPrompt). Replace each occurrence of the
three-line sequence in handlers_test.go with a call to this helper and update
tests to use the returned context (or req.WithContext) so callers no longer
duplicate NewRequestSnapshot, WithRequestSnapshot, WithWhiteBoxPrompt wiring.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4615d5cc-c797-48e7-95ea-c0cdc6350877

📥 Commits

Reviewing files that changed from the base of the PR and between 9a1ef9e and 91695f6.

⛔ Files ignored due to path filters (1)
  • docs/adr/assets/0002-ingress-frame-flow.svg is excluded by !**/*.svg
📒 Files selected for processing (22)
  • .env.template
  • README.md
  • config/config.example.yaml
  • config/config.go
  • config/config_test.go
  • docs/adr/0002-ingress-frame-and-semantic-envelope.md
  • docs/adr/0003-policy-resolved-execution-plan.md
  • internal/app/app.go
  • internal/core/context.go
  • internal/core/semantic.go
  • internal/core/semantic_canonical.go
  • internal/core/semantic_canonical_test.go
  • internal/core/semantic_test.go
  • internal/server/handlers.go
  • internal/server/handlers_test.go
  • internal/server/http.go
  • internal/server/model_validation.go
  • internal/server/model_validation_test.go
  • internal/server/request_snapshot.go
  • internal/server/request_snapshot_test.go
  • internal/server/semantic_requests.go
  • internal/server/semantic_requests_test.go

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
internal/core/semantic.go (1)

239-279: 🧹 Nitpick | 🔵 Trivial

Deduplicate transport limit parsing to prevent drift between file and batch paths.

Lines 249-254 and Lines 269-274 repeat the same parsing block. A shared helper would reduce maintenance overhead and keep behavior consistent.

♻️ Suggested refactor
 func DeriveFileRouteInfoFromTransport(method, path string, routeParams map[string]string, queryParams map[string][]string) *FileRouteInfo {
 	req := &FileRouteInfo{
 		Action:   fileActionFromTransport(method, path),
 		Provider: firstTransportValue(queryParams, "provider"),
 		Purpose:  firstTransportValue(queryParams, "purpose"),
 		After:    firstTransportValue(queryParams, "after"),
 		LimitRaw: firstTransportValue(queryParams, "limit"),
 		FileID:   fileIDFromTransport(path, routeParams),
 	}
-	if req.LimitRaw != "" {
-		if parsed, err := strconv.Atoi(req.LimitRaw); err == nil {
-			req.Limit = parsed
-			req.HasLimit = true
-		}
-	}
+	req.Limit, req.HasLimit = parseTransportLimit(req.LimitRaw)
 	if req.Action == "" && req.Provider == "" && req.Purpose == "" && req.After == "" && req.LimitRaw == "" && req.FileID == "" {
 		return nil
 	}
 	return req
 }
 
 // DeriveBatchRouteInfoFromTransport derives sparse batch route info from transport metadata.
 func DeriveBatchRouteInfoFromTransport(method, path string, routeParams map[string]string, queryParams map[string][]string) *BatchRouteInfo {
 	req := &BatchRouteInfo{
 		Action:   batchActionFromTransport(method, path),
 		BatchID:  batchIDFromTransport(path, routeParams),
 		After:    firstTransportValue(queryParams, "after"),
 		LimitRaw: firstTransportValue(queryParams, "limit"),
 	}
-	if req.LimitRaw != "" {
-		if parsed, err := strconv.Atoi(req.LimitRaw); err == nil {
-			req.Limit = parsed
-			req.HasLimit = true
-		}
-	}
+	req.Limit, req.HasLimit = parseTransportLimit(req.LimitRaw)
 	if req.Action == "" && req.BatchID == "" && req.After == "" && req.LimitRaw == "" {
 		return nil
 	}
 	return req
 }
+
+func parseTransportLimit(raw string) (int, bool) {
+	if raw == "" {
+		return 0, false
+	}
+	parsed, err := strconv.Atoi(raw)
+	if err != nil {
+		return 0, false
+	}
+	return parsed, true
+}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/core/semantic.go` around lines 239 - 279, The repeated limit-parsing
logic in DeriveFileRouteInfoFromTransport and DeriveBatchRouteInfoFromTransport
should be pulled into a small helper (e.g., parseLimit or parseLimitFromRaw)
that accepts the LimitRaw string and returns (int, bool) or similar; replace the
duplicated blocks that set req.Limit and req.HasLimit with a single call to that
helper, and use the returned values to populate req.Limit and req.HasLimit for
both FileRouteInfo and BatchRouteInfo (refer to the LimitRaw, Limit, HasLimit
fields and the two functions named DeriveFileRouteInfoFromTransport and
DeriveBatchRouteInfoFromTransport).
internal/core/semantic_test.go (1)

169-250: 🧹 Nitpick | 🔵 Trivial

Consider updating legacy assertion labels for consistency.

A few failure messages still reference pre-rename labels (e.g., FileRequest, BatchMetadata). Updating those strings would improve debugging clarity during failures.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/core/semantic_test.go` around lines 169 - 250, Update the test
failure message strings to use the current, consistent labels instead of legacy
names: replace occurrences like "FileRequest = nil" and "FileRequest.Action"
with names matching CachedFileRouteInfo or FileRouteInfo, and replace
"BatchMetadata = nil" and "BatchMetadata.Action" with BatchRouteInfo or
CachedBatchRouteInfo in the tests (see
TestDeriveWhiteBoxPrompt_BatchesListMetadata,
TestDeriveWhiteBoxPrompt_BatchResultsMetadata and the earlier file-content test
that calls CachedFileRouteInfo); keep the validation logic and t.Fatal/t.Fatalf
calls but change only the human-readable strings to the new labels for
consistent debugging output.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CLAUDE.md`:
- Line 89: The list item starting with "**Server:** `PORT` (8080),
`GOMODEL_MASTER_KEY`..." is prefixed by a leading tab which causes it to render
as a code block; remove the leading tab so the line aligns with the surrounding
bullet list (use a single space or no leading whitespace before the "-
**Server:** ..." bullet) to restore proper Markdown list rendering and satisfy
MD046.

In `@internal/server/handlers_test.go`:
- Around line 1162-1164: The test duplicates manual snapshot+prompt wiring using
core.NewRequestSnapshot, core.WithRequestSnapshot and core.WithWhiteBoxPrompt
with core.DeriveWhiteBoxPrompt; replace that block with the shared helper
withRequestSnapshotAndPrompt(...) to avoid setup drift—locate the code that
creates "frame" and calls core.WithRequestSnapshot/getReq.Context() and
core.WithWhiteBoxPrompt(core.DeriveWhiteBoxPrompt(frame)) and swap it to call
withRequestSnapshotAndPrompt(ctxOrGetReq, frame-like inputs) so the test uses
the centralized helper (also apply the same change to the similar block at lines
1205-1220).

---

Outside diff comments:
In `@internal/core/semantic_test.go`:
- Around line 169-250: Update the test failure message strings to use the
current, consistent labels instead of legacy names: replace occurrences like
"FileRequest = nil" and "FileRequest.Action" with names matching
CachedFileRouteInfo or FileRouteInfo, and replace "BatchMetadata = nil" and
"BatchMetadata.Action" with BatchRouteInfo or CachedBatchRouteInfo in the tests
(see TestDeriveWhiteBoxPrompt_BatchesListMetadata,
TestDeriveWhiteBoxPrompt_BatchResultsMetadata and the earlier file-content test
that calls CachedFileRouteInfo); keep the validation logic and t.Fatal/t.Fatalf
calls but change only the human-readable strings to the new labels for
consistent debugging output.

In `@internal/core/semantic.go`:
- Around line 239-279: The repeated limit-parsing logic in
DeriveFileRouteInfoFromTransport and DeriveBatchRouteInfoFromTransport should be
pulled into a small helper (e.g., parseLimit or parseLimitFromRaw) that accepts
the LimitRaw string and returns (int, bool) or similar; replace the duplicated
blocks that set req.Limit and req.HasLimit with a single call to that helper,
and use the returned values to populate req.Limit and req.HasLimit for both
FileRouteInfo and BatchRouteInfo (refer to the LimitRaw, Limit, HasLimit fields
and the two functions named DeriveFileRouteInfoFromTransport and
DeriveBatchRouteInfoFromTransport).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b026db21-fff1-4145-9a73-5c31adceba20

📥 Commits

Reviewing files that changed from the base of the PR and between 91695f6 and 375fe37.

📒 Files selected for processing (5)
  • CLAUDE.md
  • internal/core/semantic.go
  • internal/core/semantic_test.go
  • internal/server/handlers_test.go
  • internal/server/semantic_requests.go

giorgi-pro and others added 3 commits March 13, 2026 20:16
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# Conflicts:
#	internal/core/context.go
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CLAUDE.md`:
- Line 89: The Server configuration bullet is overcrowded and hard to scan;
split that single bullet into nested sub-bullets listing each environment
variable separately (PORT, GOMODEL_MASTER_KEY, BODY_SIZE_LIMIT,
ENABLE_PASSTHROUGH_ROUTES, ALLOW_PASSTHROUGH_V1_ALIAS,
ENABLED_PASSTHROUGH_PROVIDERS), include a short description for each variable
and default value, and keep the original boolean/default text (e.g.,
"ENABLE_PASSTHROUGH_ROUTES (true: Enable provider-native passthrough routes
under /p/{provider}/...)" ) so the CLAUDE.md line becomes one parent "Server:"
bullet with six tidy child bullets for readability.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2c09076c-0caf-424b-8f7e-4d9d985d11fc

📥 Commits

Reviewing files that changed from the base of the PR and between 375fe37 and e9b9231.

📒 Files selected for processing (1)
  • CLAUDE.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@giorgi-pro giorgi-pro merged commit 414ccab into main Mar 13, 2026
13 checks passed
@giorgi-pro giorgi-pro deleted the refactor/introduce_simpler_naming branch March 13, 2026 20:39
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