Skip to content

Commit e59ffdc

Browse files
committed
docs(specs): promote 9 more docs/specs to wiki + careful 3-way merges
Phase 3 backlog completion. Three parallel merge agents + self-promotions cover the rest of the docs/specs → wiki/specs migration the triage agent identified. ## New wiki specs (NEW Astro routes) - typing/neural-prediction-spec.md (277 lines) — deep architecture behind the swipe pipeline (encoder/decoder split, beam search, trie guidance, MemoryPool/TensorFactory, score-gap stop). - gestures/gesture-system-overview-spec.md (289 lines) — touch event routing, gesture classifier, `hasLeftStartingKey` gatekeeper. - settings/settings-system-architecture-spec.md (319 lines) — Defaults singleton, Config constructor, ConfigurationManager listener delegation, observer pattern. - clipboard/privacy-spec.md (231 lines) — password manager detection, IS_SENSITIVE flag handling, foreground app probe. - customization/quick-settings-tile-spec.md (151 lines) — KeyboardTileService implementation. - customization/timestamp-keys-spec.md (174 lines) — SimpleDateFormat-based timestamp insertion. ## Merged into existing wiki specs (3-way: wiki + docs/specs + html) - gestures/selection-delete-spec.md: 172 → 226 lines. Folded in docs/specs architecture diagram + vertical-threshold explanation. Replaced fictional `sendShiftArrow()` helper signature with real `_handler.onPointerDown/Up` synthesised keys. - gestures/trackpoint-mode-spec.md: 100 → 207 lines. Replaced fictional `TrackPointDirection` enum + octant lookup (those don't exist) with the REAL subkey-index direction mapping (`key.keys[5]` … `key.keys[8]`). Fixed flag value to `1 shl 10 = 0x400`. Fixed haptic config key name from `trackpoint_haptic_enabled` (didn't exist) to `haptic_trackpoint_activate`. Fixed `HapticEvent` name from `CLOCK_TICK` to `TRACKPOINT_ACTIVATE`. - gestures/cursor-navigation-spec.md: 136 → 230 lines. Folded in full `bottom_row.xml` example + Slider enum + `swipe_scaling` device-adaptive table + `Sliding` inner class. Replaced fictional `FLAG_P_NAV_HOLD_REPEAT` / `acceleration = 0.8f` (none exist) with real `keyrepeat_enabled` + `longPressTimeout` + `TRACKPOINT_MIN_DELAY`. Corrected `slider_speed_smoothing` default from claimed 0.6 → actual 0.7 and `slider_speed_max` from 6.0 → 4.0 (`Config.kt:542-543`). - typing/swipe-typing-spec.md: Related Specifications now points at new neural-prediction-spec + gesture-system-overview-spec (replaces broken `../../../specs/` paths). - clipboard/clipboard-history-spec.md: Privacy section retitled "Privacy and access control" with pointers to new privacy-spec. ## Factual corrections beyond the 5 documented earlier Each merge agent caught more contradictions against current source. Notable: - `Pointers.kt` is 1789 lines, not the claimed ~1100. - `Pointer` is `internal class Pointer` (Pointers.kt:1389), NOT `data class Pointer`. - Encoder seq-len ceiling is 250 (`SwipePredictorOrchestrator.kt:40`), not the claimed 150. - Beam width default is 6 (Config.kt:130), not 8. - `PASSWORD_MANAGER_PACKAGES` lives inside `Defaults` object (Config.kt:236), NOT as a top-level Config field. - `getForegroundAppPackage` uses a 5-second probe window (ClipboardHistoryService.kt:480), not 1 minute. - `Config` is `private constructor(_prefs, res, handler, foldableUnfolded)` (Config.kt:388), not the `Config(context)` pattern the spec claimed. - `ConfigurationManager` (not `Config`) implements `SharedPreferences.OnSharedPreferenceChangeListener` (ConfigurationManager.kt:29). - Decoder vocab is data-driven from `tokenizer_config.json`, not the claimed fixed 35 tokens. ## Source-file banners All 10 docs/specs files that have wiki/specs canonical equivalents now have a banner at the top pointing readers to the new live URL plus the canonical markdown path. The source files are preserved so that the ~9 cross-references (README, TABLE_OF_CONTENTS, ROADMAP, specs-config.json, CLAUDE.md, etc.) don't break. ## Verification `bun --bun node_modules/astro/astro.js build`: - 79 total pages (was 73 before Phase 3 round 1, 75 before this commit) - 35 spec routes under /specs/ (was 29 before this commit) - 0 build errors, 0 schema violations - All new spec pages render with correct frontmatter badges (status + version) and user_guide back-links where present ## Remaining backlog # TODO: clean up legacy web_demo/specs/index.html (Astro # /specs/index.html overrides at runtime, no live impact, but # the legacy file references the now-deleted typing/autocorrect-spec.html) # TODO: decide fate of the ~10 engineering-only specs in docs/specs/ # that have no wiki counterpart (architectural-decisions, # *-optimization, dictionary-pipeline, testing-strategy, etc.) — # keep as internal? Or promote some to wiki/? # TODO: web_demo/specs/index.html still has a card linking to the # deleted typing/autocorrect-spec.html — would 404 only if Astro # /specs/index.html somehow failed to deploy. — opus 4.7
1 parent 27002e4 commit e59ffdc

