Commit Graph
674 Commits
Author SHA1 Message Date
yilsem cb7e6acb59 fix(mobile): align profile routing, catalog timeout and replay cancellation
Android acceptance / android (push) Failing after 6s
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
Merge Conflict Detector / detect-and-label (push) Successful in 3s
Android CI/CD / Detect Changes (push) Successful in 8s
Android CI/CD / Android Lint — Static Analysis (push) Failing after 2m58s
Android CI/CD / Release Compile Check (push) Failing after 1m32s
CodeQL Analysis / Analyze (java-kotlin) (push) Failing after 3m47s
Android CI/CD / ktlint — Code Style (push) Failing after 3m52s
Android CI/CD / Unit & Integration Tests (push) Failing after 3m56s
Android CI/CD / Build Debug APK (push) Failing after 4m7s
Android CI/CD / Instrumented Tests (push) Failing after 1m18s
Android CI/CD / CI Summary (push) Failing after 1s
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
Merge Conflict Detector / detect-and-label (push) Successful in 2s
Android CI/CD / Detect Changes (push) Successful in 4s
Android CI/CD / Build Debug APK (push) Failing after 2m50s
Android CI/CD / ktlint — Code Style (push) Failing after 3m9s
CodeQL Analysis / Analyze (java-kotlin) (push) Failing after 3m20s
Android CI/CD / Instrumented Tests (push) Failing after 3m11s
Android CI/CD / Release Compile Check (push) Failing after 1m22s
Android CI/CD / Android Lint — Static Analysis (push) Failing after 2m46s
Android CI/CD / Unit & Integration Tests (push) Failing after 2m50s
Android CI/CD / CI Summary (push) Failing after 1s
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 6f4309c746 feat(aiturk): add the connect-to-computer screen (QR scan, code, deep link)
Merge Conflict Detector / detect-and-label (push) Successful in 3s
Android CI/CD / Detect Changes (push) Successful in 6s
CodeQL Analysis / Analyze (java-kotlin) (push) Failing after 2m31s
Android CI/CD / Android Lint — Static Analysis (push) Failing after 3m57s
Android CI/CD / Build Debug APK (push) Failing after 1m56s
Android CI/CD / Instrumented Tests (push) Failing after 1m15s
Android CI/CD / ktlint — Code Style (push) Failing after 5m16s
Android CI/CD / Unit & Integration Tests (push) Failing after 4m8s
Android CI/CD / Release Compile Check (push) Failing after 14m1s
Android CI/CD / CI Summary (push) Failing after 1s
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 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 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
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
m57andGitHub 1cef9e7ebb fix(#1427): keep accepted prompts visible during live turns (#1430) 2026-10-01 20:17:05 +03:00
m57andGitHub 63105b7843 fix(#1427): recover sends past unresolved receipts (#1428) 2026-10-01 16:52:39 +03:00
m57andGitHub 4294d7edff feat: add source filter chips to history screen (#1425) 2026-10-01 11:09:50 +03:00
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
m57andGitHub 0c336ecc4d feat(chat): show agent message reactions (#1422) 2026-09-30 23:15:11 +03:00
m57andGitHub 6e14c49df1 fix(model): MoA row shows 'not loaded' on null temperatures (#1421) 2026-09-30 22:16:32 +03:00
m57andGitHub a8dd055426 feat(ui): copy button on error states and chat error snackbar (#1420) 2026-09-30 21:45:06 +03:00
m57andGitHub 26f259ddd8 feat(theme): add Garnet preset with deep red accents (#1418) 2026-09-30 21:30:18 +03:00
m57andGitHub 7b6aed4bcd fix(chat): /compress no longer drops feedback on id-less transcript rows (#1419) 2026-09-30 21:29:57 +03:00
m57andGitHub 56bb3a88c2 fix(theme): complete color and component contrast contracts (#1417) 2026-09-30 21:14:56 +03:00
Nikhil NairandGitHub 9529a7e32c feat(#1247): live level meter on the voice recording strip (#1416) 2026-09-30 21:14:27 +03:00
m57andGitHub 5145a3354b perf(markdown): coalesce long plain bullet runs (#1415) 2026-09-30 18:12:57 +03:00
m57andGitHub dcf62c0c02 fix(chat): keep restored commands in place on session load (#1414) 2026-09-30 17:14:59 +03:00
m57andGitHub 9f033ac82c fix(chat): keep interrupted replies and notices in place (#1413) 2026-09-30 16:16:23 +03:00
m57andGitHub c5bd457da3 fix(chat): keep Send primary while streaming, Stop in the flat slot (#1412) 2026-09-30 14:33:08 +03:00
m57andGitHub 3fb99f86ac fix(chat): tint composer send/stop/mic button with theme primary (#1410) 2026-09-30 14:33:08 +03:00
m57andGitHub 0e39a71591 feat(chat): /stop also kills background processes like desktop (#1409) 2026-09-30 14:33:07 +03:00
m57andGitHub 6810ef02fe fix(mcp): show Installed state for catalog entries already installed (#1405) 2026-09-30 13:15:30 +03:00
m57andGitHub 81b5e6d84b feat(mcp): Installed/Catalog tabs with search, matching Plugins and Skills (#1404) 2026-09-30 13:15:30 +03:00
m57andGitHub fc2ce3f26b fix(#1402): replace Map<String, Any> Retrofit types with typed DTOs (#1403) 2026-09-30 12:35:01 +03:00
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 NairandGitHub 57be85d2f7 fix(#1247): keep the keyboard up through the whole mic hold (#1399) 2026-09-30 11:17:10 +03:00
m57andGitHub 26c60a10c0 refactor(#1375): type command dispatch, slash exec and attachment RPC params (#1394) 2026-09-30 01:09:34 +03:00
m57andGitHub 1456e642e3 refactor(#1375): type config.set, config.get, model.options and client.capabilities (#1393) 2026-09-30 00:40:24 +03:00
m57andGitHub cb0463aefc refactor(#1375): type profiles.list and profiles.configure RPC params (#1392) 2026-09-29 23:42:01 +03:00
m57andGitHub 9a09974081 refactor(#1375): type process list and kill RPC params (#1390) 2026-09-29 22:36:35 +03:00
m57andGitHub c8edf3665f refactor(#1375): type connector operation responses (#1388) 2026-09-29 21:28:40 +03:00
m57andGitHub 717b5b0361 refactor(#1375): typed params for approval.* and session.active_list (#1385) 2026-09-29 18:51:02 +03:00
m57andGitHub c5b34ff471 refactor(#1375): typed params for remaining ChatViewModel session.* and prompt.btw (#1384) 2026-09-29 18:09:45 +03:00
m57andGitHub 1dd8d2138d fix(#1379): send only contract params in subagent.tail (#1383) 2026-09-29 17:04:10 +03:00
m57andGitHub aac42032fb refactor(#1375): typed params for session.interrupt, steer, redirect (#1382) 2026-09-29 17:02:32 +03:00
m57andGitHub a780df3261 refactor(#1375): typed params for session.create, session.resume, prompt.submit (#1381) 2026-09-29 16:31:03 +03:00
m57andGitHub 4f14ecac4b fix(#1368): highlight chat search hits in inline spans, code blocks and reasoning (#1372) 2026-09-29 01:01:13 +03:00
m57andGitHub 503aba863f feat(#1367): render agent MEDIA inline at its directive position (#1370) 2026-09-28 23:56:37 +03:00
m57andGitHub 12ddef09a0 refactor(chat): single owner for display kinds and REST row ids (#1364) 2026-09-28 20:26:13 +03:00
m57andGitHub 9aefc5bfc7 refactor(chat): pure server message mapper (#1363) 2026-09-28 19:57:35 +03:00
m57andGitHub 85903afd38 fix(chat): searchable tool/reasoning rows and live markdown (#1361) 2026-09-28 19:31:43 +03:00
m57andGitHub 580f3b9697 fix(#1331, #1332): render nested markdown blocks and content-sized tables (#1360) 2026-09-28 18:04:05 +03:00
m57andGitHub cc98f3ba89 fix(chat): serialize scroll follow and timeline jumps (#1322, #1323) (#1359) 2026-09-28 15:59:29 +03:00
m57andGitHub 58794bee00 refactor(chat): unify throttled streaming buffers (#1338) (#1358) 2026-09-28 15:05:58 +03:00
m57andGitHub 76726dd086 refactor(chat): isolate transcript and browser return state (#1320, #1321) (#1357) 2026-09-28 14:30:05 +03:00