code-yeongyu / code-yeongyu/senpi

ExtensionAPI.executeTool runs a tool without persisting toolCall/toolResult entries, contrary to its docstring

Open
#1,565 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
429
Forks
98
Avg merge
5h 3m
Merged PRs (30d)
526

Description

Found while building the TUI QA harness for the question tool (#1533).\n\n ( ~:3175) runs the tool with validation and hooks, and its docstring says it uses "the same pipeline as model-dispatched tool calls". It does not: no / entries are appended to the session, and no transcript row is rendered. The tool's side effects happen and the result is returned to the caller, but the session file has no record that it ran.\n\n**Repro** (from the todo-24 QA lane): drive an extension command that calls in interactive mode - the tool executes (verified via its own output) and the transcript shows nothing; the session JSONL contains no entry for the call. Evidence: (the scenario, ).\n\n**Impact today:** none in-tree - nothing currently calls . It is a trap for the first extension that does: unpersisted tool execution, invisible in , absent from resume.\n\n**Suggested fix:** either append the entries (matching the docstring) or correct the docstring and name so callers know the execution is ephemeral.

Contributor guide

Open the contributing guide

Research direction

Start at ExtensionAPI.executeTool around line 3175 and compare its behavior with the model-dispatched tool-call pipeline described in the docstring. Reproduce the interactive TUI scenario from the todo-24 QA lane, then inspect the session JSONL and transcript output. Done means the behavior and documentation agree, with tool calls represented in persistence, transcript rendering, and resume behavior if persistence is retained.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.