Skip to content

Remove references to the deleted /agent-notify endpoint - #11

Merged
malpern merged 1 commit into
mainfrom
fix-stale-agent-notify-refs
Jul 25, 2026
Merged

Remove references to the deleted /agent-notify endpoint#11
malpern merged 1 commit into
mainfrom
fix-stale-agent-notify-refs

Conversation

@malpern

@malpern malpern commented Jul 25, 2026

Copy link
Copy Markdown
Owner

The problem

786227c ("Delete agent-speech subsystem") removed /agent-notify, AgentNotificationKind, agentSpeechMode/Verbosity, and the agent_notify_url status key. The code change was complete; the docs and commands around it were not.

What was actually broken for users:

  • voxclaw-say has no --kind flag (correctly removed in 913985b for the /read-only architecture), but .claude/commands/voxclaw-summary.md, voxclaw-progress.md and voxclaw-failure.md all still piped through --kind. All three printed usage and exited 2 instead of speaking.
  • CLAUDE.md and AGENTS.md instructed every agent working in this repo to invoke voxclaw-say --kind summary, so the documented speech convention could never succeed.
  • CLAUDE.md justified always emitting via the agentSpeechMode setting, which no longer exists.
  • SKILL.md — served to agents as skill_doc in the /status payload — documented POST /agent-notify with a required kind field, a {"status":"suppressed"} response, and agent_speech_mode/verbosity status keys. Agents following it would POST to an endpoint that 404s.
  • GET /status itself advertised agent_notify_url in its agent_handoff string, pointing agents at the dead endpoint.

The fix

Docs, demo, and slash commands now describe the /read-only architecture the code implements. README.md and SKILL.md's 404 row list the routes that actually exist (/read, /ack, /control, /status, /claw). The presentation's "three endpoints" list swaps the dead entry for POST /ack, which is real.

AgentHandoffPrompt already had a test asserting it contains no agent_notify, but the hardcoded duplicate string in NetworkSession.handleStatus wasn't covered — which is exactly how it survived the original cleanup. The status integration test now asserts the same thing about the served payload.

docs/refactor-roadmap.md is left alone: it correctly records the removal as history.

Verification

  • swift build clean; swift test — 279 tests in 35 suites pass.
  • Confirmed the new assertion actually guards: re-introducing agent_notify_url into the status string makes statusEndpointReturnsOK fail on !body.contains("agent_notify"), and removing it passes again.
  • grep for agent-notify/agent_notify/--kind/agentSpeech/suppressed across the repo returns nothing outside the roadmap doc and the tests that assert their absence.

🤖 Generated with Claude Code

786227c deleted the agent-speech subsystem end-to-end (AgentNotificationKind,
the /agent-notify route, agentSpeechMode/Verbosity, and the agent_notify_url
status key), but the docs, the plugin demo, and the three project slash
commands were never updated to match.

The user-visible break: voxclaw-say has no --kind flag, so /voxclaw-summary,
/voxclaw-progress and /voxclaw-failure printed usage and exited 2 instead of
speaking, and CLAUDE.md and AGENTS.md told every agent to invoke it that way.

The status payload also still advertised agent_notify_url in its agent_handoff
string, pointing agents at an endpoint that 404s. AgentHandoffPrompt already
had a test guarding that string; the hardcoded copy in NetworkSession did not,
so extend the status integration test to cover it too.

Docs now describe the /read-only architecture the code actually implements.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@malpern
malpern merged commit 729b124 into main Jul 25, 2026
2 checks passed
@malpern
malpern deleted the fix-stale-agent-notify-refs branch July 25, 2026 18:47
@malpern malpern mentioned this pull request Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant