Ментор від Читай

Журнал змін

Поточна версія — 1.0.0-beta.6.

Правила

Versioning policy (FR-032): [semver](https://semver.org). Agents and their operators depend on tool names, input fields and result fields, so:

  • Major — a tool, an input field or a result field is removed, renamed, or changes meaning; a required input field is added.
  • Minor — a tool is added; an optional input field or a result field is added.
  • Patch — descriptions, documentation and fixes that do not change a shape.

A pre-release (-beta.N) may break any of this, and says so here.

Every release bumps version.ts and adds an entry below, newest first.

1.0.0-beta.6 — 2026-10-04

Sign-in with OAuth (ChatGPT and other MCP clients), and lessons generated for a course.

  • OAuth 2.1. Besides a personal token, a client may now sign the teacher in: authorization code + PKCE (S256), public clients only. Discovery: WWW-Authenticate: Bearer resource_metadata="…" on 401, /.well-known/oauth-protected-resource/api/mcp (RFC 9728) and /.well-known/oauth-authorization-server (RFC 8414). Clients register with a client ID metadata document (an https client_id) or dynamic registration (RFC 7591). Access tokens (chitay_oat_…) last an hour; refresh tokens rotate. A connection appears in the teacher's token list and is revoked there like a token.
  • Every tool in tools/list now has annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) and securitySchemes (the OAuth scope it needs). Destructive: tutor_delete_block, tutor_archive_lesson, tutor_remove_lesson_from_course, tutor_update_block.
  • scope_missing for an OAuth connection carries _meta["mcp/www_authenticate"], so the client can offer to sign in again with the missing scope.
  • tutor_generate_lesson: three optional fields. courseId writes the lesson for that course — the course's title, level, audience, outcomes, outline and what the previous lessons taught go into the brief — and adds it to the course at position (default last); subject and level default to the course's, so subject is no longer required. generateExercises: true continues past the material step: the model plans the lesson and the exercises are generated, with no extra quota. The result has course when courseId was given.
  • tutor_get_generation_status reports such a lesson as generating until it is done.

1.0.0-beta.5 — 2026-10-01

Descriptions and rules take formatted text.

  • The course description in tutor_create_course and tutor_update_course is formatted text: **bold**, *italic*, ~~strike~~, blank-line paragraphs, - and 1. lists, > quote. Up to 2,000 visible characters (markers not counted); maxLength is now 4,000, the stored ceiling.
  • The lesson description in tutor_create_lesson, tutor_generate_lesson and tutor_update_lesson keeps **bold**, *italic*, ~~strike~~ and paragraphs; list and quote lines are kept as typed. Up to 500 visible characters; maxLength is now 1,000.
  • forWhom and outcomes items also keep ~~strike~~.
  • tutor_get_block_schema for theory returns formatting: the rule's paragraphs may use the same formatting.
  • Over a visible limit, the tools answer validation_failed with the field's path (description; lesson.description in tutor_create_lesson).
  • tutor_get_course and tutor_get_lesson return the text as stored, markers included. The docs have a new section, «Форматований текст».

1.0.0-beta.4 — 2026-10-01

Courses say who they are for and what a learner gets.

  • tutor_create_course and tutor_update_course accept two optional lists, forWhom («Для кого цей курс») and outcomes («Що ви отримаєте після курсу»), shown on the course's storefront page and to its students. Up to 8 items of up to 200 visible characters each; only **bold** and *italic* are kept, other formatting is removed. A list is replaced whole; null or [] clears it.
  • Over a limit, both answer validation_failed with the path forWhom / outcomes (too many items) or forWhom[i] / outcomes[i] (an item too long).
  • tutor_get_course returns forWhom and outcomes, always arrays.

1.0.0-beta.3 — 2026-10-01

Lessons in use stay editable; courses carry a pacing.

  • Breaking (pre-release): the error code edit_locked is gone. Every lesson tool now changes a lesson whatever students have done on it; answers, scores and feedback already handed in are kept. tutor_get_lesson still returns editable, always true.
  • tutor_create_course and tutor_update_course accept pacing: teacher_paced (the default) or self_paced, where a student opens each next lesson themselves. Pacing cannot change once the course has been assigned; tutor_update_course then answers the new error code conflict. tutor_get_course returns pacing and pacingLocked.

1.0.0-beta.2 — 2026-09-30

Five tools, from what a nine-lesson course build missed. 20 tools now.

  • tutor_update_lesson — change a lesson's title, description, subject, level or instruction language (edit_locked once students work on it).
  • tutor_archive_lesson — take a lesson out of the library. It is archived, not destroyed; the teacher restores it in the web app.
  • tutor_get_course — a course with its lessons in order, each with the stepId the two tools below take.
  • tutor_remove_lesson_from_course and tutor_reorder_course_lessons — undo an add and set the order of a course's lessons.
  • Fix: tutor_list_lessons and tutor_get_lesson reported a lesson written by hand as planned; they now say completed, as tutor_get_generation_status already did.
  • A call whose arguments were sent inside a raw, input or arguments wrapper now gets an error that says so.

1.0.0-beta.1 — 2026-09-30

First release. Personal access tokens (read, write, publish scopes) and the tutor toolset, 15 tools. A beta may still change any of them; changes are listed here.

  • tutor_list_lessons, tutor_get_lesson, tutor_get_block_schema, tutor_list_courses, tutor_get_generation_status — read.
  • tutor_create_lesson, tutor_add_block, tutor_update_block, tutor_delete_block, tutor_reorder_blocks — write a lesson by hand; the first is all-or-nothing and every problem comes back with its path.
  • tutor_generate_lesson — start the platform's own generation from a topic, an article, a YouTube link or a transcript. It stops at the plan step, which the teacher confirms in the web app; the status tool reports pending there.
  • tutor_create_course, tutor_update_course, tutor_add_lesson_to_course — courses.
  • tutor_publish — publish or unpublish a course; needs the publish scope and a teacher account allowed to publish.
  • subject and level of tutor_create_lesson and tutor_generate_lesson are now enums (the same lists the web form and the courses tools use); the reference lists the allowed values with their names. /llms.txt and /mcp/docs.md?tool=<name> serve the docs one tool at a time.