Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,29 @@ ones are marked like "v1.0.0-fork".

## [Unreleased]

### Changed in Unreleased
## [3.8.1-fork] - 2026-11-04

### Changed in 3.8.1-fork

* **The sign-in pages are one centred card** on every screen size. Login,
registration and password recovery no longer repeat the logo and title
above a narrow form.

### Fixed in Unreleased
### Fixed in 3.8.1-fork

* **New languages lost their settings.** The language wizard filled the form
on screen but not the form's state, so Save reported a missing name, and
retyping the name stored the language without its dictionary, language
codes, parsing rules or parser. The wizard now also fills in the translator
URL, which it never did. Languages already saved this way keep their
settings: repair them from the language's edit page.

* **Term status changes and term edits failed on multi-user installs.** Both
returned an HTTP 500, and a failed status change showed the user nothing.

* **Starter vocabulary stayed invisible to the reader.** Imported words were
shown as unknown in every text, and they are now linked to existing texts
and to new ones. A migration repairs earlier imports.

* Confirmations, alerts and text prompts are now in-app dialogs that follow the
theme and the interface language, instead of the browser's, and messages that
Expand Down Expand Up @@ -42,20 +58,6 @@ ones are marked like "v1.0.0-fork".

* The Anki import pages no longer show their heading twice.

* **New languages lost their settings.** The language wizard filled the form
on screen but not the form's state, so Save reported a missing name, and
retyping the name stored the language without its dictionary, language
codes, parsing rules or parser. The wizard now also fills in the translator
URL, which it never did. Languages already saved this way keep their
settings: repair them from the language's edit page.

* **Term status changes and term edits failed on multi-user installs.** Both
returned an HTTP 500, and a failed status change showed the user nothing.

* **Starter vocabulary stayed invisible to the reader.** Imported words were
shown as unknown in every text, and they are now linked to existing texts
and to new ones. A migration repairs earlier imports.

## [3.8.0-fork] - 2026-11-03

### Added in 3.8.0-fork
Expand Down
51 changes: 51 additions & 0 deletions docs-src/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,57 @@ ones are marked like "v1.0.0-fork".

## [Unreleased]

## [3.8.1-fork] - 2026-11-04

### Changed in 3.8.1-fork

* **The sign-in pages are one centred card** on every screen size. Login,
registration and password recovery no longer repeat the logo and title
above a narrow form.

### Fixed in 3.8.1-fork

* **New languages lost their settings.** The language wizard filled the form
on screen but not the form's state, so Save reported a missing name, and
retyping the name stored the language without its dictionary, language
codes, parsing rules or parser. The wizard now also fills in the translator
URL, which it never did. Languages already saved this way keep their
settings: repair them from the language's edit page.

* **Term status changes and term edits failed on multi-user installs.** Both
returned an HTTP 500, and a failed status change showed the user nothing.

* **Starter vocabulary stayed invisible to the reader.** Imported words were
shown as unknown in every text, and they are now linked to existing texts
and to new ones. A migration repairs earlier imports.

* Confirmations, alerts and text prompts are now in-app dialogs that follow the
theme and the interface language, instead of the browser's, and messages that
were English in every locale are translated. Entering an invalid tag shows
what is wrong without closing the dialog. The browser's own dialogs remain
only as a fallback, and for the warning when leaving a page with unsaved
changes.

* Cancelling a database restore no longer leaves the page showing "restoring".

* The "Email not verified" banner no longer follows accounts that have no
email address.

* Opening the Add Text page no longer loads every suggested Gutenberg book
in the background, and book previews have their own request quota, so
they cannot make saving a text fail with "Too Many Requests".

* Terms added from the reader now count towards "terms created", and a text
counts as read once a day rather than on every page load.

* A new term's translation appears under the word straight away, not after
a reload.

* Dark theme: readable reader annotations, home cards and starter vocabulary
cards, and a darker background for empty days on the activity calendar.

* The Anki import pages no longer show their heading twice.

## [3.8.0-fork] - 2026-11-03

### Added in 3.8.0-fork
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lwt",
"version": "3.8.0",
"version": "3.8.1",
"description": "Learning with Texts - A self-hosted language learning application for reading-based vocabulary acquisition",
"type": "module",
"main": "index.js",
Expand Down
4 changes: 2 additions & 2 deletions src/Shared/Infrastructure/ApplicationInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ class ApplicationInfo
/**
* Version of this current LWT application.
*/
public const VERSION = '3.8.0-fork';
public const VERSION = '3.8.1-fork';

/**
* Date of the latest published release of LWT.
*/
public const RELEASE_DATE = '2026-11-03';
public const RELEASE_DATE = '2026-11-04';

/**
* Get the application version for display to humans.
Expand Down
Loading