feat: overhaul session documentation, PSA notes, and client communications

- Reformat PSA resolution/escalation notes: clean single-line header,
  steps with engineer responses inline, remove duplicate timing blocks,
  remove AI confidence section, add follow-up recommendations
- Standardize time display to decimal hours (e.g. 0.25 hrs) across all
  note formatters and status update context
- Add follow_up_recommendations to SessionDocumentation schema and
  surface in SessionDocView; extracted from resolution suggestion steps
- Add _build_what_we_know() helper: uses session.evidence_items when
  cockpit branch merges, falls back to deriving findings from steps
- Fix option label lookup in generate_status_update (was passing raw
  machine values to AI instead of human-readable labels)
- Add 'What We Know' section to status update ticket notes prompt
- Improve _build_session_context in resolution_output_generator to
  include intake text and full step details instead of truncated chat
- Add request_info audience type: client-facing information request
  that skips the length step and generates a numbered question list
- Improve client_update and email_draft prompts with per-context
  guidance (status/resolution/escalation) and fix escalation subject
  line from 'Specialist Review' to 'Specialist Assistance'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-04-05 15:18:31 +00:00
parent 22baad7992
commit f4143e52a1
7 changed files with 352 additions and 172 deletions

View File

@@ -117,6 +117,7 @@ export interface SessionDocumentation {
diagnostic_steps: DocumentationStep[]
resolution_summary: string | null
escalation_reason: string | null
follow_up_recommendations: string[]
total_steps: number
duration_display: string | null
generated_at: string
@@ -131,7 +132,7 @@ export interface SessionCloseResponse {
member_mapping_warning: string | null
}
export type StatusUpdateAudience = 'ticket_notes' | 'client_update' | 'email_draft'
export type StatusUpdateAudience = 'ticket_notes' | 'client_update' | 'email_draft' | 'request_info'
export type StatusUpdateLength = 'quick' | 'detailed'
export type StatusUpdateContext = 'status' | 'resolution' | 'escalation'