diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ae138a..8c2e11b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,24 +11,22 @@ documentation, and CI work are left out. ## [Unreleased] +## [0.4.0] — 2026-08-24 + ### Added -- The text panels of a result can be searched — `Ctrl/Cmd+F` opens the search in - the panel you last worked in, and a selected find offers **Im Ergebnis - suchen** to check whether its text still occurs in the output. See - [Reviewing a result](docs/user-guide/review.md). +- `Ctrl/Cmd+F` searches the text panels of a result, and a selected find offers + **Im Ergebnis suchen** — see [Reviewing a result](docs/user-guide/review.md). - **Schwarze Balken statt Platzhaltern** in the export menu draws black bars - over the placeholders of a scanned document's rebuilt PDF, so it looks like a - native redacted PDF — see [Exporting](docs/user-guide/export.md#redacted-pdf). + over the placeholders of a rebuilt scanned PDF — see + [Exporting](docs/user-guide/export.md#redacted-pdf). ### Changed -- A PDF export refused because a redacted text also occurs outside the redacted - passages — a name you kept, or an occurrence no detector found — now names - those passages and offers **Trotzdem exportieren** instead of failing, since - the anonymized text download shows them too. Every other verification failure - is still refused outright. See - [Exporting](docs/user-guide/export.md#when-the-check-finds-text-you-kept). +- A PDF export refused only because a redacted text also occurs outside the + redacted passages now names those passages and offers **Trotzdem + exportieren**; every other verification failure is still refused outright — + see [Exporting](docs/user-guide/export.md#when-the-check-finds-text-you-kept). ## [0.3.0] — 2026-08-20 @@ -166,6 +164,7 @@ First tagged version. configurable deployment banner sits above the header. - Documentation site (MkDocs Material) under `docs/`. +[0.4.0]: https://github.com/KatherLab/deidentifier/compare/v0.3.0...v0.4.0 [0.3.0]: https://github.com/KatherLab/deidentifier/compare/v0.2.1...v0.3.0 [0.2.1]: https://github.com/KatherLab/deidentifier/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/KatherLab/deidentifier/compare/v0.1.3...v0.2.0 diff --git a/CITATION.cff b/CITATION.cff index 791855c..09843ce 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -45,8 +45,8 @@ keywords: - "privacy-preserving artificial intelligence" license: "AGPL-3.0-or-later" -version: "0.3.0" -date-released: "2026-08-20" +version: "0.4.0" +date-released: "2026-08-24" references: - type: article diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 8ade239..e1037fe 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -1,6 +1,6 @@ # Third-Party Notices -The Medical Document Anonymizer (version `0.3.0`) is distributed +The Medical Document Anonymizer (version `0.4.0`) is distributed under the `AGPL-3.0-or-later` license. It bundles the third-party open-source components listed below, each governed by its own license. Full license texts are available in each project's repository (linked diff --git a/backend/src/core/config.py b/backend/src/core/config.py index 47e119d..3fea1c4 100644 --- a/backend/src/core/config.py +++ b/backend/src/core/config.py @@ -41,7 +41,7 @@ class Settings(BaseSettings): # Application APP_ENV: str = "development" - APP_VERSION: str = "0.3.0" + APP_VERSION: str = "0.4.0" APP_MAX_UPLOAD_MB: int = Field(default=20, ge=1) APP_MAX_TEXT_CHARS: int = Field(default=500_000, ge=1) APP_ALLOW_INSECURE_CONTENT_LOGGING: bool = False diff --git a/docs/operations/deployment.md b/docs/operations/deployment.md index f411f28..c8d098e 100644 --- a/docs/operations/deployment.md +++ b/docs/operations/deployment.md @@ -20,8 +20,8 @@ has been published to `ghcr.io`, a deployment host can skip the build toolchain entirely: ```bash -DEIDENTIFIER_IMAGE_TAG=v0.3.0 docker compose pull -DEIDENTIFIER_IMAGE_TAG=v0.3.0 docker compose up -d +DEIDENTIFIER_IMAGE_TAG=v0.4.0 docker compose pull +DEIDENTIFIER_IMAGE_TAG=v0.4.0 docker compose up -d ``` You still need `compose.yml` and your `.env` on that host. diff --git a/package-lock.json b/package-lock.json index 5e92e51..2780219 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "deidentifier", - "version": "0.3.0", + "version": "0.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "deidentifier", - "version": "0.3.0", + "version": "0.4.0", "license": "AGPL-3.0-or-later", "dependencies": { "@lucide/vue": "1.33.0", diff --git a/package.json b/package.json index a1674d7..1d6a0a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "deidentifier", - "version": "0.3.0", + "version": "0.4.0", "private": true, "description": "Deidentifier frontend — anonymize German clinical documents locally.", "license": "AGPL-3.0-or-later", diff --git a/pyproject.toml b/pyproject.toml index 2de97a5..bb3b179 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "deidentifier" -version = "0.3.0" +version = "0.4.0" description = "Locally deployable anonymizer for German clinical documents" requires-python = ">=3.13,<3.15" # Every dependency is pinned exactly, like the frontend's package.json: this is diff --git a/uv.lock b/uv.lock index 3f72a09..31f833a 100644 --- a/uv.lock +++ b/uv.lock @@ -296,7 +296,7 @@ wheels = [ [[package]] name = "deidentifier" -version = "0.3.0" +version = "0.4.0" source = { virtual = "." } dependencies = [ { name = "fastapi" },