Skip to content

Commit 5fa4876

Browse files
committed
chore: release v1.9.49 — roadmap drain pass
Bumped version to v1.9.49 (code 2098). This release ships: - P0: backup/transfer privacy copy fix + CI guard - P1: OSV release severity gate with override mechanism - P2: plural quantity resources, fork-identity fix, file diagnostics, developer verification gate, stylus handwriting wiring, reproducible docs refresh, addon/Tasker namespace alignment, FOSS catalog PRs - P3: runBlocking constraint guard, stringRes normalize, archive docs
1 parent d83ddde commit 5fa4876

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SwiftFloris
22

3-
![Version](https://img.shields.io/badge/version-v1.9.48-blue) ![License](https://img.shields.io/badge/license-Apache%202.0-green) ![Platform](https://img.shields.io/badge/platform-Android%208.0+-orange) ![Network](https://img.shields.io/badge/network-none-lightgrey) ![Dictionary imports](https://img.shields.io/badge/dictionary%20imports-local%20files-green)
3+
![Version](https://img.shields.io/badge/version-v1.9.49-blue) ![License](https://img.shields.io/badge/license-Apache%202.0-green) ![Platform](https://img.shields.io/badge/platform-Android%208.0+-orange) ![Network](https://img.shields.io/badge/network-none-lightgrey) ![Dictionary imports](https://img.shields.io/badge/dictionary%20imports-local%20files-green)
44

55
**SwiftFloris** is a privacy-first Android keyboard, forked from FlorisBoard and pushed toward SwiftKey-class multilingual typing without the cloud. It ships under Apache-2.0, holds no `INTERNET` permission, and binds zero accounts.
66

@@ -37,7 +37,7 @@
3737
3838
## Highlights
3939

40-
| Area | What's in v1.9.48 | Privacy posture |
40+
| Area | What's in v1.9.49 | Privacy posture |
4141
|------|-------------------|-----------------|
4242
| **Autocorrect / prediction** | SCOWL 117k English dictionary, heap-bounded SymSpell d1+d2, bigram + trigram next-word, capitalization-aware completions, contraction handling, instant-remember user-dictionary overlay | On-device |
4343
| **Multilingual typing** | Bilingual subtype presets (EN+ES / EN+FR / EN+DE), per-token Latin language identification, top-two straddle guard, sentence-local context scoring, opt-in remembered keyboard language per app, and stale-id-safe manual subtype switching | On-device |
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
• Fixed stale backup/transfer privacy copy — README and PRIVACY_AND_AI.md now correctly state that personal dictionary is excluded from both cloud backup and device-to-device transfer, with a new CI guard to prevent wording drift.
2+
• Releases now block on HIGH/CRITICAL OSV advisories — the release workflow gates on severity with a documented override mechanism (.github/osv-overrides.json).
3+
• Converted six "(s)" plural strings to proper Android quantity resources.
4+
• Renamed rootProject.name from "FlorisBoard" to "SwiftFloris" for F-Droid reviewer clarity.
5+
• Wired Android 14+ stylus handwriting through the recognizer facade — ink capture, stroke forwarding, and candidate commit now work when a recognizer addon is installed.
6+
• Implemented bounded file-backed diagnostic logging (3-file rotation, 512 KB each, PII-safe).
7+
• Added developer verification readiness gate to the release checklist.
8+
• Refreshed reproducible-build docs to match v1.9.49 toolchain pins.
9+
• Aligned addon spec and Tasker docs with current SwiftFloris contract namespaces.
10+
• Submitted to awesome-privacy, android-foss, and foss-apps catalogs.

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ projectMinSdk=26
1515
projectTargetSdk=36
1616
projectCompileSdk=36
1717

18-
projectVersionCode=2097
19-
projectVersionName=1.9.48
18+
projectVersionCode=2098
19+
projectVersionName=1.9.49

0 commit comments

Comments
 (0)