Skip to content

Releases: ginkida/gokin

v0.55.6: Fix token counting — stop double-counting output tokens

19 Mar 11:42

Choose a tag to compare

Bug Fix: Token Counter Accuracy

Root cause analysis revealed three bugs in the token counting pipeline:

1. OutputTokens double-counted in streaming layer

Files: client.go, streaming.go

Both Collect() and ProcessStream() used += for OutputTokens while using = for InputTokens. All providers (Gemini, Anthropic, OpenAI) report cumulative totals in each chunk, not deltas.

Example with Anthropic: Three message_delta events with output_tokens 100, 250, 320 (each is the running total). Using +=: 100+250+320 = 670 (wrong). Using =: 320 (correct).

2. Multi-round token loss in executor

File: executor.go

When the executor runs multiple rounds of tool calling (up to 15 rounds), only the last round's output tokens were stored. Previous rounds were overwritten. Now properly accumulates OutputTokens across rounds while keeping InputTokens as latest (since each round's input includes the full history).

3. Missing token reset between Execute() calls

File: executor.go

Added reset of all token counters at the start of executeLoop() to prevent tokens from one request leaking into the next.

Full Changelog: v0.55.5...v0.55.6

Full Changelog: v0.55.5...v0.55.6

v0.55.5: Deep UI polish — welcome, metadata, processing

19 Mar 11:34

Choose a tag to compare

UI Polish

Welcome Screen

     ╭──────────────────────────────────────────╮
     │              GOKIN                        │
     │                                           │
     │       ~/project · gemini-3-flash          │
     │                                           │
     │   Ctrl+P commands · Shift+Tab plan mode   │
     │                · / explore                │
     ╰──────────────────────────────────────────╯

  Quick start: "explain this codebase"  ·  "fix the failing test"  ·  /help
  • Model name in accent color for emphasis
  • Keyboard shortcuts show key + purpose clearly
  • Better suggestions for new users

Response Metadata Footer

Before: ─── 2.1k in · 3.4k out · thinking 1.2s · tools 0.8s (3) ───
After:  ─── 2.1k in  ·  3.4k out  ·  thinking 1.2s  ·  tools 0.8s (3)  ·  $0.0042 ───
  • Cost estimation shown when pricing data available
  • Wider separators for readability

Processing Indicator

Before: ⠋ bash  make build  2.1s
After:  ⠋ bash → make build  2.1s
  • Tool name bold for emphasis
  • Arrow separator between tool and context

System Messages

Before:   info message
After:  ▸ info message
  • Prefix icon for visual hierarchy

Full Changelog: v0.55.4...v0.55.5

Full Changelog: v0.55.4...v0.55.5

v0.55.4: UI polish — richer icons, friendlier status bar, better hints

19 Mar 11:27

Choose a tag to compare

UI/UX Improvements

Tool Icons (20+ tool-specific)

Before After
🔍 grep 🎯 grep
🔍 glob 📂 glob
🔧 everything else 🤖 agents, 🧪 tests, 🔀 git, 🧠 memory, 🔬 semantic, 🗑️ delete, 📋 plan, 📊 diff, 🔒 ssh, 🗂️ tree

Status Bar

Before After
plan:3/10 📋 3/10 Run migrations
breaker:req=open,step=half 🔴 circuit open or 🟡 recovering
PLAN (amber) 📝 plan mode
provider:gemini gemini

Hints (benefit-focused)

Before After
"Shift+Tab toggles planning mode" "Shift+Tab — break complex tasks into reviewable steps"
"Ctrl+P opens command palette" "Ctrl+P — quickly find any command"
"Ctrl+O shows activity feed" "Ctrl+O — see what agents are doing in real time"
(none) "Type / to explore all available commands"

Other

  • RenderError now shows tool execution duration (was success-only)

Full Changelog: v0.55.3...v0.55.4

Full Changelog: v0.55.3...v0.55.4

v0.55.3: Eliminate silent execution paths

19 Mar 11:21

Choose a tag to compare

Fixes

Continues the plan mode feedback improvements from v0.55.2, addressing three more "silent" execution paths found during comprehensive audit.

1. Done-gate auto-fix no longer silent

When verification checks fail and the system attempts automatic correction, the user now sees:

🔧 Auto-fix attempt 1/2 — resolving 2 incomplete check(s)...
   Auto-fix attempt 1 complete.

Previously, these model calls happened invisibly — checks would fail, then magically pass (or fail again) with no indication.

2. Context compaction notification

When a plan is approved and the conversation is cleared to make room:

📋 Context cleared for plan execution. Previous conversation archived.

Previously, conversation history vanished without warning.

3. Delegated mode step overview

Delegated plan execution now shows the same step overview banner as direct mode:

━━━ Executing plan: Refactor auth (3 steps, delegated) ━━━
    Modernize the authentication middleware

  1. Extract JWT validation
  2. Add refresh token support
  3. Update integration tests

