Skip to content

Commit cd26999

Browse files
committed
docs: add fastlane changelog guidance
1 parent 29662ee commit cd26999

13 files changed

Lines changed: 120 additions & 21 deletions

File tree

AGENTS.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ and sourced reasoning; mine them for *why*, but pick the next task from
1818
`ROADMAP.md`.
1919

2020
1. [`PROJECT_CONTEXT.md`](PROJECT_CONTEXT.md) — single-page consolidated
21-
project context. Pins the load-bearing invariants, current v1.8.244
21+
project context. Pins the load-bearing invariants, current v1.8.245
2222
stack, the module layout, roadmap-file routing, and current source-of-truth
2323
state.
2424
2. [`ARCHITECTURE.md`](ARCHITECTURE.md) — contributor-facing module,
@@ -87,11 +87,12 @@ file-per-release pattern — do not re-introduce per-release note files. Each
8787
section describes intent, files touched, tests added, and Definition-of-Done
8888
evidence. A matching `fastlane/metadata/android/en-US/changelogs/<versionCode>.txt`
8989
(≤500 chars; draft ≤480 for headroom) ships alongside, enforced by
90-
`scripts/check-fastlane-metadata.sh`.
90+
`scripts/check-fastlane-metadata.sh`; draft it as a short store-facing summary,
91+
not as a file list or test log.
9192

9293
`gradle.properties` `projectVersionCode` + `projectVersionName` bump in lockstep
9394
with the changelog commit. Tag the release commit at the same time
94-
(`git push --tags`). HEAD is `v1.8.244` (versionCode 2044) as of 2026-06-04.
95+
(`git push --tags`). HEAD is `v1.8.245` (versionCode 2045) as of 2026-06-04.
9596

9697
### 5. Definition of Done (per [ROADMAP.md](ROADMAP.md) §15)
9798

ARCHITECTURE.md

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

3-
Last updated: 2026-06-04, against the v1.8.244 codebase.
3+
Last updated: 2026-06-04, against the v1.8.245 codebase.
44

55
This file is the fast architectural map for contributors. It is intentionally
66
shorter than `ROADMAP.md` and more code-oriented than `PROJECT_CONTEXT.md`.
@@ -179,6 +179,9 @@ maintainer-triggered Roborazzi baseline capture. Android lint runs through
179179
`scripts/run-lint-debug-with-baseline-check.sh` in CI so stale baseline entries
180180
fail visibly, and `scripts/check-repo-hygiene.sh` keeps generated build/report
181181
output out of committed history.
182+
Fastlane changelog drafting guidance keeps the short store-facing release text
183+
within the 480-character draft budget before the metadata script enforces the
184+
hard limit.
182185

183186
The local VM used by some agent runs may not have Java or the Android SDK on
184187
PATH. In that case, record the exact Gradle command attempted and leave final

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,46 @@
22

33
All SwiftFloris release history is consolidated here. This replaces the former root-level `RELEASE_NOTES_v*.md` file-per-release pattern.
44