20 files changed

Lines changed: 2066 additions & 230 deletions

docs/specs/clipboard-privacy.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Clipboard Privacy
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/clipboard/privacy-spec.md`](../wiki/specs/clipboard/privacy-spec.md) and renders at <https://cleverkeys.app/specs/clipboard/privacy-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
CleverKeys includes privacy features for the clipboard history system, primarily automatic exclusion of clipboard entries from password managers. When enabled, CleverKeys detects when the foreground app is a password manager and skips storing clipboard content, preventing sensitive credentials from appearing in clipboard history.

docs/specs/cursor-navigation-system.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Cursor Navigation System
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/gestures/cursor-navigation-spec.md`](../wiki/specs/gestures/cursor-navigation-spec.md) and renders at <https://cleverkeys.app/specs/gestures/cursor-navigation-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
CleverKeys provides two distinct cursor navigation mechanisms: slider-based cursor (spacebar) for continuous movement scaled by distance and speed, and arrow key navigation (dedicated nav key) for discrete single-character movement. Both are accessed via swipe gestures on bottom row keys.

docs/specs/gesture-system.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Gesture Recognition System
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/gestures/gesture-system-overview-spec.md`](../wiki/specs/gestures/gesture-system-overview-spec.md) and renders at <https://cleverkeys.app/specs/gestures/gesture-system-overview-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
CleverKeys implements a multi-layered gesture recognition system that handles four gesture types: short swipes (directional swipes within a key for sublabels), long swipes (gestures across keys for neural word prediction), circle/rotation gestures (for double letters), and slider gestures (continuous value adjustment). The `hasLeftStartingKey` flag is the central decision point that routes touches to the appropriate handler.

docs/specs/neural-prediction.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Neural Swipe Prediction System
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/typing/neural-prediction-spec.md`](../wiki/specs/typing/neural-prediction-spec.md) and renders at <https://cleverkeys.app/specs/typing/neural-prediction-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
Pure ONNX neural transformer architecture for converting swipe gestures into ranked word predictions. This replaces legacy template-matching (CGR) with deep learning inference: trajectory → encoder → beam search decoder → vocabulary filter → predictions.

