Pulse/docs/release-control
rcourtman 15f6881d89 Document the chat-side narrator wiring in ai-runtime contract
Follow-up to 03463c1bf which threaded the per-tenant report
narrators through chat.Config -> tools.ExecutorConfig ->
PulseToolExecutor so pulse_summarize can produce AI-narrated
synthesis in chat instead of heuristic-only. ai-runtime.md's
Current State paragraph documents the wiring:
- chat.Config carries three optional fields (ReportNarrator,
  ReportFleetNarrator, ReportFindingsProvider) threaded through
  to the executor at session construction time.
- The router installs a SetReportNarratorResolver closure that
  mirrors the reporting handler's pattern, asking the
  AISettingsHandler for the per-tenant ai.Service and returning
  it as the implementation for all three roles when AI is
  enabled.
- Unconfigured tenants still get the heuristic fallback —
  matching the report PDF's graceful-degradation posture.
- AI-narrated chat synthesis uses the same provider, sanitizer,
  model selection, cost ledger (report_narrative /
  report_narrative_fleet use-cases), and budget gate the report
  PDF endpoint enforces, so there is exactly one canonical
  synthesis path for both surfaces.
2026-05-10 22:51:17 +01:00
..
internal Clear v6 prerelease-to-GA promotion gate 2026-04-20 16:33:03 +01:00
v6 Document the chat-side narrator wiring in ai-runtime contract 2026-05-10 22:51:17 +01:00
control_plane.json Capture Pulse Intelligence product direction 2026-05-06 15:56:45 +01:00
control_plane.schema.json Map legacy stable releases in control plane 2026-04-11 13:23:07 +01:00