11 Commits

Author SHA1 Message Date
hungtran24
5c61227e6f fix: drop temperature from AI requests and make the trial scenario editable
- gpt-6-luna on AIHub rejects temperature=0 (HTTP 400), which made every
  call without reasoning_effort fall back; no longer send temperature.
- Fixtures page edits the scenario as JSON instead of a fixed preview;
  backend validation errors are shown.
- AI profile form keeps submitted values after a trial run.
- Record the live AIHub check in the spec and README.
2026-10-09 08:32:19 +07:00
hungtran24
6577bb74be refactor: simplify scoring service, AI profile revisions and test suite
Phase 2 and 3 of the platform rework.

- Neutral request/response contract: external_id, metadata, X-AI-Key,
  run_id in the response; client-specific fields removed.
- AI profile is a revision table: saving creates an inactive revision,
  activation is separate, try-run does not store a run. One
  chat-completions gateway serves AIHub and OpenAI-compatible profiles.
- Add between and in rule operators.
- Contracts moved to contracts/lead-scoring/ with a score-response fixture.
- Admin Web updated for revisions, runs and the neutral fixture.
- Consolidate tests; remove rewrite_architect.md and the stale handoff doc;
  rewrite spec, CONTEXT and ARCHITECTURE for the current design.

Not verified: live AIHub/OpenAI behavior, Omni/EMS integration.
2026-10-09 08:23:21 +07:00
hungtran24
b1f6643796 refactor: score synchronously and drop webhook/background execution
POST /v1/lead-scoring/score now evaluates in the request, applies an overall
AI deadline, and stores the completed run only after scoring. Idempotency is
kept by (app_id, account_id, request_id) with a body fingerprint.

Removes the webhook outbox, scheduler/recovery loop, app lead_scoring
permission, credential audit events, seed_demo and generate_secret scripts,
and the tests that covered them. Trims tests to behavior of the new flow.
2026-10-09 02:44:24 +07:00
hungtran24
655202455b fix: align Ruff checks and isolate configuration tests 2026-10-02 12:31:42 +07:00
hungtran24
d5e096b952 chore: simplify dev port lookup and isolate settings tests
Resolve the shared backend port once for make dev and reuse it in the child make. Keep pure configuration tests independent of local credentials and URLs without altering integration database settings.
2026-10-02 11:58:19 +07:00
hungtran24
8082a9f968 chore: streamline local development and fixture tooling
Run backend and web with a shared configurable port, add local webhook and secret-generation helpers with tests, and document current app-auth and fixture workflows.
2026-10-02 10:58:09 +07:00
hungtran24
2268b6a77a feat: replace tenant auth with app-scoped scoring access
Add app credentials, account-scoped idempotency and per-app terminal notifications. Consolidate the unreleased migration baseline, preserve rule descriptions as AI context, and regenerate provider contracts with regression coverage.
2026-10-02 10:56:58 +07:00
hungtran24
9cd27caa24 feat: complete Lead Scoring backend and Omni notification contract 2026-09-28 23:10:28 +07:00
hungtran24
5f77f68100 feat: add Lead Scoring v2 backend and contract 2026-09-25 09:55:25 +07:00
hungtran24
81c3de8087 chore: archive legacy implementation and document rebuild 2026-09-25 09:54:57 +07:00
hungtran24
9d90440e54 chore: initialize AI Platform repository 2026-09-14 09:57:12 +07:00