Home / Tools / Linguistix / Changelog
Linguistix app icon
What’s new

Linguistix changelog

Every shipped change, written for learners rather than copied from commit messages. The same release notes are included inside the Mac app.

v1.0.6 11 Aug 2026
Fixed
  • Signing in now survives replacing Linguistix with an update. The session is stored in the app's stable macOS Keychain access group and migrated from the older per-install entry, so Check for Updates no longer returns you to the sign-in screen after the new version opens. If a very old copy was signed by a different developer team, macOS may require one final sign-in; later updates will keep that session.
Safety
  • The release and installer checks now require every update to carry exactly the Keychain access group used for persistent sessions. A build missing that entitlement, using another group or adding an unexpected group is refused before it can replace the installed app.
Changes
  • This is an app-only patch (build 58): it ships no new learning content and reuses the verified snapshot already shipped in 1.0.5, including its disclosed gap that English inflected forms are not yet included.
v1.0.5 11 Aug 2026
New
  • When you answer wrongly and no reviewed explanation exists yet, Linguistix no longer leaves that space empty while the review runs. It now shows a simple explanation derived by fixed rules from the app's own stored dictionary and grammar facts — which rule or word the exercise practises, and what it means in your language — clearly labelled "Auto-generated — not yet reviewed" (in Dutch: "Automatisch gegenereerd — nog niet nagekeken"). The moment a reviewed explanation is approved, it replaces the labelled one. What has not changed: text written by an AI model still never appears before the review panel has approved it. The labelled fallback contains no model-written text at all, and the label is the condition its serving was approved under.
Fixed
  • Words you captured yourself that August's content-containment sweep had wrongly hidden are visible again. The sweep classified by matching text when it should have respected each record's own restriction lineage; a restriction now outranks a text match, each field's recorded origin is consulted before anything is reclassified, and a classification can no longer overwrite the forensic record of where a word came from. The wrongly quarantined vocabulary has been restored.
  • A correct answer can no longer be graded wrong because an exercise was quietly built without all of its accepted answers. When any accepted answer would have to be dropped, the exercise is refused rather than served incomplete — previously the incomplete version was frozen, your answer was graded against it, and your schedule moved as if you had been wrong.
  • A practice probe that is served again after a repeat request now re-checks that its content is still allowed to be shown, so material withdrawn in the meantime can no longer reach you through the replay.
  • A grammar note created from your own capture is filed under your own account from the start, and newly authored shared rules land directly in the shared graph — neither begins life quarantined.
Safety
  • A database migration that could silently re-create human approval stamps on content nobody had reviewed — every time a fresh copy of the database was built — has been disabled at its root. The migration record remains in place, disabled, rather than being deleted; and the build pipeline now rebuilds a fresh database on every change and proves the count of fabricated approvals is zero.
  • The release process itself proves more before anything ships: the packaging gate verifies that the readiness report it relies on describes the exact content and reference bytes being embedded — not merely that a passing report exists — and the upload of release files is now scripted, with every file's checksum re-verified on the server and its public address confirmed reachable before the update channel points at anything.
Privacy
  • When a person's data is erased, their identity disappears but the approvals they gave survive: content now carries an explicit "approver erased" marker, every check that used to demand the approver's identity accepts the marker instead, and synced devices are notified of the change rather than keeping stale copies indefinitely.
  • A database failure while processing your work could leave your sentence readable in the server's failure log, because the scrubbing pattern did not match the exact shape production workers write. The mask now covers that shape — deliberately scrubbing more of the log than strictly necessary in exchange for the guarantee.
Changes
  • This is an app-only patch (build 57): it ships no new learning content and reuses v1.0.4's verified content snapshot, including that snapshot's honestly disclosed gap (English inflected forms). The server-side corrections listed above deploy together with this release.
  • An internal licence note about the Wiktionary dataset falsely attributed a share-alike acceptance to a project decision that never contained one; the false attribution has been removed. The dataset's obligations themselves are unchanged, and the rights review that sign-off belongs to remains open and deliberately unclaimed.
