Skip to content

NOJIRA-Insight-tool-expansion-design - #1148

Merged
pchero merged 2 commits into
mainfrom
NOJIRA-Insight-tool-expansion-design
Jul 30, 2026
Merged

NOJIRA-Insight-tool-expansion-design#1148
pchero merged 2 commits into
mainfrom
NOJIRA-Insight-tool-expansion-design

Conversation

@pchero

@pchero pchero commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Expand Case Insight Assistant's tool whitelist with two new read-only
tools and let Insight AIs use the "all" tool shorthand, closing a
pre-existing production gap discovered while investigating the latter:
tool-list expansion had no AIType awareness and would fail open on AI
lookup failure. Design doc: docs/plans/2026-07-30-case-insight-assistant-tool-expansion-design.md
(5 rounds of independent architecture + security review, 2 consecutive
approvals). Frontend counterpart: voipbin/monorepo-javascript#408.

  • bin-ai-manager: add get_related_cases and get_case_notes tools, both
    scoped to the current case's CustomerID with fail-closed ownership
    checks and audit logging on cross-customer access attempts
  • bin-ai-manager: add AllowedToolNames(Type) as the single source of
    truth for the tool whitelist (deny-by-default for unknown types);
    refactor ValidateToolNames to use it and accept "all" for type=insight
  • bin-pipecat-manager: make GetByNames AIType-aware so it re-applies the
    whitelist at tool-expansion time regardless of what tool_names stores,
    closing a defense-in-depth gap (Normal AI's "all" was leaking the two
    Insight-only tools)
  • bin-pipecat-manager: change the AI-lookup-failure fallback from
    fail-open (GetAll(), every tool including write-capable ones) to
    fail-closed (no tools), reversing a prior VOIP-1234 decision now that
    tool access is enforced per-type; remove GetAll() from the
    ToolHandler interface entirely so this can't be silently reintroduced
  • bin-pipecat-manager: update docs/operations.md and metrics to reflect
    the fail-closed policy

pchero added 2 commits July 30, 2026 18:44
- bin-ai-manager: document get_related_cases/get_case_notes tool design (5-round reviewed, approved)
- bin-ai-manager: document AllowedToolNames single-source-of-whitelist helper for insight "all" support
- bin-pipecat-manager: document GetByNames AIType-aware defense-in-depth fix and fail-open-to-fail-closed policy change
Expand Case Insight Assistant's tool whitelist with two new read-only
tools and let Insight AIs use the "all" tool shorthand, closing a
pre-existing production gap discovered while investigating the latter:
tool-list expansion had no AIType awareness and would fail open on AI
lookup failure.

- bin-ai-manager: add get_related_cases and get_case_notes tools, both
  scoped to the current case's CustomerID with fail-closed ownership
  checks and audit logging on cross-customer access attempts
- bin-ai-manager: add AllowedToolNames(Type) as the single source of
  truth for the tool whitelist (deny-by-default for unknown types);
  refactor ValidateToolNames to use it and accept "all" for type=insight
- bin-pipecat-manager: make GetByNames AIType-aware so it re-applies the
  whitelist at tool-expansion time regardless of what tool_names stores,
  closing a defense-in-depth gap (Normal AI's "all" was leaking the two
  Insight-only tools)
- bin-pipecat-manager: change the AI-lookup-failure fallback from
  fail-open (GetAll(), every tool including write-capable ones) to
  fail-closed (no tools), reversing a prior VOIP-1234 decision now that
  tool access is enforced per-type; remove GetAll() from the
  ToolHandler interface entirely so this can't be silently reintroduced
- bin-pipecat-manager: update docs/operations.md and metrics to reflect
  the fail-closed policy
@pchero
pchero merged commit fd5d8bf into main Jul 30, 2026
2 of 3 checks passed
@pchero
pchero deleted the NOJIRA-Insight-tool-expansion-design branch July 30, 2026 14:08
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