Files
GopherGate/TODO.md
hobokenchicken 6b10d4249c
Some checks failed
CI / Check (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Formatting (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Release Build (push) Has been cancelled
feat: migrate backend from rust to go
This commit replaces the Axum/Rust backend with a Gin/Go implementation. The original Rust code has been archived in the 'rust' branch.
2026-03-19 10:30:05 -04:00

1.6 KiB

Migration TODO List

Completed Tasks

  • Initial Go project setup
  • Database schema & migrations
  • Configuration loader (Viper)
  • Auth Middleware
  • Basic Provider implementations (OpenAI, Gemini, DeepSeek, Grok)
  • Streaming Support (SSE & Gemini custom streaming)
  • Move Rust files to rust_backup
  • Enhanced helpers.go for Multimodal & Tool Calling (OpenAI compatible)
  • Enhanced server.go for robust request conversion
  • Dashboard Management APIs (Clients, Tokens, Users, Providers)
  • Dashboard Analytics & Usage Summary
  • WebSocket for real-time dashboard updates

Feature Parity Checklist (High Priority)

OpenAI Provider

  • Tool Calling
  • Multimodal (Images) support
  • Reasoning Content (CoT) support for o1, o3 (need to ensure it's parsed in responses)
  • Support for /v1/responses API (required for some gpt-5/o1 models)

Gemini Provider

  • Tool Calling (mapping to Gemini format)
  • Multimodal (Images) support
  • Reasoning/Thought support
  • Handle Tool Response role in unified format

DeepSeek Provider

  • Reasoning Content (CoT) support
  • Parameter sanitization for deepseek-reasoner
  • Tool Calling support

Grok Provider

  • Tool Calling support
  • Multimodal support

Infrastructure & Middleware

  • Implement Request Logging to SQLite (asynchronous)
  • Implement Rate Limiting (golang.org/x/time/rate)
  • Implement Circuit Breaker (github.com/sony/gobreaker)
  • Implement Model Cost Calculation logic

Verification

  • Unit tests for feature-specific mapping (CoT, Tools, Images)
  • Integration tests with live LLM APIs