towerops/test/towerops_web
Graham McIntire dbd4183f37 fix(llm): drop model name from footer, harden JSON parser
UI: the AI-generated footer dropped " · deepseek-v4-pro" — model
identity is irrelevant to operators reviewing the recommendation.

Parser: stop letting raw JSON leak into the summary text when the LLM
returns an almost-but-not-quite-valid response.

- Strip ```json fences (already done) PLUS try a balanced-brace
  extraction so a "Here's the JSON: {…}" preamble doesn't break
  Jason.decode
- When all decode paths fail, regex-extract `"summary"` and `"action"`
  fields from the text rather than dumping the whole blob with braces
  intact
- Last-ditch sanitiser strips remaining brace/quote noise so the
  rendered summary never shows literal `"summary"` keys

Maintenance: `Towerops.Maintenance.RepairLlmSummaries.run()` clears
`llm_enriched_at` on already-stored rows whose summaries contain JSON
artifacts so the next worker cycle re-enriches them with the new
parser.

Test: insights_live_events_test now asserts the AI-generated label is
present *and* that the model name does not leak into the rendered HTML.
2026-05-10 13:03:25 -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 fix(llm): drop model name from footer, harden JSON parser 2026-05-10 13:03:25 -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 feat(llm): per-insight-type prompt hints + flake fixes 2026-05-09 17:36:07 -05:00
user_auth_test.exs perf(tests): remove/reduce Process.sleep calls for faster tests 2026-03-06 07:57:30 -06:00