Commit graph

11 commits

Author SHA1 Message Date
Kent Overstreet
719d3a4856 agent_cycles: spawn-gate respects phase, not just presence
The surface_observe_cycle check was gated on \`self.agent_running("surface-observe")\`,
which returns true as long as any surface-observe agent has a pid in
\`self.agents\` — regardless of which phase that agent is in. So even
after the bail script learned to allow "one in surface + one in
post-surface" concurrency, the orchestrator still refused to spawn a
second agent for the whole cycle duration.

Replace the in-memory gate with an on-disk phase check that matches
the bail script's view of the world: scan the state dir for live
\`pid-*\` files (same ones the bail script reads and keeps fresh),
and only skip spawning if some live agent is currently in the
\`surface\` phase. If the existing agent has moved on to
\`organize-search\` / \`organize-new\` / \`observe\`, the new surface
agent can start while the old one finishes its tail.

The older agent's child handle gets dropped when \`self.agents[surface-observe]\`
is overwritten on spawn — OS reaps when it exits. That's fine: the
hook is short-lived, and cross-invocation liveness is checked via
\`libc::kill(pid, 0)\` on restored pid state, not via held child handles.

Also drop the "agent is N KB behind, sleep 5s" block. That loop only
made sense when spawns were serialized — its purpose was to give a
running agent a chance to complete before the current hook returned.
With parallelism, there's nothing to wait for: either a new surface
agent just started (no point waiting on it), or the existing agent
is in the surface phase and will finish when it finishes.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-16 15:42:56 -04:00
Kent Overstreet
6ec15776f1 mcp-server: auto-reconnect on broken pipe
When the daemon restarts, consciousness-mcp's socket connection goes
stale. Previously this caused all subsequent memory/journal tool calls
to fail with "Broken pipe" errors until manually restarted.

Now request() detects broken pipe/connection reset errors and
automatically reconnects to the daemon socket, re-initializes the
MCP session, and retries the request.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-14 18:56:38 -04:00
Kent Overstreet
55e5b08692 mcp-server: handle channel tools locally
Hybrid approach: forward memory/journal tools to daemon via socket,
but dispatch channel tools locally. Avoids extra daemon hop for
channel operations.

Adds channel_tool_definitions(), is_channel_tool(), dispatch_channel_tool()
and merges channel tools into tools/list response.

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
2026-04-13 16:44:37 -04:00
Kent Overstreet
6694d8a0bc update to memory_rpc rename
Follows consciousness commit renaming forward_to_daemon to memory_rpc.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-13 16:44:37 -04:00
Kent Overstreet
dba3210530 agent_cycles, memory-search: use forward_to_daemon instead of Store::load
Replace direct store access with calls to the daemon's memory_render
tool via MCP socket.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-13 16:44:37 -04:00
Kent Overstreet
5f30bc670e consciousness-mcp: forward tools/call params directly
Avoid extracting name/args and rebuilding - just forward the params
object as-is to the daemon.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-13 16:44:37 -04:00
Kent Overstreet
8b808e44af consciousness-mcp: forward to daemon socket instead of direct calls
Now connects to ~/.consciousness/mcp.sock and forwards tool calls to
the consciousness daemon instead of calling tool handlers directly.

Requires the consciousness daemon to be running with MCP server.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-13 16:44:36 -04:00
ProofOfConcept
899cdd0165 poc-daemon: reset nudge timer on tool use, move nudge interval to claude
PostToolUse now signals response activity so the nudge timer resets
while I'm actively working. Nudge interval constant moved from
thalamus (where it doesn't belong) to consciousness-claude.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-11 16:49:27 -04:00
ProofOfConcept
fa3b57fffd poc-daemon: fix pane tracking, suppress notifications when user present
Three fixes:

- Persist claude_pane via thalamus extra map so it survives every
  save path (not just explicit Save commands)
- Don't clobber claude_pane with empty string when TMUX_PANE is unset
- signal_response now passes TMUX_PANE like signal_user does
- maybe_prompt_notification returns early when user is present,
  preventing notification spam during active sessions

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
2026-04-11 14:35:16 -04:00
Kent Overstreet
4fe92b48fd fix mcp server error responses 2026-04-10 13:28:10 -04:00
Kent Overstreet
d2f5881838 initial commit 2026-04-09 19:57:50 -04:00