Repository navigation
Prosign support: key <SK> run-together, author story sign-off correctly - #90
Merged
Merged
Conversation
Add run-together prosign rendering to core/morse (SK, AR, BT, KN, AS, KA) via <NAME> tokens, so end-of-contact and friends key as one symbol instead of separate letters. Story close lines now author '73 <SK>'; prosigns are typed as their plain letters and displayed bracket-free.
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.
Why
A real CW operator hears the difference between the prosign
<SK>(end of contact —didididahdidah, keyed as one symbol) and the two separate letters S K. The engine had no prosign concept, so any prosign would have keyed as separate letters. This adds proper prosign support and authors the story sign-off correctly.Honest note: the story's
SKwas only in send lines, which aren't sounded today — so this wasn't an audible bug yet. But it makes the engine correct so future copy chapters can use<AR>,<KN>,<BT>etc. and they'll sound authentic automatically.What
PROSIGN_TABLE(SK, AR, AS, BT, KA, KN) +symbolsForProsign()/PROSIGN_NAMES.renderToElementsrecognizes<NAME>tokens and keys them run-together (intra-character gaps only; normal inter-character/word gaps around them). Unknown/malformed tokens are skipped like any unsupported char.isSupportedStoryTextaccepts known prosign tokens, rejects unknown/malformed ones.<SK>but typed as plain letters ("SK") and displayed bracket-free —normalizeStoryInputstrips brackets, newdisplayStoryTextfor the UI,expectedLengthuses the typed length. First Contact + Harbor Relay now sign off with73 <SK>.Tests
Prosign timing (run-together, no 3-unit gap; neighbour gaps intact; unknown/malformed skipped), validation (accept/reject), and send-line scoring by typed letters. All gates green: typecheck · 208 tests · lint · build.
Product law preserved: copy text stays hidden while decoding; nothing teaches dots/dashes.