Skip to content

Releases

v5.2.5

Choose a tag to compare

@github-actions github-actions released this 14 Nov 14:43
8cc51bb

What's Changed

  • fix: say why get_available_groups lists a sign-up in unreadCategories (5.2.5) by @RohanMuppa in #446

Full Changelog: v5.2.4...v5.2.5

v5.2.4

Choose a tag to compare

@github-actions github-actions released this 13 Nov 14:44
d6d7d96

What's Changed

  • fix: say when get_my_groups couldn't read the groups (5.2.4) by @RohanMuppa in #443

Full Changelog: v5.2.3...v5.2.4

v5.2.3

Choose a tag to compare

@github-actions github-actions released this 12 Nov 14:43
a808f59

What's Changed

  • fix: stop blaming a missing staff role when the dropbox folder list returns 403 (5.2.3) by @RohanMuppa in #438

Full Changelog: v5.2.2...v5.2.3

v5.2.2

Choose a tag to compare

@github-actions github-actions released this 11 Nov 19:39
8e0788f

What's Changed

  • docs: give each reader one page and each fact one home, and fail CI when docs drift (5.2.2) by @RohanMuppa in #435

Full Changelog: v5.2.1...v5.2.2

v5.2.1

Choose a tag to compare

@github-actions github-actions released this 10 Nov 21:05
0e395e4

What's Changed

  • fix: say when get_course_content couldn't read completion progress by @RohanMuppa in #432
  • docs: explain every sign-in message, add CLAUDE.md, and fail CI when docs drift by @RohanMuppa in #430

Full Changelog: v5.2.0...v5.2.1

v5.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 04:28
da7ed79

What's Changed

  • feat: download or sync a whole course (download_course_files + sync command), 5.2.0 by @RohanMuppa in #425

Full Changelog: v5.1.44...v5.2.0

v5.1.44

Choose a tag to compare

@github-actions github-actions released this 10 Nov 03:05
e15005b

What's Changed

  • fix: give a resent MFA number its own approval window by @RohanMuppa in #426

Full Changelog: v5.1.43...v5.1.44

v5.1.43

Choose a tag to compare

@github-actions github-actions released this 10 Nov 00:09
95bd1eb

