Журнал змін
Поточна версія — 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 httpsclient_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/listnow hasannotations(readOnlyHint,destructiveHint,idempotentHint,openWorldHint) andsecuritySchemes(the OAuth scope it needs). Destructive:tutor_delete_block,tutor_archive_lesson,tutor_remove_lesson_from_course,tutor_update_block. scope_missingfor 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.courseIdwrites 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 atposition(default last);subjectandleveldefault to the course's, sosubjectis no longer required.generateExercises: truecontinues past the material step: the model plans the lesson and the exercises are generated, with no extra quota. The result hascoursewhencourseIdwas given.tutor_get_generation_statusreports such a lesson asgeneratinguntil it is done.
1.0.0-beta.5 — 2026-10-01
Descriptions and rules take formatted text.
- The course
descriptionintutor_create_courseandtutor_update_courseis formatted text:**bold**,*italic*,~~strike~~, blank-line paragraphs,-and1.lists,>quote. Up to 2,000 visible characters (markers not counted);maxLengthis now 4,000, the stored ceiling. - The lesson
descriptionintutor_create_lesson,tutor_generate_lessonandtutor_update_lessonkeeps**bold**,*italic*,~~strike~~and paragraphs; list and quote lines are kept as typed. Up to 500 visible characters;maxLengthis now 1,000. forWhomandoutcomesitems also keep~~strike~~.tutor_get_block_schemafortheoryreturnsformatting: the rule's paragraphs may use the same formatting.- Over a visible limit, the tools answer
validation_failedwith the field's path (description;lesson.descriptionintutor_create_lesson). tutor_get_courseandtutor_get_lessonreturn 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_courseandtutor_update_courseaccept two optional lists,forWhom(«Для кого цей курс») andoutcomes(«Що ви отримаєте після курсу»), 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;nullor[]clears it.- Over a limit, both answer
validation_failedwith the pathforWhom/outcomes(too many items) orforWhom[i]/outcomes[i](an item too long). tutor_get_coursereturnsforWhomandoutcomes, 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_lockedis 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_lessonstill returnseditable, alwaystrue. tutor_create_courseandtutor_update_courseacceptpacing:teacher_paced(the default) orself_paced, where a student opens each next lesson themselves. Pacing cannot change once the course has been assigned;tutor_update_coursethen answers the new error codeconflict.tutor_get_coursereturnspacingandpacingLocked.
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_lockedonce 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 thestepIdthe two tools below take.tutor_remove_lesson_from_courseandtutor_reorder_course_lessons— undo an add and set the order of a course's lessons.- Fix:
tutor_list_lessonsandtutor_get_lessonreported a lesson written by hand asplanned; they now saycompleted, astutor_get_generation_statusalready did. - A call whose arguments were sent inside a
raw,inputorargumentswrapper 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 reportspendingthere.tutor_create_course,tutor_update_course,tutor_add_lesson_to_course— courses.tutor_publish— publish or unpublish a course; needs thepublishscope and a teacher account allowed to publish.subjectandleveloftutor_create_lessonandtutor_generate_lessonare now enums (the same lists the web form and the courses tools use); the reference lists the allowed values with their names./llms.txtand/mcp/docs.md?tool=<name>serve the docs one tool at a time.