v1.0.4 11 Aug 2026
Fixed
  • Fixed the crash that could take Linguistix down moments after launch — the defect that has kept a family Mac from using the app since 1.0.2. Some of the app's local-data lookups were built in a form the storage framework refuses at run time by stopping the whole app; every lookup is now constructed the way the framework registers it, and a new test walks all twenty-five local data types through the exact lookup the app performs, against a real on-disk store, so this class of crash fails the test suite instead of a launch.
Changes
  • Everything listed under v1.0.3 below ships for the first time in this build. v1.0.3 was fully built and notarized but withdrawn before publication: its final verification launch crashed with exactly the defect above, so it was never offered to anyone. Build numbers 54 and 55 are permanently retired; this release is build 56.
v1.0.3 11 Aug 2026
Fixed
  • Linguistix no longer crashes moments after launch on a Mac whose local data store was written by an earlier version. The store's compatibility with this build is now proven before it is opened; an incompatible or unreadable store is rebuilt from your synced server data instead of taking the app down, and work still queued for upload is preserved through the rebuild.
  • If macOS is running Linguistix from a translocated, read-only location — the usual result of double-clicking the app straight out of a downloaded zip — a banner above the sign-in screen now explains this and offers to move Linguistix into Applications. A translocated copy behaved as if broken and could never install its own updates.
  • Opening the app without a working connection no longer signs you out. The last signed-in session opens from the local mirror and reconciles with the server when the connection returns.
  • The install-location banner no longer misreports the Applications folder as read-only for administrator accounts, and a build that cannot perform the move itself no longer offers one.
  • An answer can only be recorded through the practice exercise that was actually reserved and served to you. Submissions outside an active reservation are refused, so your schedule can no longer be changed by a stray or duplicated request.
New
  • Linguistix now downloads as a disk image. Drag the app onto the Applications shortcut it shows you — that one gesture installs the app where macOS will run it normally, which is exactly what prevents the translocated launches fixed in this release. The zip remains only as the format the in-app updater consumes.
Safety
  • In-app updates now pass the full check the 1.0.2 notes promised in their correction: every update must pass Apple's notarisation check, carry this developer's Developer ID identity with the hardened runtime and the expected entitlements, and match its published checksum — proven when it is downloaded, again when it is installed, and once more by the installer after the previous app has quit. Anything that fails any check is discarded, never installed.
  • The release description the updater downloads is now itself signed over the exact published bytes. A description that is unsigned, altered, or signed by an unknown key is refused — and a build that carries no trusted verification key refuses every update rather than guessing.
  • Version numbers and archive contents from the update server are treated strictly as data: versions must parse as plain numbers, server-provided names never become file paths, and installation runs a fixed script whose inputs cannot change what it executes.
Privacy
  • Consent decisions are recorded append-only: granting or withdrawing consent adds a new dated record instead of rewriting an old one, so what was agreed to — and when — remains reconstructable.
Changes
  • Learning material that had entered the catalogue without independent human review has been withdrawn until it passes review, including a set of French preview vocabulary cards and unreviewed Dutch explanations. Some content that was visible in 1.0.2 is therefore missing for now, deliberately. Every surface that serves learning material now runs the same single eligibility check before showing anything.
  • The offline reference now genuinely contains the corpus its manifest previously only claimed: 2.9 million example sentences and 1.5 million sentence links ship with this build. The pack also reports its completeness honestly, including what is still missing (English inflected forms).
  • There is no build 54. A first 1.0.3 preparation was aborted before anything reached the update channel, and its build number is permanently retired rather than reused; this release is build 55.
  • Withdrawn before publication, added 2026-08-11: this version was built, notarized and staged, and then its verification launch crashed on the very defect v1.0.4 fixes. Nothing was published and no one received it; every change described here ships in v1.0.4. The note stays rather than the entry being quietly deleted.
v1.0.2 6 Aug 2026
New
  • Linguistix now tells you when a new version is available, shows the release notes before you decide, and — on the builds that are allowed to — downloads and installs it for you. Checking is off until you say yes: you are asked once, and the question explains exactly what that build will do.
