Skip to content

fix(agent): drop redundant Idle transition that errored on every run#726

Merged
edenreich merged 1 commit into
mainfrom
fix/725-idle-transition
Jul 2, 2026
Merged

fix(agent): drop redundant Idle transition that errored on every run#726
edenreich merged 1 commit into
mainfrom
fix/725-idle-transition

Conversation

@edenreich

Copy link
Copy Markdown
Contributor

Summary

EventDrivenAgent.Start() unconditionally called Transition(ctx, StateIdle), but the state machine is constructed in Idle and there is no Idle -> Idle edge — so the call failed on every run with invalid transition from Idle to Idle and logged an error + full stacktrace on every turn. It was harmless (the seeded MessageReceivedEvent drives the real Idle -> CheckingQueue flow) but became visible noise once #722 cleared the keybinding log flood that had masked it.

Fix

Delete the redundant transition — the loop already begins in Idle. Zero state-machine semantic change: the call never succeeded, so nothing that passed can break.

Test

TestStart_DoesNotRedundantlyTransitionToIdle asserts Start() issues no Idle-targeted transition (the first transition must be Idle -> CheckingQueue from the seeded event). Confirmed it fails if the removed line is restored.

go test ./..., task lint (0 issues), and task build all pass.

Closes #725

The event-driven agent's state machine is constructed in Idle and a fresh
machine backs every run, yet EventDrivenAgent.Start() unconditionally called
Transition(ctx, StateIdle). There is no Idle->Idle edge, so the call always
failed with "invalid transition from Idle to Idle" and logged an error with a
full stacktrace on every turn. It was harmless (the seeded MessageReceivedEvent
drives the real Idle->CheckingQueue flow) but noisy once #722 cleared the
unrelated keybinding log flood that had masked it.

Delete the redundant transition; the loop already begins in Idle. Add a
regression test asserting Start() issues no Idle-targeted transition.

Closes #725
@edenreich edenreich requested a review from a team as a code owner July 2, 2026 15:02
@edenreich edenreich merged commit 469ec64 into main Jul 2, 2026
1 check passed
@edenreich edenreich deleted the fix/725-idle-transition branch July 2, 2026 15:09
inference-gateway-releaser Bot added a commit that referenced this pull request Jul 3, 2026
## [0.128.0](v0.127.0...v0.128.0) (2026-07-03)

### 🚀 Features

* **chat:** make status indicators selectable with /tools and /a2a views ([#732](#732)) ([6882de0](6882de0)), closes [#717](#717) [#717](#717)

### 🐛 Bug Fixes

* **agent:** drop redundant Idle transition that errored on every run ([#726](#726)) ([469ec64](469ec64)), closes [#722](#722) [#725](#725)
* **agent:** report session-cumulative total_turns in completion logs ([#728](#728)) ([0d8fb08](0d8fb08)), closes [#727](#727)
* **a2a:** route active A2A reads and HasPending through the job supervisor ([#693](#693)) ([#721](#721)) ([dcd0670](dcd0670)), closes [#718](#718) [#719](#719) [#720](#720)
* **keybindings:** stop "unknown keybinding action" log flood ([#724](#724)) ([c828426](c828426)), closes [#714](#714) [#722](#722)
* **a2a:** unify background-job liveness, clear, and cancel on the supervisor contract ([#730](#730)) ([eb37fd0](eb37fd0)), closes [#693](#693) [#720](#720) [#718](#718) [#719](#719)
* **logging:** use structured key/value form at misused call sites ([#729](#729)) ([cd96028](cd96028)), closes [#722](#722) [#724](#724) [#724](#724) [#723](#723)
* **tools:** wait for pipe readers before reaping detached bash shells ([#716](#716)) ([e1d0d84](e1d0d84)), closes [#696](#696)

### ⚡ Performance Improvements

* **tui:** cache per-entry rendering and keep the Update loop responsive ([#731](#731)) ([8c9db0d](8c9db0d))

### 📚 Documentation

* **a2a:** add SKILL.md documentation for Agent2Agent protocol ([defcd57](defcd57))

### 🔧 Build System

* **deps:** bump golang.org/x/net from 0.47.0 to 0.55.0 in /examples/mcp/mcp-server ([#715](#715)) ([990803b](990803b))

### 🧹 Maintenance

* **flox:** bump dev deps ([d0c8f6b](d0c8f6b))
@inference-gateway-releaser

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.128.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Agent: "invalid transition from Idle to Idle" error logged on every run

1 participant