Headline: streaming chain-of-thought in the main chat
Watching the agent work used to mean staring at a blank screen while Codex ground for 30-180 seconds before responding. Same problem ChatGPT and Claude solved with streaming reasoning. EloPhanto now does it too — for both user-driven chat AND autonomous mind cycles.
Codex's Responses API streams reasoning-summary chunks; we wire those through a new AGENT_THOUGHT gateway event into the dashboard's main chat as dim italic 💭 lines:
─ You
go check alphascala.com
💭 Loading the homepage and scanning the navigation
· browser_navigate — load homepage
💭 Extracting menu labels and category structure
· browser_extract — pull nav items
💭 Cross-referencing the broker section with prior knowledge
· knowledge_search — find existing AlphaScala notes
─ AlphaScala codex/gpt-5.5
Here's what's on the site…
Autonomous mind cycles get the same treatment — when no one is typing:
◆ mind cycle #14 — waking to think
💭 Reviewing today's identity focus and recent dream history
· goal_dream — generate candidates for the creation lens
💭 Picking the candidate that fits the affect snapshot
· goal_create — commit chosen candidate
◆ mind: created a new goal from required dream phase
Only Codex exposes streaming reasoning summaries today; OpenRouter / Z.ai / Kimi calls still surface tool calls + planner thoughts via step_progress lines but not internal monologue.
Live activity in the main chat (not just the bottom ticker)
The chat was previously "user message → final response" and nothing in between. Every interesting beat (tool calls, checkpoints, mind cycles) sank into the 5-line events ticker at the bottom which is fine for debugging but unwatchable as a stream. Now layered onto the chat:
step_progress→ dim· tool_name — first line of planner thoughtline per tool fire. Scheduled tasks tagged[mind]so autonomous activity is visually distinct.goal_checkpoint_complete→✓ checkpoint N: titleline in OK-green. Gives the chat a tangible progress beat between long stretches of dim tool calls.mind_wakeup→◆ mind cycle #N — waking to thinkframes the upcoming autonomous burst instead of mystery activity.mind_action→◆ mind: <summary>closes the cycle's narrative beat.
All lines are dim+indented so the agent's final responses still pop visually.
Fast Codex by default
config.demo.yaml shipped with reasoning_effort: medium for planning and coding. On Codex/gpt-5.5 that produces 90-180s latency on tool-heavy planning prompts (versus 5-15s with low). Fresh installs now default to low across all four task types (planning, coding, analysis, simple).
Existing installs need to either re-run elophanto init or edit config.yaml directly — the existing medium could be intentional, so no auto-migration.
README clarity
Added a one-time callout right after the diagnostics block explaining that elophanto lives inside .venv/ (not on global PATH) and how to invoke it: either source .venv/bin/activate once or prefix any elophanto <cmd> with ./start.sh. New operators no longer hit zsh: command not found: elophanto on their second shell.
Commits
adba49c Stream Codex chain-of-thought into the main chat (covers autonomous mode too)
3424edf config.demo: reasoning_effort low across all task types (was medium for planning/coding)
8752641 Dashboard: stream live activity into the main chat (not just the ticker)
7b5a7eb README: explain that elophanto lives inside .venv (one-time callout)