Skip to content

✨ feat: caller verification (PIN/TOTP), n8n nodes → CHA0S-CORP/n8n-nodes submodule, mcp<2 pin - #7

Merged
MaxwellDPS merged 6 commits into
mainfrom
feat/real-knowledge-doc
Aug 30, 2026
Merged

MaxwellDPS merged 6 commits into
mainfrom
feat/real-knowledge-doc

Conversation

@MaxwellDPS

Copy link
Copy Markdown
Collaborator

Summary

  • Caller identity verification — PIN + TOTP over DTMF, with REST endpoints and n8n verify resource (da0e416).
  • n8n node package moved out to CHA0S-CORP/n8n-nodes (packages/n8n-nodes-general-disarray, merged in n8n-nodes#1) and vendored back as the examples/n8n-nodes submodule pinned to its main (♻️ refactor: move the n8n node package to CHA0S-CORP/n8n-nodes (git submodule) #6). Compose files + CLAUDE.md repointed. After pulling: git submodule update --init examples/n8n-nodes && examples/n8n-nodes/packages/n8n-nodes-general-disarray/build.sh, then recreate n8n.
  • mcp>=1.0,<2 pin — mcp 2.x renames McpError/streamablehttp_client/FastMCP; unpinned CI resolved 2.1.1 and MCP tools silently no-op'd (aaef5e0).
  • e2e: silent captures surface as a clear assertion instead of a Speaches 500 (dab8e2a).

Test plan

  • Unit + component tiers green on feat/real-knowledge-doc (run 33282193042)
  • CI green on this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKMkHdB45r4sYaJ5AADdFx

Your Name and others added 6 commits August 29, 2026 12:42
…fixes

Adds the VERIFY tool, /verify REST endpoints, per-caller credential store,
outbound "call and verify" flow, MAP tool, and the n8n Verify resource.

Fixes from the bug sweep:
- gitignore data/verify_credentials.json; store file written 0600
- VERIFY_REQUIRED_TOOLS gate now applied to POST /tools/{name}/call|execute (403)
- GET /verify/otp/{id}: validate id, no silent global fallback (reserved id "global"),
  code + expires_in_s from one timestamp
- shared dtmf_collect.collect_dtmf_code for the VERIFY tool and /verify/call:
  barge-in mute, inter-digit auto-submit, '*' restarts the entry timer,
  configured VERIFY_CALL_PROMPT (pre-cached)
- session.dtmf_collecting suppresses barge-in and pauses the langgraph agent
  wall clock during keypad entry
- /verify/call: caller_id defaults to extension; empty entry no longer burns an
  attempt; hang-up before a code reports status=hangup
- constant-time compare tolerates non-ASCII (no 500); PBKDF2 off the event loop
- compose: sip-agent LLM_MODEL default matches served-model-name; open-webui on
  :3000 by default; VERIFY_CREDENTIALS_FILE surfaced; stale env/docs cleaned up

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G1BJ6xTCUv33SmD1jfAszU
…hes 500

When the agent never answers within the softphone's window the captured WAV
is near-silent and faster-whisper's VAD finds no clip timestamps, so Speaches
returns 500 and the e2e failure read as an STT outage. _transcribe now turns
that specific 500 into an AssertionError carrying the capture's duration/RMS
and a pointer at LLM/TTS latency in the agent log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cif4UNkx3Eo2K933V5kvWr
…ubmodule)

`examples/n8n-nodes-general-disarray/` now lives in the CHA0S-CORP/n8n-nodes
monorepo as `packages/n8n-nodes-general-disarray` (history preserved there) and
is vendored back here as the `examples/n8n-nodes` submodule, pinned to the
commit under review in CHA0S-CORP/n8n-nodes#1.

- both compose files bind-mount the package's dist from the new path
- CLAUDE.md documents the submodule + build flow

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKMkHdB45r4sYaJ5AADdFx
…MCP tools silently no-op)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKMkHdB45r4sYaJ5AADdFx
♻️ refactor: move the n8n node package to CHA0S-CORP/n8n-nodes (git submodule)
@MaxwellDPS
MaxwellDPS merged commit 25172e4 into main Aug 30, 2026
2 checks passed
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