5+
<a id="v1.8.245"></a>
6+
## v1.8.245
7+
8+
Released: 2026-06-04
9+
10+
### Fastlane changelog drafting guide
11+
12+
R5 is closed. The short Fastlane changelog now has a documented drafting rule before the metadata script enforces the hard limit: write a store-facing, evidence-backed summary with 480-character headroom instead of a file list or test log.
13+
14+
### Changes
15+
16+
- **`docs/REPO_HYGIENE.md`** - adds the Fastlane changelog drafting rule, including the 480-character draft budget, store-facing summary focus, and docs-only release wording guidance.
17+
- **`docs/LOCAL_VERIFICATION.md`** - folds the drafting expectations into the standard local gate near `scripts/check-fastlane-metadata.sh`.
18+
- **`CONTRIBUTING.md` / `AGENTS.md` / `ARCHITECTURE.md`** - point release contributors and agent runs at the same short-summary rule.
19+
- **`ROADMAP.md` / `COMPLETED.md` / `RESEARCH_REPORT.md` / `README.md` / `PROJECT_CONTEXT.md` / `gradle.properties` / fastlane metadata** - advances the release marker to v1.8.245 / versionCode 2045 and closes R5.
20+
- **`ROADMAP.md` / `RESEARCH_REPORT.md`** - refresh the API 37 / Kotlin blocker evidence: Kotlin `2.4.0` is current, KSP still tops out at `2.3.9`, and AndroidX Core `1.19.0` declares `minCompileSdk=37`.
21+
22+
### Verification
23+
24+
- `git diff --check` - PASS.
25+
- `bash scripts/check-fastlane-metadata.sh` - PASS for versionCode 2045.
26+
- `bash scripts/check-repo-hygiene.sh` - PASS.
27+
- APK assembly was intentionally skipped in this local docs-only batch per operator request to avoid repeated heavy Android builds.
28+
29+
### Files Touched
30+
31+
- `AGENTS.md`
32+
- `ARCHITECTURE.md`
33+
- `CHANGELOG.md`
34+
- `COMPLETED.md`
35+
- `CONTRIBUTING.md`
36+
- `PROJECT_CONTEXT.md`
37+
- `README.md`
38+
- `RESEARCH_REPORT.md`
39+
- `ROADMAP.md`
40+
- `docs/LOCAL_VERIFICATION.md`
41+
- `docs/REPO_HYGIENE.md`
42+
- `fastlane/metadata/android/en-US/changelogs/2045.txt` (new)
43+
- `gradle.properties` (versionCode 2044->2045, versionName 1.8.244->1.8.245)
44+
545
<a id="v1.8.244"></a>
646
## v1.8.244
747

COMPLETED.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Consolidated from the archived open-work checklist (closed items). Full per-rele
8383
- [x] R4-4 (P3) — `NativeStr.toJavaString()` now decodes only ByteBuffer remaining bytes and preserves caller-visible position across heap, sliced heap, direct, and read-only buffers. Shipped v1.8.242. — *Source: ROADMAP.md Researcher Queue Cycle 4.*
8484
- [x] WS12 (P2) — Localization content-quality pass cleared Turkish adjacent repeated-word lint with native-safe copy, tightened source labels, standardized trust-sensitive failure/destructive wording, and documented translation-safe cleanup rules. Shipped v1.8.243. — *Source: docs/archive/TODO_2026-06-03.md A5 / improvement-plan WS12.*
8585
- [x] WS10 / WS15 (P2) — Visual-QA, manual-QA, and release-evidence checklists now live in `docs/QA_CHECKLISTS.md` and are linked from verification, contributor, accessibility, and README docs. Shipped v1.8.244. — *Source: docs/archive/TODO_2026-06-03.md A5 / improvement-plan WS10/WS15.*
86+
- [x] R5 (P3) — Fastlane changelog drafting guidance now documents the 480-character draft budget, store-facing summary rules, and evidence-backed wording expectations. Shipped v1.8.245. — *Source: docs/archive/TODO_2026-06-03.md A5 / second-pass R5.*
8687
- [x] F1, F2, F15, F16, F17, F19, F20, F25, F26, F32, F34, F35, F36, F41, F42, EI8, EI11, EI4 (doc) — Closed across v1.8.174 -> v1.8.187. — *Source: TODO_2026-06-03.md*
8788
- [x] IMPROVEMENT_PLAN Workstreams 1, 3, 4, 5, 6 complete; Workstream 2 (lint) monotonically decreasing. — *Source: IMPROVEMENT_PLAN_2026-05-18.md*
8889

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,12 @@ Versioned releases use:
156156
state changes.
157157
- A local annotated tag for the release commit.
158158

159+
Draft the Fastlane changelog as the short store-facing summary: keep it at or
160+
below 480 characters for headroom, summarize the verified outcome, and avoid
161+
test commands, file paths, internal-only IDs, or claims not backed by the full
162+
`CHANGELOG.md` section. The detailed rule lives in
163+
[`docs/REPO_HYGIENE.md`](docs/REPO_HYGIENE.md).
164+
159165
Docs-only housekeeping commits do not need a version bump unless they are being
160166
published as a release.
161167

