Skip to content

iOS agent-loop: Send, presets, hardware keys, voice, custom slash - #112

Merged
jamditis merged 6 commits into
mainfrom
feat/85-send
Aug 14, 2026
Merged

jamditis merged 6 commits into
mainfrom
feat/85-send

Conversation

@jamditis

Copy link
Copy Markdown
Owner

Depends on #111 (first commit). Closes #85. Closes #84. Closes #83. Closes #82. Closes #86.

Send (#85)

Tap Send in the SSH extra row writes CR. Long-press writes LF. The IME mapping treats Send as an honest newline.

Presets (#84)

Agent is the default ten-key row. Confirm types y/n/a/1/2/3 plus Send and Esc. Stored in group.com.keyjawn.

Hardware keys (#83)

pressesBegan + UIKeyCommand use HardwareKeyMapping. Esc, Tab, arrows, Ctrl+C/D/Z reach the PTY. Cmd+C is not 0x03.

Voice (#82)

Main-app SFSpeechRecognizer on the terminal Mic key. Commit writes UTF-8. Cancel inserts nothing. The extension row has no mic and does not import Speech.

Custom slash (#86)

Settings adds /foo to App Group JSON. The panel shows it. /compact is rejected. Inserts stay plain text.

Tests

Local KeyJawnKitTests 164 passed twice on iPhone 17 Pro.

@jamditis

Copy link
Copy Markdown
Owner Author

@codex review

1 similar comment
@jamditis

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3e46fc9e9f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ios/KeyJawn/Terminal/TerminalVoiceInput.swift
Comment thread ios/KeyJawn/Terminal/TerminalVoiceInput.swift
Comment thread ios/KeyJawn/Terminal/TerminalInputView.swift
Comment thread ios/KeyJawn/Terminal/TerminalInputView.swift
Comment thread ios/KeyJawn/Terminal/TerminalInputView.swift
Tap Send writes CR into the PTY. Long-press writes a newline without
submitting. The IME mapping treats Send as an honest newline because
UITextDocumentProxy cannot submit to a remote agent.

Closes #85
Agent is the default ten-key row. Confirm types y/n/a/1/2/3 and can
submit. The choice lives in the App Group so the SSH accessory and the
extension stay in sync.

Closes #84
pressesBegan plus UIKeyCommand use a shared table. Cmd+C is not 0x03.

Closes #83
Tap mic to start and stop. Long-press cancels and inserts nothing. The
keyboard extension does not show a mic and does not import Speech.

Closes #82
/foo added in Settings appears in the panel. A built-in duplicate is
rejected. Inserts stay plain text.

Closes #86
@jamditis

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a46dc4f1d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ios/KeyJawn/Terminal/TerminalInputView.swift
Comment thread ios/KeyJawn/Terminal/TerminalVoiceInput.swift Outdated
Comment thread ios/KeyJawnKit/Sources/KeyJawnKit/Views/ExtraRowView.swift
Set a recording session before the engine starts. Stopping the mic waits
for the final recognition result instead of cancelling it. Leaving the
terminal cancels capture. Send consumes armed Ctrl.
@jamditis
jamditis merged commit e0aff63 into main Aug 14, 2026
3 checks passed
@jamditis
jamditis deleted the feat/85-send branch August 14, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant