Релизы
История релизов и изменений платформы Edvance.
Фронтенд
Features
- add local /dev-login proxy for Edna QA on tenant hosts
- add per-conversation inbox mute UI for DM and group threads
- edna chips max 3 with role i18n rotation
- EDV-488 Edna tours (teacher/student/admin) + assistant panel
- expand admin tour, gate Edna on LLM, and polish product UX
- guard AI tutor sessions against accidental navigation
- **inbox:** make Edna a pinned first row in the Messages list, not a boxed stage
- load Edna suggestion chips and student helpdesk paths
- load Edna suggestion chips and student helpdesk paths
- mailbox profile links, bilateral delete, flow date guards
- mailbox profile links, bilateral delete, flow date guards
- polish Edna tours voice, layout, and chat stage
- Release 0.8.0
- show Edna confirm progress pills and rotating busy status
- superadmin ZIP export buttons for school, course, lesson
- superadmin ZIP export UI (EDV-550)
- **tour:** add a courses section, with voice (B8)
- **tour:** add a real create-a-note beat to the student tour (S4)
- **tour:** add interactivity to student self-study steps (S1, partial)
- **tour:** add real calendar-view toggle to student schedule step (S3)
- **tour:** admin tour round-3 audit fixes F1, F5-F8
- **tour:** confirm Edna's chat really opens on student mail step (S5)
- **tour:** explain the sidebar quick-note button before navigating to Notes (B6)
- **tour:** F10 — requiresLlm gate matches useEdnaAvailable's finer check
- **tour:** F3 — real guided add-holiday flow
- **tour:** gate student keyboard step on the panel really opening (S6)
- **tour:** make files-page search/filter interactive, with voice (B7)
- **tour:** make school branding/landing tiles real click-throughs (B3)
- **tour:** make student teachers-page and groups-page steps interactive (S2)
- **tour:** rebuild mail step around its three real entry points, with voice (B5)
- **tour:** render markdown in Edna chat bubbles
- **tour:** role-aware prompts, template chips, dedupe confirm UI, history persistence
- **tour:** schedule bulk/workload/holidays 2-step sequences + voice pass (B4, B0/B3)
- **tour:** surface group creation, with voice (B9)
- **tour:** voice/personality lift on the flattest student-tour steps (all 7 locales)
Bug Fixes
- admin guided tour passable end-to-end with Edna polish
- align Combobox re-select test with sticky selection
- allow 5-minute proxy duration for edna api turns
- allow local prod-like pnpm start to use /dev-login
- apply prettier formatting for CI
- bill self-study video-avatar sessions
- clear eslint warnings on audio and tour audit script
- clear frontend lint failures on edna branch
- clear tsc errors in coverage tests and AiVideoChat timer
- complete assistant config mocks in TourProvider tests
- cover Edna suggestion chips branches for CI gate
- cover tour fixture helpers and Edna avatar mock in messages tests
- Edna tour layout, demo-row pin, and combobox stacking
- Edna tour polish, proposals tray, locale Go chips
- Edna tour/messages/floating surface toggles
- export chat helpers for coverage tests and stabilize cancel confirm
- format mute conversation UI for prettier
- format school features page for prettier
- harden admin tour interactions and demo-user settings flow
- hide tour fixtures outside tour and clean Edna chat CTAs
- **i18n:** apply B1/B2's admin-tour copy fix to all locales, not just ru.json
- isolate session teardown resets from global vitest setup
- keep Edna Go and navigate clarify chips on UI locale
- keep landing settings dialog open for Edna look step
- keep schedule bulk-cancel button visible during Edna tour
- keep tour dim when dialogs open and stabilize storage tests
- merge proposals tray across turns instead of hard-replacing it
- mock Edna availability in Sidebar unit tests
- move Edna settings into Features with three surface toggles
- name VideoCall test stubs and warm leftover teacher copy
- pass event_id from edna clarify chips into turn context
- pin clock on auto-send prompt chip test
- prettier TourOverlay and cover demo-row tour branches
- raise edna turn/confirm axios timeout to 5 minutes
- raise tour overlay branch coverage and stop dual vitest
- repair tour CI type errors in tests
- repair tour unit tests after avatar and tab advance changes
- reset session teardown flag between vitest cases
- resolve CI type errors in tour coverage tests
- resolve frontend lint failures on edna branch
- restore lesson editor mock args and stabilize edna history scroll test
- restore tour scroll and manual bulk lesson selection
- revert audio eslint cleanup to keep diff-coverage green
- scroll sidebar + page for profile/support tour chips
- scrub PascalCase exercise type ids in Edna chat copy
- scrub uuid placeholders and exercise ids in Edna copy
- show error when AI exercise generation returns no blocks
- snap group notifications into view on admin tour
- spotlight Alex row on admin students tour step
- spotlight group unlock/schedule tour steps
- spotlight virtual keyboard panel on admin tour look step
- stabilize edna history pagination scroll listener
- stop admin schedule poll in inbox
- stop polling /api/schedule/my for admin sessions
- teacher drag spotlight, keep student feedback closed until click
- tour tab advance tests and diff coverage gate
- **tour:** guard entity chips with a missing href, extend chat-panel test coverage
- **tour:** let clicks through Radix portal content over the tour overlay (A1)
- **tour:** make AssistantChatPanel's autoFocus actually fire
- **tour:** narrow row clicks to navigate-only, strip super-admin steps (A2, B2)
- **tour:** revise Edna copy for first-time framing and natural phrasing
- **tour:** S7 — drop orphaned tour.student.settingsPage copy key
- **tour:** S8 — correct Serbian noun-gender agreement on "ćaskanje"
- **tour:** stop card/target overlap and add horizontal auto-scroll
- **tour:** stop student schedule-views step from yanking off the page; role-aware Edna preview
- **tour:** waitFor:click steps now navigate when the query string differs (A3)
- type-check tour overlay coverage test helpers
- type-safe download mock in export API tests
- unblock release CI typecheck on billing and Edna tests
- unblock schedule tour dialogs and localize Edna Go labels
- use TourSafe in AdminTab so unit tests can mount
Бэкенд
Features
- add per-conversation inbox mute for DM and group threads
- AI-generated course/lesson content via create_lesson_with_content and create_course_with_lessons
- **assistant:** add GET /sessions/{id}/messages history endpoint
- **assistant:** i18n Edna's tool-result/clarify UI copy, fix proposal voice
- close Edna agent working-product gaps
- close Edna agent working-product gaps
- edna chips max 3, locale voice, student mutate refuse
- Edna content critique loop with progress on confirm
- edna human exercise labels, group members, create/delete tools
- EDV-488 guided tours demo + Internal Assistant API
- **EDV-528:** real LLM condensation for Edna's memory summary
- harden Edna tools, billing attribution, and history pagination
- mailbox profile links, bilateral delete, flow date guards
- mailbox profile links, bilateral delete, flow date guards
- move tenant purge and rag queries to sqlc
- move tenant purge and rag queries to sqlc
- Release 0.8.0
- seed two demo schedule events for admin bulk tour
- superadmin course/lesson ZIP export (EDV-550)
- superadmin course/lesson ZIP export with round-trip import
Bug Fixes
- add Edna tour/messages/floating surface toggles
- add missing set_display_preference tool label (en/ru)
- add ru labels for create_group and delete course/lesson
- assert await_args before reading progress_data kwargs
- **assistant:** scope NL group/flow lookups to the requesting teacher
- **assistant:** stop double-rendering proposals as both a plan and a card
- **assistant:** use real DB role, not ACL-elevated role, when hydrating tool actors
- attribute Edna proposals to the user's ask
- bill self-study AI usage against the correct quota owner
- bulk-cancel by event id and unblock tour demo seeds
- cast preferred_language before TRIM in platform updates
- clear release-branch pylint black mypy pyright for CI
- defer course/lesson AI generation until confirm
- disambiguate colliding flow matches by owning teacher, not id suffix
- drop remaining EN/RU-only Edna chat chrome
- drop unused BLE001 noqa on re-raised exception
- drop unused BLE001 noqa on re-raising minio wipe
- Edna course/lesson delete reliability
- edna emotion in assistant turns and tour demo ids
- edna emotion lint for release CI
- edna schedule conflict SQL and ownership deny path
- Edna tour/messages/floating surface toggles
- **EDV-488:** exclude tour-demo courses from admin dashboard + course list
- **EDV-488:** exclude tour-demo courses from admin's "all courses" list
- **EDV-488:** exclude tour-demo courses/flows from admin dashboard stats
- **EDV-488:** keep the actor's own demo course in the admin course list
- **EDV-528:** catch _maybe_summarize's own DB errors, not just the LLM call
- **EDV-528:** chain prior summary + fix trigger freeze past max_history
- **EDV-528:** don't assume every_n <= max_history_messages
- **EDV-528:** fix Edna's memory window/summarization + make it real
- **EDV-528:** log a usable error on condensation timeout
- **EDV-528:** stop blocking the user's turn response on summarization
- **EDV-528:** summarize the dropped history tail, not the visible one
- **EDV-549:** don't guess word order for sentence_order/order_sentence
- **EDV-550:** cap tenant-wide export instead of risking an OOM/hang
- **EDV-550:** cap tenant-wide export instead of risking an OOM/hang
- **EDV-550:** exclude tour-demo courses from tenant-wide export
- **EDV-550:** exclude tour-demo courses from tenant-wide export
- find_free_slots honors each availability window's own timezone
- give Edna characterful voice and understood-need propose copy
- harden Edna propose/confirm for QA standards
- harden Edna turn quality (attribution, progress claims, name search) and fix Mistral pricing parser
- import fidelity for choose_answer, order_sentence, categorize
- import fidelity for choose_answer, order_sentence, categorize
- import scrub_misattributed_proposal at module top
- invent starter lesson topics instead of Урок N
- isolate student tour author and silence Edna lookup noise
- localize Edna chat and harden turn quality
- localize Edna chat chrome for all product locales
- localize Edna group clarify and stop chip re-ask loops
- localize remaining Edna display titles for all locales
- migrate column encryption script to sqlc
- mock agent_runtime get_tool in delete recovery test
- mock cross-tenant teacher lookup in tour demo flow test
- mock sqlc :many errors as async iterators
- noqa remaining BLE001 in flow teacher assignment
- normalize negative quota limits to canonical unlimited sentinel
- ownership deny when resolving foreign schedule groups
- parse broadcast group name from message body quotes
- pin CI ruff version + real 500 regression from assistant_nickname field
- pylint (line-too-long, reimported) flagged by CI on PR [#99](https://github.com/WetwareLogic/edvance-back/issues/99)
- raise Edna assistant diff-cover for CI gate
- refuse student mutate leaks and localize navigate labels
- reject empty AI exercise blocks and retry once
- resolve broadcast group/course targets with clarify chips
- resolve inbox mute type errors for linters
- resolve ruff G201/BLE001/SIM103 in touched flow and inbox files
- resolve ruff SIM117 and BLE001 on sqlc purge paths
- satisfy mypy/pyright on Edna tool await_args asserts
- silence CI pylint/mypy on assistant course tool tests
- silence pylint convention/refactor noise for Edna CI
- soften Edna voice — drop forced slang, anti-quote examples
- split edna clarify option builder to satisfy pylint
- stop voice double-billing and thread dictionary quota owner
- tune Edna voice and repair CI lint/tests
- unique google_id and theme defaults on edna create user
- update assistant tests for label and humanized titles
- update stale generation-graph smoke test fixture to new block schema
- update tour demo mocks for bulk schedule seed
- use locale exercise labels in chat scrub path
Documentation
- **EDV-550:** document EXPORT_TENANT_MAX_COURSES in .env.template