Files
gochat/docs/parity/placeholder_audit.md
T

2.7 KiB

Phase 6 Placeholder Audit

Updated: 2026-06-07

Commands

rg -n "chatwootParityStub" internal/handler internal/service internal/router internal/channel
rg -n "chatwootParityStub" internal/router/router.go | wc -l
rg -n "chatwootParityStub|TODO|placeholder|stub|not implemented|unsupported" internal/handler internal/service internal/router -g'*.go'
scripts/parity_frontend_smoke.sh --check

Result

chatwootParityStub has been removed from product code. The exact scan returns no matches.

The broader placeholder scan still has no reused-frontend critical account/contact/conversation/message/inbox/widget/public handler placeholder. Non-stub matches are test doubles, expected validation errors such as unsupported file/search/bulk-action operations, excluded SSO/SAML placeholder notes, or explicit assertions that nil webhook fallbacks do not return placeholder bodies.

The previously remaining call sites were nil-handler guards for public webhook registration paths:

  • Telegram webhook callback.
  • WhatsApp verify and event callbacks.
  • TikTok verify and event callbacks.
  • LINE event callback.
  • Twilio SMS, delivery status, and root callback aliases.
  • Twitter CRC and event callbacks, including legacy aliases.
  • Instagram verify and event callbacks.
  • Shopify webhook callback.

No chatwootParityStub call site remains on any reused dashboard account/contact/conversation/message/inbox API path, widget API path, public help-center path, public inbox/contact/conversation/message API path, enterprise settings API path, or webhook fallback path.

Classification

The former defensive nil-handler fallbacks now return explicit 503 { error: "webhook provider unavailable", message: "webhook handler is not configured" } responses instead of placeholder/not-implemented bodies. In normal app bootstrap the matching provider handlers are wired and these branches do not define the route behavior. Provider-specific webhook behavior remains owned by the existing webhook/channel parity slices and future B12 or provider fixture failures.

Phase 6 is therefore in Review for the inspected placeholder surface. Reopen it only if a fresh rg audit or reused frontend smoke identifies a frontend-reachable chatwootParityStub, not implemented, or placeholder success response in account/contact/conversation/message/inbox/widget/public critical paths.

B12 Readiness

scripts/parity_frontend_smoke.sh --check passed and refreshed docs/parity/frontend_smoke_report.md. The first check attempt failed because /tmp was full; rerunning with workspace-local GOCACHE, GOTMPDIR, and TMPDIR succeeded. Live API/browser/enterprise smoke remains pending because it requires the full PostgreSQL, Redis, Meilisearch, GoChat, Vite, and Chrome stack.