Previously only showed title and count with no step listing.

Full Changelog: v0.55.2...v0.55.3

Full Changelog: v0.55.2...v0.55.3

v0.55.2: Improve plan mode user feedback

19 Mar 11:16

Choose a tag to compare

Plan Mode UX Improvements

Addresses the core complaint: "I set a plan but couldn't see it, and during execution got no feedback."

What changed

1. Plan banner now shows step overview
Before:

━━━ Executing plan: Refactor auth (3 steps) ━━━

After:

━━━ Executing plan: Refactor auth (3 steps) ━━━
    Modernize the authentication middleware

  1. Extract JWT validation
  2. Add refresh token support
  3. Update integration tests

2. Step headers now include description
Before:

──── Step 1/3: Extract JWT validation ────

After:

──── Step 1/3: Extract JWT validation ────
     Move JWT parsing into a dedicated middleware package

3. Progress panel updates for skipped steps (bug fix)
Conditionally skipped steps now send PlanProgressMsg{Status: "skipped"} so the progress panel correctly shows them as skipped instead of frozen on "pending".

4. Progress panel updates for fatal failures (bug fix)
Non-transient step failures now send PlanProgressMsg{Status: "failed"} so the progress panel correctly reflects the error state.

5. Step completion messages include title
Before: Step 2 complete
After: Step 2 complete: Add refresh token support

All fixes applied to both direct and delegated execution modes.

Full Changelog: v0.55.1...v0.55.2

Full Changelog: v0.55.1...v0.55.2

v0.55.1: Fix ambiguous model matching

19 Mar 10:28

Choose a tag to compare

Bug Fix

  • Model command ambiguity/model M2.7 no longer returns "Ambiguous model name". Added exact short-name matching (first pass) before substring matching (second pass), so M2.7 correctly resolves to MiniMax-M2.7 without matching MiniMax-M2.7-highspeed. This also fixes the same issue for other providers with -highspeed/-max/-spark variants (e.g. /model M2.5, /model 5.3-codex).

Full Changelog: v0.55.0...v0.55.1

Full Changelog: v0.55.0...v0.55.1

v0.55.0: MiniMax M2.7 + Gemini 3 ThoughtSignature fix

19 Mar 09:52

Choose a tag to compare

New Features

  • MiniMax M2.7 models — Added MiniMax-M2.7 (recursive self-improvement, top real-world engineering) and MiniMax-M2.7-highspeed (same performance, faster inference, low latency) as new default models for the MiniMax provider. M2.5 models retained for backward compatibility.

Bug Fixes

  • Gemini 3 ThoughtSignature — Fixed 400 Bad Request: Function call is missing a thought_signature error that occurred during multi-turn conversations with Gemini 3 models involving function calls. Three root causes addressed:
    • streaming.go: Prioritize original model parts (with ThoughtSignature intact) over manually reconstructed FunctionCall parts, using pointer identity to deduplicate
    • gemini.go: sanitizeContents now preserves parts containing ThoughtSignature or the Thought flag instead of dropping them as empty
    • gemini_oauth.go: Added ThoughtSignature to SSE JSON parsing structs and preserved Thought/ThoughtSignature fields when constructing genai.Part objects

Changed Files

Area Files Description
Models 5 MiniMax M2.7 registration (client, profiles, presets, provider registry, commands)
Streaming 1 ThoughtSignature-aware part accumulation
Gemini Client 1 sanitizeContents preserves Thought parts
Gemini OAuth 1 SSE parsing + Part construction with ThoughtSignature
Tests 3 Updated expectations for M2.7 default
Docs 2 README + setup wizard

Full Changelog: v0.54.2...v0.55.0

Full Changelog: v0.54.2...v0.55.0

v0.54.2

12 Mar 09:39

Choose a tag to compare

Bug Fixes

  • MiniMax API key validation: Fixed validation endpoint returning HTTP 404 — changed URL to match the actual Anthropic-compatible API path, accept 404 as valid (auth layer still catches invalid keys with 401)
  • Auth error messages: Replaced hardcoded "aistudio.google.com" reference with provider-agnostic text so MiniMax, DeepSeek, Kimi and other providers show correct guidance on 401 errors

Full Changelog: v0.54.1...v0.54.2

v0.54.1

11 Mar 11:49

Choose a tag to compare

Bug fix

  • fix: preserve command exit code in pwd probe wrapperwrapCommandWithPWD used ; echo ... which overwrote the real exit code with 0. Workspace boundary violations (exit 98) were silently treated as successful executions. Now the exit code is saved before the pwd probe and restored after.

Full Changelog: v0.54.0...v0.54.1

v0.54.0

10 Mar 17:41

Choose a tag to compare

Full Changelog: v0.53.1...v0.54.0