Skip to content

feat(chat): log and display chat completion tools - #526

Merged
steebchen merged 12 commits into
mainfrom
cursor/log-and-display-chat-completion-tools-d8a4
Jul 27, 2025
Merged

steebchen merged 12 commits into
mainfrom
cursor/log-and-display-chat-completion-tools-d8a4

Conversation

@steebchen

@steebchen steebchen commented Jul 25, 2025 •

Copy link
Copy Markdown
Member

Log and display chat completion tools and tool_choice parameters in the activity log UI.

This provides a comprehensive view of tool interaction, showing the tools provided to the model, the model's choice of tools, and the actual tool calls made.


Open in Web • Open in Cursor

Learn more about Background Agents

Summary by CodeRabbit

  • New Features

    • Added display of "Tool Information" (including "Available Tools" and "Tool Choice") in log details, when available.
    • Log entries now support and display additional tool-related information.
  • Bug Fixes

    • Removed display and storage of deprecated "Tool Calls" field in logs.
  • Chores

    • Updated database and API to support new tool-related fields in logs.

cursoragent and others added 3 commits July 25, 2025 17:53
…ty logs

- Add tools and toolChoice columns to log table schema
- Update chat completion logging to capture tools and tool_choice parameters
- Add database migration for new columns
- Update API log schema to include new fields
- Enhance LogCard UI to display tool information in activity logs
- Update TypeScript interfaces for new fields
- Display Available Tools, Tool Choice, and Tool Calls in separate sections
- Maintain backwards compatibility with existing logs
@coderabbitai

coderabbitai Bot commented Jul 25, 2025 •

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@steebchen has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 6 minutes and 58 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.

📥 Commits

Reviewing files that changed from the base of the PR and between d159e02 and 97b4228.

📒 Files selected for processing (2)
  • apps/gateway/src/chat/chat.ts (12 hunks)
  • apps/next/src/components/dashboard/log-card.tsx (2 hunks)

