Skip to content

Kiro IDE provider returns 0 calls — parser doesn't handle current Kiro session format #619

Description

@Enclavet

Summary

The kiro provider discovers session files but fails to parse any of them, returning 0 calls on both Windows and Linux. The root cause is that Kiro IDE's on-disk format diverged from what the parser expects in multiple ways.

Environment

  • codeburn v0.x (latest from npm)
  • Kiro IDE (April–July 2026 builds)
  • Tested on: Windows 11 + Linux (Amazon remote dev box)

Reproduction

codeburn report --provider kiro -p all --format json
# Returns: "calls": 0

Meanwhile, an independent parser reading the same files extracts 900+ calls with $367 in usage.

Root Causes

1. extractText doesn't check the entries key

Kiro IDE messages use entries instead of content for their text payload:

{
  "role": "bot",
  "entries": [{ "type": "text", "text": "I'll help with that." }]
}

The extractText function checks ['content', 'text', 'message', 'value', 'parts'] but not 'entries', so every message returns empty string.

2. Conversation lives at data.context.messages, not data.messages

Current Kiro builds structure execution files as:

{
  "executionId": "...",
  "startTime": 1775853226655,
  "context": {
    "messages": [/* 353 messages with real content */]
  }
}

parseModernExecution only checks data[key] for MODERN_CONVERSATION_KEYS, never data.context[key].

3. Linux remote dev box path not supported

On Linux remote dev environments, Kiro stores data at:

~/.kiro-server/data/User/globalStorage/kiro.kiroagent

getKiroAgentDir() only returns ~/.config/Kiro/... on Linux — which doesn't exist on remote boxes.

4. Newer builds use workspace-sessions/ directory

Post-June 2026, Kiro writes session state to:

kiro.kiroagent/workspace-sessions/<base64-encoded-path>/<sessionId>.json

These files use a history[].message format with role/content fields. The provider doesn't discover or parse this path.

Expected Behavior

codeburn report --provider kiro should return all Kiro IDE sessions with accurate token counts, matching what the files actually contain.

Additional Context

  • Files have a usageSummary field with per-turn credit costs and usedTools arrays that could provide structured tool tracking
  • The chatSessionId field (present on every execution file) should be included in session ID resolution for better deduplication
  • After a fix is applied, users need to clear ~/.cache/codeburn/session-cache.json because the fingerprint cache stores "0 results" from the broken parser and won't re-parse unchanged files

PR

#618

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions