Commit Graph
881 Commits
Author SHA1 Message Date
yilsem 8161f3bf09 fix(cron): add repeat dropdown and safe touch time selection 2026-10-08 02:36:10 +03:00
yilsem 1d11afefec feat(cron): visual schedule builder with timepicker and interval presets 2026-10-08 02:17:07 +03:00
yilsem cb7e6acb59 fix(mobile): align profile routing, catalog timeout and replay cancellation 2026-10-07 20:23:17 +03:00
yilsemandClaude Opus 5.5 827c74b3c3 feat(aiturk): hide what the paired IDE cannot serve, plain error sentences, reconnect on return
When paired with AITURK IDE:
- an "unknown method" (-32601) answer and the proxy's 403/route-404 are shown
  as plain sentences, never as raw JsonRpcError text; a method the IDE does
  not have is not sent again on the same socket
- Account connectors, Vault, Keys and Files are hidden (the IDE has no
  connectors.* / vault.* and its phone proxy refuses /api/env and /api/files)
- an idle-closed chat socket is reopened when the app returns to the
  foreground; idle tunnel connections are dropped on a network change
- an unsaved chat no longer polls /api/sessions/<id>
- the pairing screen shows the app version

A plain Hermes connection is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-05 17:21:32 +03:00
yilsemandClaude Opus 5.5 c2d828b90a feat(aiturk): say when AITURK IDE is closed in the chat banner
When the tunnel reports that no computer is attached (close 4503) the
reconnect banner now says that AITURK IDE is not open or Phone
connection is off, instead of an endless 'reconnecting'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-05 04:18:53 +03:00
yilsemandClaude Opus 5.5 cbe716300c feat(aiturk): reach the IDE through an end-to-end encrypted tunnel
A phone on the same Wi-Fi could not reach the computer at all (client
isolation on the router), and every failure was shown as one 'same
Wi-Fi' message. Contract v3: the phone only dials turkservis.online.

Transport: a relay pairing lives on the virtual host
<relayId>.relay.aiturk.invalid. For that host only, the shared OkHttp
client resolves a placeholder address, opens a WebSocket byte stream to
the relay instead of a TCP connection, and runs TLS on top of it pinned
to the IDE's certificate fingerprint. The relay sees ciphertext only.
DNS, sockets, proxy choice and TLS are unchanged for every other host.

Pairing: tunnel first (hello within 10 s), LAN candidates second, one
claim only. The local-network permission is requested only when a LAN
address may be tried; denying it no longer ends the pairing.