"""

Walkthrough

This change replaces the previous toolCalls logging and schema field with two new fields, tools and toolChoice, across the backend, frontend, API types, and database. It updates all relevant interfaces, migration scripts, and UI components to support these fields, and removes all logic related to accumulating or displaying toolCalls.

Changes

Files/Paths Change Summary
apps/api/src/routes/logs.ts Added tools and toolChoice as nullable fields to logSchema.
apps/gateway/src/chat/chat.ts Added tools and toolChoice to logging; removed all toolCalls extraction/logic. Updated function signatures.
apps/next/src/components/activity/recent-logs.tsx
apps/ui/src/components/activity/recent-logs.tsx
Passed through tools and toolChoice to log display; removed toolCalls handling.
apps/next/src/types/activity.ts
apps/next/src/lib/api/v1.d.ts
apps/ui/src/lib/api/v1.d.ts
Added tools and toolChoice to log entry types/interfaces.
apps/ui/src/components/dashboard/log-card.tsx Added conditional display of "Tool Information" (tools, toolChoice, toolCalls) in log details.
packages/db/migrations/1753466042_motionless_cardiac.sql Added tools and tool_choice JSON columns to log table.
packages/db/migrations/1753485632_dusty_tarot.sql Dropped tool_calls column from log table.
packages/db/migrations/meta/1753466042_snapshot.json
packages/db/migrations/meta/1753485632_snapshot.json
Updated migration snapshots to reflect schema changes (add/remove columns).
packages/db/migrations/meta/_journal.json Appended new migration journal entries.
packages/db/src/schema.ts Removed toolCalls; added tools and toolChoice JSON columns to log table schema.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Frontend
    participant API
    participant DB

    User->>Frontend: View recent logs
    Frontend->>API: GET /logs
    API->>DB: Query logs (includes tools/toolChoice)
    DB-->>API: Return logs with tools/toolChoice
    API-->>Frontend: Respond with logs (tools/toolChoice)
    Frontend->>User: Display logs (show Tool Information if present)
Loading
sequenceDiagram
    participant ChatHandler
    participant DB

    ChatHandler->>DB: Insert log (includes tools, toolChoice)
    Note over ChatHandler,DB: No toolCalls extraction/accumulation logic
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~15–20 minutes

Possibly related PRs

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cursor/log-and-display-chat-completion-tools-d8a4

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@steebchen steebchen changed the title Log and display chat completion tools feat(chat): log and display chat completion tools Jul 25, 2025
@steebchen
steebchen marked this pull request as ready for review July 25, 2025 22:22

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (4)
apps/api/src/routes/logs.ts (1)

40-42: Consider more specific typing for tool-related fields.

While z.any().nullable() works for dynamic JSON content, consider whether these fields could benefit from more specific Zod schemas based on the expected structure of tools, toolChoice, and toolCalls data. This would provide better type safety and API documentation.

If the structure of these fields is well-defined, you could create more specific schemas like:

const toolSchema = z.object({
  type: z.string(),
  function: z.object({
    name: z.string(),
    description: z.string().optional(),
    parameters: z.record(z.unknown()).optional(),
  }).optional(),
}).nullable();

const toolChoiceSchema = z.union([
  z.literal("auto"),
  z.literal("none"),
  z.object({
    type: z.literal("function"),
    function: z.object({
      name: z.string(),
    }),
  }),
]).nullable();
apps/next/src/types/activity.ts (1)

91-93: Good use of unknown for type safety, consider more specific typing.

The use of unknown | null is better than any for type safety. However, if the structure of these tool-related fields is well-defined, consider creating more specific TypeScript interfaces to improve type safety and developer experience.

For example, you could define:

interface ToolDefinition {
  type: string;
  function?: {
    name: string;
    description?: string;
    parameters?: Record<string, unknown>;
  };
}

interface ToolChoice {
  type: "function";
  function: {
    name: string;
  };
} | "auto" | "none";

interface ToolCall {
  id: string;
  type: "function";
  function: {
    name: string;
    arguments: string;
  };
}

Then use:

tools: ToolDefinition[] | null;
toolChoice: ToolChoice | null;
toolCalls: ToolCall[] | null;
apps/gateway/src/chat/chat.ts (1)

81-82: Consider using more specific types instead of any.

The tools and toolChoice parameters are typed as any[] | undefined and any | undefined respectively. Consider using more specific types to improve type safety and maintainability.

Based on the OpenAPI schema defined elsewhere in the file, you could use more specific types:

-	tools: any[] | undefined,
-	toolChoice: any | undefined,
+	tools: Array<{
+		type: "function";
+		function: {
+			name: string;
+			description?: string;
+			parameters?: Record<string, any>;
+		};
+	}> | undefined,
+	toolChoice: "auto" | "none" | {
+		type: "function";
+		function: {
+			name: string;
+		};
+	} | undefined,
packages/db/migrations/meta/1753466042_snapshot.json (1)

462-479: Prefer jsonb over json for the new columns

tools, tool_choice, and the pre-existing tool_calls are typed as json.
In PostgreSQL, jsonb is almost always the better default because it:

  • stores data in a decomposed binary format (smaller & faster to parse),
  • supports GIN / GiST indexing for efficient containment queries,
  • enables many more operators/functions.

Unless you have a compelling reason to preserve insertion order or exact whitespace, flip these three columns to jsonb now—migrating later is painful.

-        "tool_calls": {
-          "type": "json",
+        "tool_calls": {
+          "type": "jsonb",
...
-        "tools": {
-          "type": "json",
+        "tools": {
+          "type": "jsonb",
...
-        "tool_choice": {
-          "type": "json",
+        "tool_choice": {
+          "type": "jsonb",

Follow-up: consider a GIN index on tool_calls if you’ll filter by contained keys or paths.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between debfc63 and 821060a.

📒 Files selected for processing (13)
  • apps/api/src/routes/logs.ts (1 hunks)
  • apps/gateway/src/chat/chat.ts (9 hunks)
  • apps/next/src/components/activity/recent-logs.tsx (2 hunks)
  • apps/next/src/components/dashboard/log-card.tsx (1 hunks)
  • apps/next/src/lib/api/v1.d.ts (1 hunks)
  • apps/next/src/types/activity.ts (1 hunks)
  • apps/ui/src/components/activity/recent-logs.tsx (1 hunks)
  • apps/ui/src/components/dashboard/log-card.tsx (1 hunks)
  • apps/ui/src/lib/api/v1.d.ts (1 hunks)
  • packages/db/migrations/1753466042_motionless_cardiac.sql (1 hunks)
  • packages/db/migrations/meta/1753466042_snapshot.json (1 hunks)
  • packages/db/migrations/meta/_journal.json (1 hunks)
  • packages/db/src/schema.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Use localStorage instead of cookies for client-side data persistence

Files:

  • apps/next/src/types/activity.ts
  • apps/api/src/routes/logs.ts
  • apps/ui/src/lib/api/v1.d.ts
  • packages/db/src/schema.ts
  • apps/next/src/components/dashboard/log-card.tsx
  • apps/ui/src/components/dashboard/log-card.tsx
  • apps/next/src/lib/api/v1.d.ts
  • apps/gateway/src/chat/chat.ts
  • apps/next/src/components/activity/recent-logs.tsx
  • apps/ui/src/components/activity/recent-logs.tsx
**/*.{js,ts}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

**/*.{js,ts}: Use drizzle with the latest object syntax for database operations
For read queries, always use db().query.<table>.findMany() or db().query.<table>.findFirst()

Files:

  • apps/next/src/types/activity.ts
  • apps/api/src/routes/logs.ts
  • apps/ui/src/lib/api/v1.d.ts
  • packages/db/src/schema.ts
  • apps/next/src/lib/api/v1.d.ts
  • apps/gateway/src/chat/chat.ts
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/general.mdc)

Never use as any or : any in TypeScript files.

Files:

  • apps/next/src/types/activity.ts
  • apps/api/src/routes/logs.ts
  • apps/ui/src/lib/api/v1.d.ts
  • packages/db/src/schema.ts
  • apps/next/src/components/dashboard/log-card.tsx
  • apps/ui/src/components/dashboard/log-card.tsx
  • apps/next/src/lib/api/v1.d.ts
  • apps/gateway/src/chat/chat.ts
  • apps/next/src/components/activity/recent-logs.tsx
  • apps/ui/src/components/activity/recent-logs.tsx
{apps/api,apps/gateway,packages/db}/**/*.ts

📄 CodeRabbit Inference Engine (CLAUDE.md)

{apps/api,apps/gateway,packages/db}/**/*.ts: Use Drizzle ORM with latest object syntax for database operations
For reads, use db().query.<table>.findMany() or db().query.<table>.findFirst()

Files:

  • apps/api/src/routes/logs.ts
  • packages/db/src/schema.ts
  • apps/gateway/src/chat/chat.ts
apps/ui/**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

In apps/ui (a tanstack router project), always use navigate() for navigation

Use localStorage instead of cookies for client-side data persistence

Files:

  • apps/ui/src/lib/api/v1.d.ts
  • apps/ui/src/components/dashboard/log-card.tsx
  • apps/ui/src/components/activity/recent-logs.tsx
**/migrations/*.{js,ts,sql}

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

For DB changes, do not write manual migration files

Files:

  • packages/db/migrations/1753466042_motionless_cardiac.sql
🧠 Learnings (4)
packages/db/migrations/meta/_journal.json (1)

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: Applies to **/migrations/*.{js,ts,sql} : For DB changes, do not write manual migration files

packages/db/src/schema.ts (5)

Learnt from: CR
PR: theopenco/llmgateway#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-23T19:33:55.674Z
Learning: Applies to {apps/api,apps/gateway,packages/db}/**/*.ts : Use Drizzle ORM with latest object syntax for database operations

Learnt from: CR
PR: theopenco/llmgateway#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-23T19:33:55.674Z
Learning: Always sync schema with pnpm push after table/column changes

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: Applies to **/*.{js,ts} : Use drizzle with the latest object syntax for database operations

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: If any tables or columns do not exist, run pnpm push to sync the schema to the database

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: Applies to **/migrations/*.{js,ts,sql} : For DB changes, do not write manual migration files

packages/db/migrations/1753466042_motionless_cardiac.sql (1)

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: Applies to **/migrations/*.{js,ts,sql} : For DB changes, do not write manual migration files

packages/db/migrations/meta/1753466042_snapshot.json (1)

Learnt from: CR
PR: theopenco/llmgateway#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-23T19:33:40.602Z
Learning: If any tables or columns do not exist, run pnpm push to sync the schema to the database

🧬 Code Graph Analysis (3)
apps/next/src/types/activity.ts (1)
apps/next/src/components/activity/activity-client.tsx (1)
  • LogsData (20-72)
apps/ui/src/lib/api/v1.d.ts (1)
apps/next/src/components/activity/activity-client.tsx (1)
  • LogsData (20-72)
apps/ui/src/components/activity/recent-logs.tsx (1)
packages/db/src/schema.ts (1)
  • log (240-298)
🔇 Additional comments (17)
packages/db/migrations/meta/_journal.json (1)

215-221: LGTM! Properly generated migration journal entry.

The new migration journal entry follows the established pattern and appears to be automatically generated by Drizzle ORM, which aligns with the coding guidelines that specify not writing manual migration files.

packages/db/src/schema.ts (1)

266-267: LGTM! Well-structured schema additions for tool logging.

The new tools and toolChoice JSON columns are appropriately placed near the existing toolCalls field and use the correct json() type for storing tool-related metadata. This supports the main feature of logging and displaying chat completion tools.

packages/db/migrations/1753466042_motionless_cardiac.sql (1)

1-2: LGTM! Auto-generated migration adds required columns.

The migration correctly adds the tools and tool_choice JSON columns to the log table. This appears to be automatically generated by Drizzle ORM, which aligns with the coding guidelines.

apps/ui/src/lib/api/v1.d.ts (1)

525-527: LGTM: Type definitions correctly represent the new tool-related fields.

The optional unknown typing is appropriate for JSON data that can have varying structures. These definitions align well with the database schema's JSON columns for tools, toolChoice, and toolCalls.

Since this is an auto-generated file, ensure these changes originated from the OpenAPI schema rather than manual edits.

apps/next/src/lib/api/v1.d.ts (1)

525-527: LGTM: Consistent type definitions across applications.

The type definitions are identical to those in apps/ui/src/lib/api/v1.d.ts, ensuring consistency between the UI applications. The optional unknown typing remains appropriate for the JSON-based tool metadata.

apps/ui/src/components/dashboard/log-card.tsx (1)

315-359: Ensure Log type includes the new tool properties and remove all as any assertions.

I wasn’t able to locate the Log interface in the codebase, so please:

  1. Find and update the Log type (in the @llmgateway/db package) to include:
    • tools?: /* appropriate type */
    • toolChoice?: /* appropriate type */
    • toolCalls?: /* appropriate type */
  2. In apps/ui/src/components/dashboard/log-card.tsx (lines 315–359), remove every (log as any) assertion and reference the properties directly:
    • Conditional check: {(log.tools || log.toolChoice || log.toolCalls) && (…)}
    • Each JSON output: JSON.stringify(log.tools, …), JSON.stringify(log.toolChoice, …), JSON.stringify(log.toolCalls, …)

Once the Log type is updated, these casts can be deleted and the code will regain full type safety.

apps/next/src/components/dashboard/log-card.tsx (1)

315-357: Excellent TypeScript implementation!

This implementation correctly follows the coding guidelines by avoiding as any type assertions and using proper TypeScript typing throughout. The tool information display logic is well-structured and maintains consistency with the existing component design.

apps/next/src/components/activity/recent-logs.tsx (2)

62-64: Good interface extension with proper typing.

The addition of the tool-related properties with unknown | null typing is appropriate for JSON fields and follows TypeScript best practices.


296-298: Clean property forwarding implementation.

The new tool-related properties are properly passed through to the LogCard component using direct property access, maintaining consistency with the existing code pattern.

apps/gateway/src/chat/chat.ts (8)

1675-1676: LGTM!

The cached response logging correctly includes the new tools and tool_choice parameters.


1811-1812: LGTM!

The streaming cancellation logging correctly includes the new tool-related parameters.


1896-1897: LGTM!

The streaming error logging correctly includes the new tool-related parameters.


2564-2565: LGTM!

The streaming completion logging correctly includes the new tool-related parameters.


2651-2652: LGTM!

The non-streaming cancellation logging correctly includes the new tool-related parameters.


2714-2715: LGTM!

The non-streaming error logging correctly includes the new tool-related parameters.


2822-2823: LGTM!

The non-streaming success logging correctly includes the new tool-related parameters.


100-101: Excellent consistency across all logging call sites.

All seven invocations of createLogEntry throughout the file have been consistently updated to include the new tools and toolChoice parameters. This ensures comprehensive logging of tool-related metadata across all execution paths (cached responses, streaming/non-streaming, success/error cases).

Comment on lines +160 to +162
tools: (log as any).tools,
toolChoice: (log as any).toolChoice,
toolCalls: (log as any).toolCalls,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Remove unnecessary type assertions that violate coding guidelines.

The as any type assertions are unnecessary and violate the coding guideline "Never use as any or : any in TypeScript files." The API types already define these fields as optional unknown, so the type assertions can be safely removed.

Apply this diff to remove the type assertions:

-									tools: (log as any).tools,
-									toolChoice: (log as any).toolChoice,
-									toolCalls: (log as any).toolCalls,
+									tools: log.tools,
+									toolChoice: log.toolChoice,
+									toolCalls: log.toolCalls,
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
tools: (log as any).tools,
toolChoice: (log as any).toolChoice,
toolCalls: (log as any).toolCalls,
tools: log.tools,
toolChoice: log.toolChoice,
toolCalls: log.toolCalls,
🤖 Prompt for AI Agents
In apps/ui/src/components/activity/recent-logs.tsx around lines 160 to 162,
remove the unnecessary `as any` type assertions from the properties `tools`,
`toolChoice`, and `toolCalls`. Since the API types already define these fields
as optional `unknown`, you can directly access them without casting. Simply
delete the `as any` casts to comply with the coding guideline prohibiting `as
any` usage.

@steebchen
steebchen added this pull request to the merge queue Jul 25, 2025
@steebchen
steebchen removed this pull request from the merge queue due to a manual request Jul 25, 2025
Replaced `toolCalls` with `tools` and `toolChoice` for better clarity
and usability in chat response schema. Updated downstream response
handling accordingly.
Eliminated the `toolCalls` property from v1 API schemas across UI, Next,
and API layers as it is no longer required.
Eliminated the unused `toolCalls` property from the schema to maintain
consistency and simplify the structure.
Introduced a new snapshot file for the database schema, reflecting the
current structure of tables, columns, indexes, and constraints. Allows
for better tracking of schema changes over time.
Updated the chat response schema to remove the unused `toolCalls` property and replace it with `tools` and `toolChoice` fields for improved clarity and functionality.
Deleted the `extractToolCallsFromProvider` function and related logic from the chat module as it is no longer required. This simplifies the codebase and eliminates redundant functionality.
Removed `toolCalls` property and related logic from UI components and type definitions to simplify the structure and maintain consistency. Retained `tools` and `toolChoice` fields for better clarity.
@steebchen
steebchen enabled auto-merge July 27, 2025 16:34
@steebchen
steebchen added this pull request to the merge queue Jul 27, 2025
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Jul 27, 2025
@steebchen
steebchen enabled auto-merge July 27, 2025 16:56
Added new sections in the dashboard log card to display `tools` and
`toolChoice` if available. Updated layout and styles to incorporate the
changes. Removed obsolete `toolCalls` logic across related components.
@steebchen
steebchen disabled auto-merge July 27, 2025 17:05
@steebchen
steebchen added this pull request to the merge queue Jul 27, 2025
@steebchen
steebchen removed this pull request from the merge queue due to a manual request Jul 27, 2025
@steebchen
steebchen merged commit c5f2bf8 into main Jul 27, 2025
@steebchen
steebchen deleted the cursor/log-and-display-chat-completion-tools-d8a4 branch July 27, 2025 20:16
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