Add AI grading statistics/feedback and refined AI comment persistence workflow #2282
Annotations
4 errors and 26 warnings
|
Run CI
Process completed with exit code 2.
|
|
Run CI:
test/cadet_web/admin_controllers/admin_llm_stats_controller_test.exs#L24
test GET /v2/courses/:course_id/admin/llm-stats returns course-level llm stats and assessment breakdown (CadetWeb.AdminLLMStatsControllerTest)
|
|
Run CI:
test/cadet_web/admin_controllers/admin_llm_stats_controller_test.exs#L15
test GET /v2/courses/:course_id/admin/llm-stats 403 for students (CadetWeb.AdminLLMStatsControllerTest)
|
|
Run CI:
test/cadet_web/controllers/ai_code_analysis_controller_test.exs#L108
test GET /v2/courses/:course_id/admin/generate-comments/:answer_id errors out when given an invalid course id (CadetWeb.AICodeAnalysisControllerTest)
|
|
Run CI
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: erlef/setup-elixir@v1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run CI
attempting to determine the presence of embed_many field :choices with validate_required/3 or field_missing?/2 which has no effect. You can pass the :required option to Ecto.Changeset.cast_embed/3 to achieve this.
|
|
Run CI
attempting to determine the presence of embed_many field :choices with validate_required/3 or field_missing?/2 which has no effect. You can pass the :required option to Ecto.Changeset.cast_embed/3 to achieve this.
|
|
Run CI
attempting to determine the presence of embed_many field :choices with validate_required/3 or field_missing?/2 which has no effect. You can pass the :required option to Ecto.Changeset.cast_embed/3 to achieve this.
|
|
Run CI:
test/cadet/assessments/assessments_test.exs#L3241
50..1 has a default step of -1, please write 50..1//-1 instead
|
|
Run CI:
test/cadet/assessments/assessments_test.exs#L3228
50..1 has a default step of -1, please write 50..1//-1 instead
|
|
Run CI
using map.field notation (without parentheses) to invoke function Que.Persistence.Mnesia.DB.Jobs.__info__() is deprecated, you must add parentheses instead: remote.function()
|
|
Run CI
using map.field notation (without parentheses) to invoke function Que.Persistence.Mnesia.DB.Jobs.__info__() is deprecated, you must add parentheses instead: remote.function()
|
|
Run CI
:included_environments option is deprecated. Use :dsn to control whether to send events to Sentry.
|
|
Run CI
router paths should begin with a forward slash, got: ""
|
|
Run CI
passing non-atom as application env key is deprecated, got: [CadetWeb.Endpoint, :cors_endpoints]
|
|
Run CI
using map.field notation (without parentheses) to invoke function Que.Persistence.Mnesia.DB.Jobs.__info__() is deprecated, you must add parentheses instead: remote.function()
|
|
Run CI
using map.field notation (without parentheses) to invoke function Que.Persistence.Mnesia.DB.Jobs.__info__() is deprecated, you must add parentheses instead: remote.function()
|
|
Run CI
:included_environments option is deprecated. Use :dsn to control whether to send events to Sentry.
|
|
Run CI
router paths should begin with a forward slash, got: ""
|
|
Run CI
passing non-atom as application env key is deprecated, got: [CadetWeb.Endpoint, :cors_endpoints]
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
Range.new/2 and first..last default to a step of -1 when last < first. Use Range.new(first, last, -1) or first..last//-1, or pass 1 if that was your intention
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|
|
Run CI
first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it
|