towerops/test/towerops_web
Graham McIntire 03f364a956 feat(insights): LLM-powered insight enrichment
Adds an optional plain-language summary and recommended action to every
active insight. A new Oban cron worker runs every 5 minutes, picks up
unenriched insights, and asks the configured LLM to restate the finding
and suggest one specific action grounded in the structured metadata.

- Migration: adds llm_summary, recommended_action, llm_model,
  llm_enriched_at columns to preseem_insights
- Towerops.LLM context with swappable behaviour; real client uses Req
  with the standard Req.Test plug for test isolation
- MockClient + InsightPrompt module (builds chat messages, parses JSON
  with code-fence stripping and a raw-text fallback)
- Worker logs and skips on rate limits / missing key / parse errors so
  insights still render without an AI summary when the LLM is unavailable
- Optional towerops-llm k8s secret with example template; deployment.yaml
  references it as optional in both init and main containers
- UI renders summary + recommended action callout on /insights and on
  the org-level insights page
2026-05-09 16:41:48 -05:00
..
channels update 2026-05-09 15:24:00 -05:00
components test: lift coverage from 85.84% → 86.28% 2026-05-08 17:44:18 -05:00
controllers update 2026-05-09 15:24:00 -05:00
endpoint test: add LiveView tests following testing-liveview patterns 2026-05-07 12:55:39 -05:00
graphql test: GraphQL.Resolvers.Schedule and Device coverage 2026-05-09 14:16:21 -05:00
helpers test: lift coverage from 85.84% → 86.28% 2026-05-08 17:44:18 -05:00
integration Merge remote-tracking branch 'origin/main' into feature/preseem-integration 2026-02-13 09:11:45 -06:00
live feat(insights): LLM-powered insight enrichment 2026-05-09 16:41:48 -05:00
plugs test(agent_channel): cover assignment-disabled, missing-check, wrong-org branches 2026-05-09 13:38:35 -05:00
changelog_parser_test.exs remove-gleam (#218) 2026-03-29 11:03:20 -05:00
graphql_socket_test.exs add mobile token auth to GraphQL endpoint (#48) 2026-03-16 15:23:07 -05:00
permissions_test.exs fix snmp v3 test 2026-02-06 10:21:54 -06:00
plug_exceptions_test.exs handle exceptions gracefully on api endpoints 2026-02-04 12:18:14 -06:00
remote_ip_test.exs dialyzer: replace suppressions with real fixes where possible 2026-04-21 11:01:30 -05:00
telemetry_filter_test.exs Add GeoIP import HTTP tests 2026-03-10 16:02:49 -05:00
telemetry_test.exs test: expand coverage across resolvers, vendors, controllers, workers 2026-05-07 14:23:58 -05:00
user_auth_test.exs perf(tests): remove/reduce Process.sleep calls for faster tests 2026-03-06 07:57:30 -06:00