Safety
  • An update is only ever installed after it matches the checksum published with it, carries a valid code signature naming Linguistix and this developer, and is genuinely newer than what you are running. Anything that fails is discarded rather than installed, and a release published without a checksum is refused outright.
  • Correction, added 2026-08-07: this entry first said the update also "passes Apple's own signature and notarisation check". The signature part was true; the notarisation part was not. This build checks that an update is signed and that the signature names this developer, but it never asks Apple whether the release was notarised — so a build signed on a developer's own Mac could have satisfied the check described here. The wording above now says what 1.0.2 actually does. The missing notarisation check, and a signed release description that cannot be chosen by the website, are being added in a later version; this note stays rather than the original claim being quietly corrected.
v1.0.1 6 Aug 2026
Improved
  • Signing in can now offer to save your email address and password to the Mac's Passwords app, so the next sign-in can be filled in for you. Linguistix never reads a saved password back, and a declined or unavailable password manager never prevents you from signing in.
  • The navigation icons at the top of the window keep one fixed shape whether or not a tab is selected. The selected tab is shown by its coloured capsule instead, so the row no longer shifts as you move between Home, Practice, Friends, Library, Journal and Games.
v1.0.0 4 Aug 2026
New
  • Capture what you learned turns a word, a themed vocabulary list, a grammar topic or a note from class into organised learning material. Linguistix recognises the intent, shows where it belongs and keeps uncertain captures in an inbox for review instead of silently guessing.
  • My Words is a personal, searchable vocabulary shelf with concise meanings, pronunciation, notes, grammatical gender, verb recognition and selected conjugation tables. Vocabulary and grammar stay connected to the source and section where they were learned.
  • Practice builds short daily sessions from what is due, what is new and what needs attention. Recall is scheduled with FSRS, hints remain separate from grading, and an answer never changes the learner's schedule merely because it appeared in a game.
  • The Library combines My Words, grammar lessons, learning sources and an offline reference dictionary. French and English material can be learned with English or Dutch explanations, without splitting progress when the explanation language changes.
  • Games add focused vocabulary and grammar play, including Fresco and reviewed board formats. Solo runs, friend challenges, daily duels and weekly cooperative goals reuse real learning material while keeping competitive results separate from study evidence.
  • The Journal and progress signals make the learning trail visible without pretending that activity alone proves a CEFR level. The checkpoint framework keeps reading, listening, writing, vocabulary, grammar and speaking evidence distinguishable as reviewed items become available.
  • Linguistix is offline-first. The current servable learning snapshot and complete eligible reference dictionary ship inside the Mac app; personal changes are saved locally first and reconcile when a connection returns. Pronunciation uses the best French or English voice installed in macOS.
Improved
  • Capture routing now shares reviewed intent catalogues across the Home capture, Quick Add and inbox flows, reducing the contradictory results that came from several independent parsers.
  • My Words uses one fixed compact card size and an eager group wrapper around its lazy grids, keeping the vocabulary wall visually even and stable when scrolling down and back to the top.
  • Vocabulary-group capture can reconcile an existing list, add only genuinely missing words and preserve scheduling history instead of recreating material that is already learned.
  • Practice and game selection use deterministic eligibility and reason codes, so unavailable activities can explain what material is missing rather than appearing to fail at random.
Fixed
  • Edited meanings approved from the capture inbox are now sent in the validated payload shape, so the learner's correction is no longer discarded during approval.
  • Learner-approved lexemes, senses, translations and knowledge components carry an explicit private scope. Snapshots include only global content, while sync and reference queries expose only global rows plus the signed-in learner's own rows.
  • Capture decomposition and translation workers claim work with compare-and-set leases, preventing two workers from processing the same chunk after a retry or timeout.
  • Games can load scoped vocabulary after the lexicon privacy migration instead of querying a column that has not reached the local database yet.
  • My Words no longer stops repopulating cards after a long downward scroll followed by a return to the top.
Performance
  • Large word collections stay responsive by lazy-loading the fixed-size cards while avoiding nested lazy containers that repeatedly invalidate SwiftUI's visible region.
  • The local mirror imports a frozen content cursor and then requests only later deltas, so opening the app does not redownload the bundled course and dictionary.
  • Reference, capture and game lookups use bounded, indexed scopes so private material remains isolated without turning every search into a full-table scan.

← Back to Linguistix