Errors: host offline, unknown relay, busy, no internet, silent computer,
certificate mismatch and the LAN failures each get their own text plus
a short diagnostic code built from a fixed vocabulary (never a token,
pairing code or address). After pairing the screen shows the first 8
characters of the fingerprint as a security code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-05 04:18:52 +03:00
yilsemandClaude Opus 5.5 9afac6f508 feat(aiturk): accept a relay id in pairing payloads
Contract v3 (tunnel): the QR / deep link may carry r=<lowercase UUIDv4>
and no LAN address at all (the IDE's default). u is now 0..4, but a
payload with neither u nor r is rejected, and a present-but-invalid r
rejects the whole payload instead of falling back to the LAN addresses.

AiturkRelay maps a relay id to the virtual host
<relayId>.relay.aiturk.invalid that addresses a tunnel pairing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-05 04:08:07 +03:00
yilsemandClaude Opus 5.5 6f4309c746 feat(aiturk): add the connect-to-computer screen (QR scan, code, deep link)
Landing now leads with QR / 8-character code pairing; manual login stays as the secondary action. aiturk://pair links open the same screen and ask for confirmation first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-04 06:06:31 +03:00
yilsemandClaude Opus 5.5 c2b08ff73e feat(aiturk): pair with AITURK IDE over LAN with a pinned certificate
Adds the phone side of the pairing contract v1: payload parsing, gateway resolve, parallel hello and a single claim, per host:port certificate pinning hooked into OkHttpProvider.base, and no dashboard token refresh for a paired IDE. Adds zxing-android-embedded and okhttp-tls (tests).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-04 06:06:31 +03:00
yilsemandClaude Opus 5.5 8e48a0fa1e feat(brand): disable upstream self-updater, add attribution and NOTICE
The GitHub release checker would install Hy4ri/hermes-mobile APKs; the About
screen now points to https://turkservis.online/indir and credits the original
project.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-03 15:06:22 +03:00
yilsemandClaude Opus 5.5 34758975b7 feat(brand): replace launcher icon with the AITURK mark
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-03 15:06:21 +03:00
yilsemandClaude Opus 5.5 e3d0a97921 feat(i18n): add Turkish translation and language picker entry
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-03 15:06:20 +03:00
yilsemandClaude Opus 5.5 5f548f5a17 feat(brand): rename app to AITURK Mobil and set applicationId
Replace user-visible Hermes / Hermes Mobile texts with AITURK branding in all
locales and set applicationId to online.turkservis.aiturk.mobil. Namespace and
source packages stay com.m57.hermescontrol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-03 15:06:19 +03:00
m57andAlexDev_ 944390bec1 chore: promote dev to main (#1455)
Co-authored-by: AlexDev_ <56083016+alexdev03@users.noreply.github.com>
2026-10-03 00:51:11 +03:00
m57 1cef9e7ebb fix(#1427): keep accepted prompts visible during live turns (#1430) 2026-10-01 20:17:05 +03:00
m57 63105b7843 fix(#1427): recover sends past unresolved receipts (#1428) 2026-10-01 16:52:39 +03:00
m57 4294d7edff feat: add source filter chips to history screen (#1425) 2026-10-01 11:09:50 +03:00
m57 9cf8c3818c refactor(#1376): extract WebSocket client components (#1424) 2026-10-01 10:35:59 +03:00
Nikhil NairandM57 5bf43e4a21 feat(notifications): optional alert when any session completes (#1401)
Co-authored-by: M57 <41645758+Hy4ri@users.noreply.github.com>
2026-09-30 23:31:08 +03:00
m57 0c336ecc4d feat(chat): show agent message reactions (#1422) 2026-09-30 23:15:11 +03:00
m57 6e14c49df1 fix(model): MoA row shows 'not loaded' on null temperatures (#1421) 2026-09-30 22:16:32 +03:00
m57 a8dd055426 feat(ui): copy button on error states and chat error snackbar (#1420) 2026-09-30 21:45:06 +03:00
m57 26f259ddd8 feat(theme): add Garnet preset with deep red accents (#1418) 2026-09-30 21:30:18 +03:00
m57 7b6aed4bcd fix(chat): /compress no longer drops feedback on id-less transcript rows (#1419) 2026-09-30 21:29:57 +03:00
m57 56bb3a88c2 fix(theme): complete color and component contrast contracts (#1417) 2026-09-30 21:14:56 +03:00
Nikhil Nair 9529a7e32c feat(#1247): live level meter on the voice recording strip (#1416) 2026-09-30 21:14:27 +03:00
m57 5145a3354b perf(markdown): coalesce long plain bullet runs (#1415) 2026-09-30 18:12:57 +03:00
m57 dcf62c0c02 fix(chat): keep restored commands in place on session load (#1414) 2026-09-30 17:14:59 +03:00
m57 9f033ac82c fix(chat): keep interrupted replies and notices in place (#1413) 2026-09-30 16:16:23 +03:00
m57 c5bd457da3 fix(chat): keep Send primary while streaming, Stop in the flat slot (#1412) 2026-09-30 14:33:08 +03:00
m57 3fb99f86ac fix(chat): tint composer send/stop/mic button with theme primary (#1410) 2026-09-30 14:33:08 +03:00
m57 0e39a71591 feat(chat): /stop also kills background processes like desktop (#1409) 2026-09-30 14:33:07 +03:00
m57 05519ba1ff feat(notification): Turn off action and tap-to-open on background notification (#1408) 2026-09-30 13:30:55 +03:00
m57 48de25985a fix(providers): accept numeric expires_at in OAuth status (#1407) 2026-09-30 13:30:41 +03:00
m57 6810ef02fe fix(mcp): show Installed state for catalog entries already installed (#1405) 2026-09-30 13:15:30 +03:00
m57 81b5e6d84b feat(mcp): Installed/Catalog tabs with search, matching Plugins and Skills (#1404) 2026-09-30 13:15:30 +03:00
m57 fc2ce3f26b fix(#1402): replace Map<String, Any> Retrofit types with typed DTOs (#1403) 2026-09-30 12:35:01 +03:00
Nikhil NairandM57 7a2822fade fix(sessions): send profile in destructive bodies and prune the asked window (#1398)
Co-authored-by: M57 <41645758+Hy4ri@users.noreply.github.com>
2026-09-30 11:27:40 +03:00
Nikhil Nair 012440b8f7 fix(nav): back from a list-opened chat returns to that list (#1400) 2026-09-30 11:21:44 +03:00
Nikhil Nair 57be85d2f7 fix(#1247): keep the keyboard up through the whole mic hold (#1399) 2026-09-30 11:17:10 +03:00
m57 ee1d7a0b75 fix(#1375): treat required profile like any required param in the contract check (#1397) 2026-09-30 01:42:37 +03:00
m57 6baade0f7f refactor(#1375): make untyped RPC request and send internal (#1395) 2026-09-30 01:22:39 +03:00
m57 26c60a10c0 refactor(#1375): type command dispatch, slash exec and attachment RPC params (#1394) 2026-09-30 01:09:34 +03:00
m57 1456e642e3 refactor(#1375): type config.set, config.get, model.options and client.capabilities (#1393) 2026-09-30 00:40:24 +03:00
m57 cb0463aefc refactor(#1375): type profiles.list and profiles.configure RPC params (#1392) 2026-09-29 23:42:01 +03:00
m57 445da9fe14 refactor(#1375): type plugins.manage and projects.list RPC params (#1391) 2026-09-29 23:14:13 +03:00
m57 9a09974081 refactor(#1375): type process list and kill RPC params (#1390) 2026-09-29 22:36:35 +03:00
m57 27ce528005 refactor(#1375): type subagent list and tail RPC params (#1389) 2026-09-29 22:02:07 +03:00
m57 c8edf3665f refactor(#1375): type connector operation responses (#1388) 2026-09-29 21:28:40 +03:00
m57 8ae2ddbbee refactor(#1375): type connectors repository RPC params (#1387) 2026-09-29 20:27:27 +03:00