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
Summary
The
kiroprovider 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
Reproduction
codeburn report --provider kiro -p all --format json # Returns: "calls": 0Meanwhile, an independent parser reading the same files extracts 900+ calls with $367 in usage.
Root Causes
1.
extractTextdoesn't check theentrieskeyKiro IDE messages use
entriesinstead ofcontentfor their text payload:{ "role": "bot", "entries": [{ "type": "text", "text": "I'll help with that." }] }The
extractTextfunction checks['content', 'text', 'message', 'value', 'parts']but not'entries', so every message returns empty string.2. Conversation lives at
data.context.messages, notdata.messagesCurrent Kiro builds structure execution files as:
{ "executionId": "...", "startTime": 1775853226655, "context": { "messages": [/* 353 messages with real content */] } }parseModernExecutiononly checksdata[key]forMODERN_CONVERSATION_KEYS, neverdata.context[key].3. Linux remote dev box path not supported
On Linux remote dev environments, Kiro stores data at:
getKiroAgentDir()only returns~/.config/Kiro/...on Linux — which doesn't exist on remote boxes.4. Newer builds use
workspace-sessions/directoryPost-June 2026, Kiro writes session state to:
These files use a
history[].messageformat withrole/contentfields. The provider doesn't discover or parse this path.Expected Behavior
codeburn report --provider kiroshould return all Kiro IDE sessions with accurate token counts, matching what the files actually contain.Additional Context
usageSummaryfield with per-turn credit costs andusedToolsarrays that could provide structured tool trackingchatSessionIdfield (present on every execution file) should be included in session ID resolution for better deduplication~/.cache/codeburn/session-cache.jsonbecause the fingerprint cache stores "0 results" from the broken parser and won't re-parse unchanged filesPR
#618