PROJECT_CONTEXT.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
**Maintained at root for fast onboarding.**
44
**Last consolidated:** 2026-06-04 (from the autonomous research run at
55
[`.ai/research/2026-05-17/`](.ai/research/2026-05-17/) plus follow-up slices
6-
through v1.8.244).
6+
through v1.8.245).
77

88
This file is the single fastest read for an AI session, new contributor, or
99
maintainer-context refresh. It does **not** replace [ROADMAP.md](ROADMAP.md),
@@ -47,7 +47,7 @@ them requires changing both the relevant code *and* the gate.
4747
If a proposed change conflicts with any of these, the answer is "move that
4848
feature into an addon" — never "loosen the invariant."
4949

50-
## 3. Stack at HEAD (v1.8.244)
50+
## 3. Stack at HEAD (v1.8.245)
5151

5252
```
5353
Kotlin 2.3.21 · Compose BOM 2026.05.01 · Material 3 + material-kolor 4.1.1
@@ -204,7 +204,7 @@ and in [`ROADMAP.md` §0 v5.5 + v5.4](ROADMAP.md). Net deltas to invariants:
204204
at `docs/outreach/2026-05-17-swiftkey-migration/` covering
205205
AlternativeTo, BGR, Android Authority, and r/Swiftkey.
206206

207-
**v1.8.104 - v1.8.244** ships the seventh research-pass privacy,
207+
**v1.8.104 - v1.8.245** ships the seventh research-pass privacy,
208208
voice, clipboard, NLP, visual-regression, Addons trust/asset/catalog layer, and
209209
input-behavior testability plus conservative lint/dependency cleanup and
210210
performance-baseline / CI-quality / repo-hygiene / destructive-confirmation
@@ -538,7 +538,7 @@ keyboard preview field now renders as a distinct bottom surface, exposes
538538
ready/active focus-state feedback, preserves bottom-bar traversal ordering, and
539539
uses coroutine-safe feedback when Android cannot open the keyboard picker.
540540

541-
v1.8.171 through v1.8.244 refresh the release front door after the 2026-05-31
541+
v1.8.171 through v1.8.245 refresh the release front door after the 2026-05-31
542542
SwiftKey account-export cutoff, consolidate planning into `ROADMAP.md`,
543543
backfill audit docs, ship settings search and search polish, add hardware
544544
keyboard import and per-app language/accent discovery, harden release gates
@@ -618,6 +618,10 @@ documents translation-safe cleanup rules.
618618
v1.8.244 closes the QA/release-evidence checklist gap: `docs/QA_CHECKLISTS.md`
619619
now owns the visual-QA matrix, manual-QA flow, and release-evidence capture
620620
format, and verification/contributor/accessibility docs link to it.
621+
v1.8.245 closes the Fastlane changelog drafting gap: repo hygiene, local
622+
verification, contributor, architecture, and agent-facing release docs now
623+
describe the 480-character draft budget, store-facing summary focus, and
624+
evidence-backed wording rule for each versionCode changelog.
621625

622626
## 4. Module layout
623627

README.md

Lines changed: 5 additions & 4 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.8.244-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.8.245-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.8.244 | Privacy posture |
40+
| Area | What's in v1.8.245 | Privacy posture |
4141
|------|-------------------|-----------------|
4242
| **Autocorrect / prediction** | SCOWL 117k English dictionary, 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, and opt-in remembered keyboard language per app | On-device |
@@ -56,7 +56,7 @@
5656
| **Editor reliability** | Expected-content generation for selection, text commit, composing finalize, and composing-region replacement paths now happens before `InputConnection` batch edits, with try/finally begin/end pairing and focused call-order tests | Local editor state only |
5757
| **Alternative layouts** | Colemak / Dvorak / Workman from the FlorisBoard layout pack, plus selectable honeycomb hex layout with clipped hex keys and hex-aware hit testing (only FOSS Android keyboard shipping this — Typewise vacated the consumer market early 2026; see [docs/HONEYCOMB_LAYOUT.md](docs/HONEYCOMB_LAYOUT.md)) | On-device |
5858
| **AI transparency** | First-run AI/ML explainer plus Settings → About → AI features screen covering next-word, glide, voice, translation, and smart compose; async suggestion work consumes request-scoped privacy snapshots for incognito, no-personalized-learning, offensive-content, and ghost-text sensitivity gates | On-device, no account, no telemetry |
59-
| **CI / build** | No-network gate, repo-hygiene gate, OSV dep scan, Dependabot version review, lint baseline-drift wrapper with no committed app lint baseline, startup crash recovery via the local crash dialog, restore/crash diagnostics routed through project logging with safe fallback copy, settings-search resource/route drift guard, MIME helper aggregate-contract tests, NativeStr ByteBuffer slice tests, localization/copy contract tests, post-hotfix regression coverage for Arabic shaping, Snygg imports, private trace suppression, and locale-scoped n-gram flushes, manual emulator settings smoke, reproducible-build toolchain pins + build-twice APK self-check chained into release publication, Roborazzi visual-regression hard gate with committed theme/Addons baselines, Macrobenchmark trace sections in 6 hot paths, manual benchmark trend-regression report, and compatible dependency freshness through Compose BOM 2026.05.01 / KSP 2.3.9 / Roborazzi 1.63.0 | Audit-friendly |
59+
| **CI / build** | No-network gate, repo-hygiene gate, Fastlane changelog drafting guide, OSV dep scan, Dependabot version review, lint baseline-drift wrapper with no committed app lint baseline, startup crash recovery via the local crash dialog, restore/crash diagnostics routed through project logging with safe fallback copy, settings-search resource/route drift guard, MIME helper aggregate-contract tests, NativeStr ByteBuffer slice tests, localization/copy contract tests, post-hotfix regression coverage for Arabic shaping, Snygg imports, private trace suppression, and locale-scoped n-gram flushes, manual emulator settings smoke, reproducible-build toolchain pins + build-twice APK self-check chained into release publication, Roborazzi visual-regression hard gate with committed theme/Addons baselines, Macrobenchmark trace sections in 6 hot paths, manual benchmark trend-regression report, and compatible dependency freshness through Compose BOM 2026.05.01 / KSP 2.3.9 / Roborazzi 1.63.0 | Audit-friendly |
6060

6161
## Distribution
6262

@@ -288,6 +288,7 @@ Real device-number collection is tracked in [`docs/BENCHMARKS.md`](docs/BENCHMAR
288288

289289
The full release stream lives in [`CHANGELOG.md`](CHANGELOG.md) and on [GitHub Releases](https://github.com/SysAdminDoc/SwiftFloris/releases).
290290

291+
- **v1.8.245** (2026-06-04) — Fastlane changelog drafting now documents the 480-character draft budget, store-facing summary rules, and evidence-backed wording expectations. ([notes](CHANGELOG.md#v1.8.245))
291292
- **v1.8.244** (2026-06-04) — Visual-QA, manual-QA, and release-evidence checklists now live in `docs/QA_CHECKLISTS.md` and are linked from verification docs. ([notes](CHANGELOG.md#v1.8.244))
292293
- **v1.8.243** (2026-06-04) — Localization copy now avoids Turkish repeated-word lint, uses clearer source labels, and standardizes trust-sensitive failure/destructive copy with focused resource tests. ([notes](CHANGELOG.md#v1.8.243))
293294
- **v1.8.242** (2026-06-04) — `NativeStr.toJavaString()` now decodes only ByteBuffer remaining bytes across heap, sliced, direct, and read-only buffers without consuming caller position. ([notes](CHANGELOG.md#v1.8.242))
@@ -475,7 +476,7 @@ limitations under the License.
475476

476477
## Status
477478

478-
🚀 **Active development.** Current release: **v1.8.244** (2026-06-04). The SwiftKey account export window closed on **2026-05-31**; local/on-device migration paths remain documented above.
479+
🚀 **Active development.** Current release: **v1.8.245** (2026-06-04). The SwiftKey account export window closed on **2026-05-31**; local/on-device migration paths remain documented above.
479480

480481
---
481482

0 commit comments

Comments
 (0)