Add post-edit correction learning and explicit format contracts - #74
Merged
Conversation
IchenDEV
marked this pull request as ready for review
August 11, 2026 22:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
formatKindplus optionaluserFinalTextin historyWhy
OpenType already had deterministic dictionary replacement, ASR term context, and LLM term protection, but no normal product path for the dictionary to grow or be managed. Post-insertion user edits were not associated with history, and formatting relied on a generic prompt that tended to collapse unordered lists and ordered steps into the same numbered structure.
This change closes that P0 loop conservatively while keeping vocabulary learning separate from future style personalization.
User impact
Users can now teach OpenType preferred names and spellings by correcting a recently inserted term or by adding it manually. Ambiguous or conflicting corrections remain pending instead of silently changing output. Processed dictation now has explicit, auditable layout behavior for common document types.
Sensitive targets such as terminals, password managers, secure fields, and browser address fields are excluded from post-edit observation.
Validation
swift test— 552 XCTest cases, 0 failures, 7 environment-gated skips; 2 Swift Testing cases passedbash scripts/ci-basic-checks.shbash scripts/build-app.sh --app-onlycodesign --verify --deep --strict dist/OpenType.appdefault.metallibgit diff --checkValidation boundary
A real third-party-app
insert → edit → learn → repeatrun still requires granting Accessibility access on the test machine. The pure capture, privacy, candidate, dictionary, prompt, history, and format-classification paths are covered by automated tests.