What's Changed

  • fix: name group categories get_my_groups couldn't read (#272) by @RohanMuppa in #273
  • fix: read both npm pack --json shapes in the release packaging test by @RohanMuppa in #271
  • fix: treat email usernames as case-insensitive without losing saved credentials by @RohanMuppa in #269
  • get_server_info: say plainly that "stay signed in" doesn't skip 2FA (#227) by @RohanMuppa in #275
  • Deflake relayed-mfa-wait for good: run the poll's file calls in microtasks by @RohanMuppa in #274
  • fix: stop reporting a failed feedback read as "not graded" in the dropbox submission tools (#276) by @RohanMuppa in #277
  • fix: say when get_my_grades couldn't read a course's quiz list (#278) by @RohanMuppa in #279
  • feat: share one local Brightspace server over Streamable HTTP by @ElliotDrel in #284
  • chore(deps): bump file-type from 21.3.4 to 22.1.1 by @dependabot[bot] in #251
  • Require Node.js 22 (drop Node 20) — 5.0.0 by @RohanMuppa in #289
  • fix: save legacy Office originals that download_file was refusing as application/x-cfb when customFilename has a modern extension by @RohanMuppa in #288
  • Get BoilerCast transcripts through Brightspace's LTI 1.3 launch (#281) by @RohanMuppa in #314
  • fix: read the student's feedback page when the submission list is refused (#282) by @RohanMuppa in #287
  • feat: give get_video_transcript failures a structured reason and recovery path (#283) by @RohanMuppa in #286
  • fix: update a git checkout to the latest npm release instead of unreleased main by @RohanMuppa in #299
  • fix: refuse to update a dirty, off-main, or diverged checkout and fast-forward only by @RohanMuppa in #297
  • fix: finish an interrupted update instead of reporting Already up to date by @RohanMuppa in #300
  • fix: tell shared HTTP users to restart the server, not the client, to update by @RohanMuppa in #301
  • fix: keep an app that uses the shared HTTP server as set up instead of suggesting stdio by @RohanMuppa in #302
  • fix: stop setup diagnostics from printing headers and URL secrets of HTTP registrations by @RohanMuppa in #298
  • fix: fail with usage on an unknown subcommand instead of starting stdio by @RohanMuppa in #306
  • fix(setup): redact credentials from stdio registration diagnostics by @ElliotDrel in #305
  • fix: accept /content/enforced links as download_file coursePath by @RohanMuppa in #309
  • feat: start or reuse one shared runtime from the normal stdio command by @RohanMuppa in #310
  • feat: log timestamped startup phases before credential-store lookups by @RohanMuppa in #313
  • fix: read the credential store once at startup, in the shared runtime by @RohanMuppa in #350
  • feat: record a safe error category for failed tools in the dev activity log by @RohanMuppa in #331
  • test: name a leaked runtime on Windows instead of failing on a held temp folder by @RohanMuppa in #351
  • fix: name the operation behind each dev activity HTTP status by @RohanMuppa in #330
  • fix: join auth child dev activity to its parent recovery and record the runtime version by @RohanMuppa in #332
  • docs: say download_file disk destinations must already exist by @RohanMuppa in #335
  • Restore missing Chromium automatically and add installation-scoped repair by @ElliotDrel in #346
  • test: time out the idle-restart test at 60 s and print where it waited by @RohanMuppa in #356
  • fix: stop pagination on an unparseable absolute Next link instead of losing fetched pages (#323) by @RohanMuppa in #325
  • test: keep a runtime from an earlier test out of the next one, and give cleanup time by @RohanMuppa in #358
  • chore(deps): bump the minor-and-patch group across 1 directory with 5 updates by @dependabot[bot] in #340
  • chore(deps): bump dotenv from 17.2.4 to 18.0.8 by @dependabot[bot] in #341
  • test: retry the install smoke test's rename while Windows still holds the folder by @RohanMuppa in #359
  • fix: warn on malformed D2L_INCLUDE_COURSES / D2L_EXCLUDE_COURSES instead of showing every course by @RohanMuppa in #343
  • fix: replace a shared runtime left behind when its pid now belongs to another process by @RohanMuppa in #348
  • fix: keep an out-of-range numeric character reference as written instead of throwing by @RohanMuppa in #353
  • fix: update locked transitive deps so npm audit passes again by @RohanMuppa in #363
  • fix: decode each HTML character reference once so an encoded ampersand stays literal by @RohanMuppa in #361
  • fix: read a discussion topic from its forum's topic list and report forbidden posts as unavailable by @RohanMuppa in #365
  • feat: mint a Bearer token from D2L_SESSION_COOKIE over plain HTTP by @RohanMuppa in #357
  • fix: tell the user to paste a fresh credential when D2L_SESSION_COOKIE or D2L_ACCESS_TOKEN is rejected by @RohanMuppa in #366
  • fix: say what a retry and sign_out do to the MFA prompt, and report when Microsoft holds a new one back by @RohanMuppa in #354
  • fix: report a pending or refused sign-in from search_course, course files and doctor instead of hiding it by @RohanMuppa in #368
  • fix: let auth --logout cancel a background sign-in an AI app started, as sign_out does by @RohanMuppa in #369
  • Reject malformed authorities in enforced course-file URLs by @ElliotDrel in #373
  • fix: leave a quiz's bestScore null while its attempts await grading instead of reporting 0 by @RohanMuppa in #375
  • fix: keep a tag's later attributes when an earlier quoted value contains ">" by @RohanMuppa in #378
  • feat: add a sign_in tool so an AI app can start a sign-in itself by @Mtehabsim in #379
  • fix: cap how far Office text extraction inflates a ZIP so a crafted attachment can't exhaust memory by @RohanMuppa in #381
  • fix: say when get_upcoming_due_dates couldn't read a course's assignments, quizzes, discussions or calendar by @RohanMuppa in #384
  • fix: stop false "could not be reached" sign-in failures and needless sign-in windows by @RohanMuppa in #385
  • chore(deps): bump the minor-and-patch group with 2 updates by @dependabot[bot] in #386
  • chore: drop the unused cacheTTLs client option and turn on unused-code checks by @RohanMuppa in #392
  • fix: say why get_my_groups member names are null when the classlist can't be read by @RohanMuppa in #394
  • fix: say when get_roster couldn't read a course's instructors or TAs by @RohanMuppa in #397
  • fix: say when get_discussions couldn't read a forum's topics or a topic's posts by @RohanMuppa in #399
  • fix: say when get_course_content couldn't read a module's contents by @RohanMuppa in #406
  • fix: stop a terminal win...
Read more

v5.1.42

Choose a tag to compare

@github-actions github-actions released this 10 Nov 00:09
fdb9c6d

What's Changed

  • fix: name group categories get_my_groups couldn't read (#272) by @RohanMuppa in #273
  • fix: read both npm pack --json shapes in the release packaging test by @RohanMuppa in #271
  • fix: treat email usernames as case-insensitive without losing saved credentials by @RohanMuppa in #269
  • get_server_info: say plainly that "stay signed in" doesn't skip 2FA (#227) by @RohanMuppa in #275
  • Deflake relayed-mfa-wait for good: run the poll's file calls in microtasks by @RohanMuppa in #274
  • fix: stop reporting a failed feedback read as "not graded" in the dropbox submission tools (#276) by @RohanMuppa in #277
  • fix: say when get_my_grades couldn't read a course's quiz list (#278) by @RohanMuppa in #279
  • feat: share one local Brightspace server over Streamable HTTP by @ElliotDrel in #284
  • chore(deps): bump file-type from 21.3.4 to 22.1.1 by @dependabot[bot] in #251
  • Require Node.js 22 (drop Node 20) — 5.0.0 by @RohanMuppa in #289
  • fix: save legacy Office originals that download_file was refusing as application/x-cfb when customFilename has a modern extension by @RohanMuppa in #288
  • Get BoilerCast transcripts through Brightspace's LTI 1.3 launch (#281) by @RohanMuppa in #314
  • fix: read the student's feedback page when the submission list is refused (#282) by @RohanMuppa in #287
  • feat: give get_video_transcript failures a structured reason and recovery path (#283) by @RohanMuppa in #286
  • fix: update a git checkout to the latest npm release instead of unreleased main by @RohanMuppa in #299
  • fix: refuse to update a dirty, off-main, or diverged checkout and fast-forward only by @RohanMuppa in #297
  • fix: finish an interrupted update instead of reporting Already up to date by @RohanMuppa in #300
  • fix: tell shared HTTP users to restart the server, not the client, to update by @RohanMuppa in #301
  • fix: keep an app that uses the shared HTTP server as set up instead of suggesting stdio by @RohanMuppa in #302
  • fix: stop setup diagnostics from printing headers and URL secrets of HTTP registrations by @RohanMuppa in #298
  • fix: fail with usage on an unknown subcommand instead of starting stdio by @RohanMuppa in #306
  • fix(setup): redact credentials from stdio registration diagnostics by @ElliotDrel in #305
  • fix: accept /content/enforced links as download_file coursePath by @RohanMuppa in #309
  • feat: start or reuse one shared runtime from the normal stdio command by @RohanMuppa in #310
  • feat: log timestamped startup phases before credential-store lookups by @RohanMuppa in #313
  • fix: read the credential store once at startup, in the shared runtime by @RohanMuppa in #350
  • feat: record a safe error category for failed tools in the dev activity log by @RohanMuppa in #331
  • test: name a leaked runtime on Windows instead of failing on a held temp folder by @RohanMuppa in #351
  • fix: name the operation behind each dev activity HTTP status by @RohanMuppa in #330
  • fix: join auth child dev activity to its parent recovery and record the runtime version by @RohanMuppa in #332
  • docs: say download_file disk destinations must already exist by @RohanMuppa in #335
  • Restore missing Chromium automatically and add installation-scoped repair by @ElliotDrel in #346
  • test: time out the idle-restart test at 60 s and print where it waited by @RohanMuppa in #356
  • fix: stop pagination on an unparseable absolute Next link instead of losing fetched pages (#323) by @RohanMuppa in #325
  • test: keep a runtime from an earlier test out of the next one, and give cleanup time by @RohanMuppa in #358
  • chore(deps): bump the minor-and-patch group across 1 directory with 5 updates by @dependabot[bot] in #340
  • chore(deps): bump dotenv from 17.2.4 to 18.0.8 by @dependabot[bot] in #341
  • test: retry the install smoke test's rename while Windows still holds the folder by @RohanMuppa in #359
  • fix: warn on malformed D2L_INCLUDE_COURSES / D2L_EXCLUDE_COURSES instead of showing every course by @RohanMuppa in #343
  • fix: replace a shared runtime left behind when its pid now belongs to another process by @RohanMuppa in #348
  • fix: keep an out-of-range numeric character reference as written instead of throwing by @RohanMuppa in #353
  • fix: update locked transitive deps so npm audit passes again by @RohanMuppa in #363
  • fix: decode each HTML character reference once so an encoded ampersand stays literal by @RohanMuppa in #361
  • fix: read a discussion topic from its forum's topic list and report forbidden posts as unavailable by @RohanMuppa in #365
  • feat: mint a Bearer token from D2L_SESSION_COOKIE over plain HTTP by @RohanMuppa in #357
  • fix: tell the user to paste a fresh credential when D2L_SESSION_COOKIE or D2L_ACCESS_TOKEN is rejected by @RohanMuppa in #366
  • fix: say what a retry and sign_out do to the MFA prompt, and report when Microsoft holds a new one back by @RohanMuppa in #354
  • fix: report a pending or refused sign-in from search_course, course files and doctor instead of hiding it by @RohanMuppa in #368
  • fix: let auth --logout cancel a background sign-in an AI app started, as sign_out does by @RohanMuppa in #369
  • Reject malformed authorities in enforced course-file URLs by @ElliotDrel in #373
  • fix: leave a quiz's bestScore null while its attempts await grading instead of reporting 0 by @RohanMuppa in #375
  • fix: keep a tag's later attributes when an earlier quoted value contains ">" by @RohanMuppa in #378
  • feat: add a sign_in tool so an AI app can start a sign-in itself by @Mtehabsim in #379
  • fix: cap how far Office text extraction inflates a ZIP so a crafted attachment can't exhaust memory by @RohanMuppa in #381
  • fix: say when get_upcoming_due_dates couldn't read a course's assignments, quizzes, discussions or calendar by @RohanMuppa in #384
  • fix: stop false "could not be reached" sign-in failures and needless sign-in windows by @RohanMuppa in #385
  • chore(deps): bump the minor-and-patch group with 2 updates by @dependabot[bot] in #386
  • chore: drop the unused cacheTTLs client option and turn on unused-code checks by @RohanMuppa in #392
  • fix: say why get_my_groups member names are null when the classlist can't be read by @RohanMuppa in #394
  • fix: say when get_roster couldn't read a course's instructors or TAs by @RohanMuppa in #397
  • fix: say when get_discussions couldn't read a forum's topics or a topic's posts by @RohanMuppa in #399
  • fix: say when get_course_content couldn't read a module's contents by @RohanMuppa in #406
  • fix: stop a terminal win...
Read more

Brightspace MCP v4.0.0

Choose a tag to compare

@RohanMuppa RohanMuppa released this 08 Nov 18:53
0a2d7cf

Brightspace MCP v4.0.0.