Skip to content

feat: Unified start command, analytics dashboard, OpenRouter support, and dual release channels - #116

Merged
samueltuyizere merged 59 commits into
mainfrom
86-anthropic-path-502s-when-the-system-field-contains-a-newline-jsonrawmessage-marshal-error
Jul 12, 2026
Merged

feat: Unified start command, analytics dashboard, OpenRouter support, and dual release channels#116
samueltuyizere merged 59 commits into
mainfrom
86-anthropic-path-502s-when-the-system-field-contains-a-newline-jsonrawmessage-marshal-error

Conversation

@samueltuyizere

Copy link
Copy Markdown
Collaborator

Summary

This PR consolidates multiple enhancements to routatic-proxy:

Unified Startup (routatic-proxy start)

  • New start command runs both proxy server and GUI dashboard together
  • Proxy on 127.0.0.1:3456, Dashboard on 127.0.0.1:3445
  • Supports --background flag for daemon mode
  • Removed separate ui command (superseded by start)
  • Updated autostart (Linux, macOS, Windows) to use start --background

Analytics Dashboard

  • Added SQLite-based analytics storage layer
  • Dashboard reads from persisted data (no in-memory interception)
  • New API endpoints:
    • GET /api/analytics/summary - Token counts, request totals, success rate
    • GET /api/analytics/tokens/trend - Daily token usage over time
    • GET /api/analytics/latency - Latency statistics by model
  • GUI server binds to fixed port 3445 with single-instance management
  • Analytics tab with KPI cards, donut charts, and token trend line

OpenRouter Integration

  • Added OpenRouter as a supported provider
  • Enhanced AWS Bedrock integration with proper endpoint routing

Dual Release Channel System

  • Beta channel (automatic on push to main)
  • Production channel (manual workflow_dispatch)
  • New update-channel command to switch between stable/beta
  • Version detection script for CI

Build Info Enhancements

  • Added PID() and BinaryPath() functions
  • Tests for build info validation

Breaking Changes

  • routatic-proxy ui command removed - use routatic-proxy start instead
  • routatic-proxy serve --background autostart now uses start --background

Commands Changed

Before After
routatic-proxy ui routatic-proxy start
routatic-proxy serve routatic-proxy serve (unchanged)
routatic-proxy serve --background routatic-proxy start --background

Checklist

  • Tests pass locally
  • Lint checks pass
  • Documentation updated (CLAUDE.md)

…add endpoint handling for AWS Bedrock models
…ling

- Added comprehensive documentation for OpenRouter models, including key benefits, model naming conventions, and popular models.
- Updated README to include OpenRouter setup instructions and environment variable configurations.
- Implemented content detection in SSE responses to improve error handling during streaming.
- Introduced new error type for empty streams and updated streaming logic to handle empty responses gracefully.
- Added test cases for AWS Bedrock provider to ensure correct endpoint resolution for various model IDs.
- Introduced OpenRouter models documentation detailing supported models, context windows, and pricing.
- Created a new OpenRouter provider configuration guide for seamless integration.
- Enhanced AWS Bedrock provider to support OpenAI Responses API for models prefixed with "openai.gpt-".
- Implemented request handling for OpenAI Responses in AWS Bedrock, including streaming capabilities.
- Updated tests to validate new OpenAI path handling and ensure correct endpoint usage for OpenAI models.
…rd and refactor update channel command for clarity
Comment thread Dockerfile
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
Comment thread internal/update/update.go Outdated
Comment thread internal/gui/server.go Outdated
Comment thread internal/gui/server.go Outdated
Comment thread internal/handlers/messages.go
@kilo-code-bot

kilo-code-bot Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Code Review Roast 🔥

Verdict: No New Issues Found | Recommendation: Prior findings remain — see inline comments

Incremental note: This run reviewed the diff 5e9f7ad..afe958c, which is a documentation-only commit (REVIEW.md, +283 lines). Zero code changed, so no new changed-code issues were found. The 22 prior findings are still active on unchanged files.

📊 Overall: This incremental was one commit of pure docs — zero code, zero fixes. Like repainting a car while it's still leaking oil from the engine block.

Files Reviewed (incremental)
  • REVIEW.md - 0 issues

Fix these issues in Kilo Cloud

Previous Review Summary (commit 5e9f7ad)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 5e9f7ad)

Verdict: 2 Issues Found | Recommendation: Address before merge

Incremental note: This run reviewed the diff 5e9f7ad..43c502a, which is a documentation-only commit (REVIEW.md, +270 lines). No code changed, so no new changed-code issues were found. The previously reported code findings below are still unresolved — the new commit politely walked around them without fixing a single one.

Overview

Severity Count
🚨 critical 1
⚠️ warning 1
💡 suggestion 0
🤏 nitpick 0
Issue Details (click to expand)
File Line Roast
internal/gui/assets/index.html 7 Replaced self-contained local dashboard with external Tailwind CDN dependency
internal/gui/server.go 759 CSP comment claims same-origin only but explicitly allows external CDN

🏆 Best part: The new REVIEW.md is thorough and well-structured — a genuinely nice addition. Too bad it documents a dashboard that now phones home to a CDN for styling it used to ship locally.

💀 Worst part: The cdn.tailwindcss.com dependency in a local-only proxy dashboard is still sitting there untouched, like a smoke detector with the battery removed — technically present, functionally asleep. A local proxy that requires the internet is like a privacy VPN that logs everything: technically functional, spiritually bankrupt.

📊 Overall: This incremental was one commit of pure docs — zero code, zero fixes. The Tailwind supply-chain issue remains wide open. Like painting the walls of a house while leaving the front door unlocked.

Files Reviewed (incremental)
  • REVIEW.md - docs only, 0 issues
  • internal/gui/assets/index.html - re-verified, unchanged, prior finding still open
  • internal/gui/server.go - re-verified, unchanged, prior finding still open

Fix these issues in Kilo Cloud


Reviewed by step-3.7-flash-20260528 · Input: 73.2K · Output: 2.4K · Cached: 199.6K

Comment thread cmd/routatic-proxy/start_gui_darwin.go
Comment thread cmd/routatic-proxy/start_gui_darwin.go
Comment thread internal/gui/server.go Outdated
samueltuyizere and others added 2 commits July 12, 2026 20:25
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Signed-off-by: TUYIZERE Samuel <tuyizeres0@gmail.com>
Comment thread internal/gui/assets/index.html Outdated
Comment thread internal/gui/assets/index.html Outdated
Comment thread internal/gui/assets/style.css Outdated
Comment thread internal/gui/assets/style.css Outdated
samueltuyizere and others added 6 commits July 12, 2026 21:49
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Signed-off-by: TUYIZERE Samuel <tuyizeres0@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Signed-off-by: TUYIZERE Samuel <tuyizeres0@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Signed-off-by: TUYIZERE Samuel <tuyizeres0@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Signed-off-by: TUYIZERE Samuel <tuyizeres0@gmail.com>
Comment thread internal/storage/analytics.go Outdated
Comment thread internal/storage/analytics.go
Comment thread internal/gui/assets/index.html Outdated
Comment thread internal/gui/server.go Outdated
@samueltuyizere
samueltuyizere merged commit b5c713a into main Jul 12, 2026
3 checks passed
@samueltuyizere
samueltuyizere deleted the 86-anthropic-path-502s-when-the-system-field-contains-a-newline-jsonrawmessage-marshal-error branch July 12, 2026 23:19
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.

Anthropic path 502s when the system field contains a newline (json.RawMessage marshal error)

1 participant