Commit Graph
24 Commits
Author SHA1 Message Date
yilsem 6c17c3f04b test(cron): verify phone editor save/edit/run over real HTTP; clarify server timezone 2026-10-08 04:28:34 +03:00
yilsem dc01c225f7 fix(cron): keep full editor save action readable on phones 2026-10-08 02:57:15 +03:00
yilsem 1f692044d2 fix(cron): preserve chosen clock time across repeat changes 2026-10-08 02:43:32 +03:00
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 5006d1c7a8 ci: bound compiler concurrency and size Kotlin heap 2026-10-07 21:15:02 +03:00
yilsem 004d4622c4 ci: transfer the accepted workstation Android SDK license 2026-10-07 20:58:24 +03:00
yilsem 824f0a07e2 ci: accept package licenses at explicit SDK root and verify installation 2026-10-07 20:54:18 +03:00
yilsem 71dd92a4c2 ci: install checksum-pinned Android tools with native Windows extraction 2026-10-07 20:47:21 +03:00
yilsem ebdfeddd9a ci: retain compatible Windows extraction with pinned modern SDK tools 2026-10-07 20:44:03 +03:00
yilsem 017864a0db ci: use current SDK tools and exact Android 37.0 package 2026-10-07 20:37:37 +03:00
yilsem 6472d876b3 ci: isolate Android SDK from spaced Windows user paths 2026-10-07 20:32:39 +03:00
yilsem 9e4e979e7a ci: provision Android SDK and Java on the Windows runner 2026-10-07 20:28:27 +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