Repository navigation
feat: decline tool approvals with an instruction - #334
Conversation
|
I reviewed the changes introduced by this PR and reproduced two issues on commit e03aabc using local fixtures and mocked model responses. |
ability-spec
left a comment
There was a problem hiding this comment.
Two issues reproduced locally on commit e03aabc using mocked model responses:
[P1] Reused Ollama tool-call IDs stall multi-step runs
In src/commands/code.ts and src/commands/chat.ts, seenCallIds spans the entire run. However, Ollama normalization and text recovery can generate call-1 independently for each model reply.
With successive replies requesting read_file(a.txt) and read_file(b.txt), both calls receive call-1. The second call is skipped without delivering a result, leaving OllamaBrain waiting until cancellation or timeout.
Reproduced through hostLoop: only a.txt was read. Disabling the duplicate-ID check allowed both reads and successful completion.
Please generate run-unique call IDs in the Ollama adapter and preserve consistent result correlation. Add a regression test covering repeated response-local IDs across successive replies.
[P2] Split paste delimiters prematurely submit denial feedback
In src/ui/approval_feedback.ts, splitKeys processes stdin chunks independently. A bracketed-paste opener split into "\x1b[20" and "0~..." is not recognized.
A newline inside the pasted note then submits feedback without an explicit Enter, and returnTail forwards the remaining pasted text to the next input handler.
Reproduced: feedback resolved as "200~Use offline tests", with the second pasted line forwarded to the next handler.
Please buffer incomplete escape sequences across chunks and test split paste delimiters.
Build and 43 selected existing tests passed despite these reproductions.
|
Thanks @ability-spec for the clear reproductions and review. Both issues are fixed in #337, now merged: Ollama tool calls get unique IDs across replies with matching result correlation, and denial feedback buffers split bracketed-paste markers. I added regressions for the host loop and pasted feedback; the local build and 50 focused tests passed. GitHub Actions did not start the PR jobs because of an account billing lock, so I merged with the admin override after local verification. |
|
Awesome project! I will keep eye on it |
Summary
Evidence
npm run build— passed.npm run docs:check— passed (6 generated documentation outputs).git diff --cached --check— passed before commit.Closes #326