diff --git a/VERSION b/VERSION index 9e11b32..d15723f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.1 +0.3.2 diff --git a/cmd/nomos/store.go b/cmd/nomos/store.go index f0fa538..aab9570 100644 --- a/cmd/nomos/store.go +++ b/cmd/nomos/store.go @@ -358,13 +358,16 @@ func (s *store) taskEntityPtr(ctx context.Context, sessionID string) *uuid.UUID return &id } -// setGoal records the task's goal and moves it into planning. Emits goal.set. +// setGoal records the task's goal and moves it into executing. The `planning` +// intermediate state was removed (2026-07-14) — it was indistinguishable from +// `active` to the operator and caused sessions to appear stuck when the agent +// called set_goal but never propose_plan (observed in production). func (s *store) setGoal(ctx context.Context, sessionID, goal string) error { if s == nil || sessionID == "" || sessionID == "ephemeral" { return nil } if _, err := s.pool.Exec(ctx, - `UPDATE agent_sessions SET goal = $2, status = 'planning', last_active_at = now() WHERE id = $1`, + `UPDATE agent_sessions SET goal = $2, status = 'executing', last_active_at = now() WHERE id = $1`, sessionID, goal); err != nil { return err } diff --git a/web/src/lib/components/SessionDigest.svelte b/web/src/lib/components/SessionDigest.svelte index 141cba4..363c703 100644 --- a/web/src/lib/components/SessionDigest.svelte +++ b/web/src/lib/components/SessionDigest.svelte @@ -1,19 +1,20 @@ +{#if $streaming && $currentSession} +
{JSON.stringify(tool.args, null, 2)}
- {/if}
- {#if tool.type === 'tool_result'}
- {tool.error ?? JSON.stringify(tool.result, null, 2)}
- {/if}
-