docs/specs/quick-settings-tile.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Quick Settings Tile
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/customization/quick-settings-tile-spec.md`](../wiki/specs/customization/quick-settings-tile-spec.md)
5+
> and renders at <https://cleverkeys.app/specs/customization/quick-settings-tile-spec/>.
6+
> This file is preserved for cross-references but may not be kept in sync.
7+
38
## Overview
49

510
CleverKeys provides an Android Quick Settings tile that allows users to quickly access the keyboard switcher from the notification shade. Tapping the tile opens the system input method picker, providing a convenient way to switch between keyboards without navigating to system settings.

docs/specs/selection-delete-mode.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Selection-Delete Mode
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/gestures/selection-delete-spec.md`](../wiki/specs/gestures/selection-delete-spec.md) and renders at <https://cleverkeys.app/specs/gestures/selection-delete-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
Selection-Delete Mode is a gesture that enables text selection by swiping and holding on the backspace key. When activated, horizontal finger movement selects characters (left/right), vertical movement selects lines (up/down), and releasing the finger deletes all selected text. This provides a single fluid gesture for rapid text correction.

docs/specs/settings-system.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Settings System
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/settings/settings-system-architecture-spec.md`](../wiki/specs/settings/settings-system-architecture-spec.md) and renders at <https://cleverkeys.app/specs/settings/settings-system-architecture-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
The settings system manages user preferences through SharedPreferences, provides a Material 3 Compose UI for configuration, and applies settings at runtime via the Config singleton. All default values are centralized in the `Defaults` object within Config.kt to prevent mismatches between UI display and actual behavior.

docs/specs/timestamp-keys.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Timestamp Keys
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/customization/timestamp-keys-spec.md`](../wiki/specs/customization/timestamp-keys-spec.md)
5+
> and renders at <https://cleverkeys.app/specs/customization/timestamp-keys-spec/>.
6+
> This file is preserved for cross-references but may not be kept in sync.
7+
38
## Overview
49

510
Timestamp keys insert the current date and/or time formatted according to a user-specified pattern when pressed. This allows users to quickly insert dates, times, or combined datetime strings without typing them manually.

docs/specs/trackpoint-navigation-mode.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# TrackPoint Navigation Mode
22

3+
> **Note:** As of v1.4.0, the canonical version of this specification lives at
4+
> [`docs/wiki/specs/gestures/trackpoint-mode-spec.md`](../wiki/specs/gestures/trackpoint-mode-spec.md) and renders at <https://cleverkeys.app/specs/gestures/trackpoint-mode-spec/>.
5+
> This file is preserved for cross-references but may not be kept in sync.
6+
37
## Overview
48

59
TrackPoint Navigation Mode provides joystick-style cursor control by holding arrow keys (without initial swipe movement). When activated, finger movement in any direction moves the cursor proportionally, with speed scaling based on distance from the activation point. Supports all 8 directions including diagonals for fluid text navigation.

docs/wiki/specs/clipboard/clipboard-history-spec.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,15 +384,19 @@ clipboard_backup.zip
384384
| Sensitive Flag | `clipboard_respect_sensitive_flag` | true | bool (Android 13+) |
385385
| Pane Height | `clipboard_pane_height_percent` | 45 | 20-80% |
386386

387-
## Privacy
387+
## Privacy and access control
388+
389+
Privacy controls — password-manager exclusion, the Android 13+ `IS_SENSITIVE` flag, and media gating — are documented in [Clipboard Privacy](privacy-spec.md). Summary:
388390

389391
- Clipboard media excluded from Android Auto Backup (`backup_rules.xml`, `data_extraction_rules.xml`)
390392
- Password manager exclusion via foreground app detection
391393
- Android 13+ IS_SENSITIVE flag respected
392394
- No INTERNET permission — all processing is local
393395
- Media files stored in app-private `filesDir` (not accessible to other apps)
394396

397+
See [Clipboard Privacy](privacy-spec.md) for the full exclusion list, foreground-app detection code path, and media-gating logic.
398+
395399
## Related Specifications
396400

397-
- [Clipboard Privacy](../../../../docs/specs/clipboard-privacy.md) - Password manager exclusion
401+
- [Clipboard Privacy](privacy-spec.md) — password manager exclusion, IS_SENSITIVE handling, media gating
398402
- [Text Selection](text-selection-spec.md) - Selection integration

0 commit comments

Comments
 (0)