• v0.43.0 0ad4d54339

    joeyr released this 2026-08-24 18:48:01 -05:00 | 79 commits to main since this release

    Canvas C4: list_modules and get_page. The tenant is complete at nine tools.

    Added

    • list_modules — a course's outline in order, items inline, with each module's
      per-student state. That state is the only thing on this tenant that answers "where am
      I in this course"
      — grades say how it went, the planner says what is due, neither says
      what has been worked through. A null state means the course does not track progress,
      which is not "nothing started".
    • get_page — lecture notes, weekly overviews, exam guidance. The largest body of
      prose this tenant can reach: 78 of one course's 146 module items, median 4,620 characters.
    • Items say which tool can open them, or say nothing. opens_with is absent on Files,
      external links and publisher tools — a listing that presents a File identically to a Page
      invites a model to promise a reading it cannot deliver.

    Changed

    • list_module_items is dropped. include[]=items returns items inline for every
      module in one call, so a second tool would exist only to re-fetch what the first already
      returns — the argument that cancelled list_submissions.
    • get_page reverses the decision that declined pages. The original reasoning was
      sound in the abstract and wrong about this account: a page is smaller than the syllabus
      this tenant already returns. What the abstract argument could not see is that pages are
      over half of all module content, so declining them turned list_modules into a list of
      things nothing could open.

    Cost

    list_modules is the most expensive call in this project — 5.32 with items for one
    course, against 0.07–1.14 for everything else here. It takes a course_id rather than
    sweeping.

    Testing

    All eight new guards proved by breaking them — including "a File is openable, it has a
    url" and "the numeric id is the page handle", each of which would have left the two tools
    unusable together while looking correct apart.

    1383 tests green.

    Downloads