Commit Graph
110 Commits
Author SHA1 Message Date
yilsemandClaude Opus 5.5 86a6621936 feat(chrome): let the IDE agent use the user's Chrome and beta.42
Server CI and Windows package / verify (push) Successful in 3m33s
Server CI and Windows package / windows-package (push) Successful in 7m36s
The AITURK Chrome extension now registers the user's Chrome as the desktop
backend's browser controller, the way the ChatGPT extension lets its agent
work in the user's browser. The agent's existing browser tools (navigate,
snapshot, click, type, scroll, back, press, get_images, vision) run in its
own background tabs grouped as "AITURK", or a tab the user hands over.

Backend: a local desktop lane in the browser-control broker. One controller
registered from the loopback desktop transport is offered to every desktop
session as a lane template; each session still gets its own exact scope on
first use. The lane has its own switch (browser.extension_control.local_desktop,
on by default); with no extension registered, or after it disconnects, the
normal browser backend runs unchanged. browser_vision turns the extension's
capture into the usual native/auxiliary vision result.

Bridge: forwards controller commands only to a connection that registered,
refuses unknown or oversized commands, relays results.

Extension: service-worker controller with its own native connection,
trusted chrome.debugger input (press/release only: a hover move waits 5 s on
background tabs), refusal of password and payment-card fields and of
browser, extension, file and Web Store pages, panel switch, Stop, tab
hand-over, recent actions, Alt+Shift+A and right-click "send to AITURK".
Cancelling Chrome's debugging bar stops the agent. Existing panel flows and
privacy rules are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 08:38:52 +03:00
yilsemandClaude Opus 5.5 5c76c24c9c feat(codex-link): choose which models fill the Codex model menu and beta.41
Server CI and Windows package / verify (push) Successful in 2m54s
Server CI and Windows package / windows-package (push) Successful in 4m50s
The Codex desktop app's model picker asks the app server for one page of
at most 100 models and never asks for the next page (a fixed limit in the
app). AITURK sent 262, so everything after the first 100 in alphabetical
provider order was out of reach from the menu (Gemini, most NanoGPT
uncensored models, Grok, ModelArk...).

- Bridge: bridge.json codex_liste {medya_gizle, efor_gizle, one_al, gizli},
  re-read when the file changes. Image/audio/video models and "-low/-high"
  copies whose base model is listed are left out by default; pinned models
  follow Codex's own models in the given order; hidden ones are removed.
  The candidate list with each model's place is written to
  log/son-liste/codex-adaylar.json for the settings screen.
- Settings > Codex Bağlama: "Models shown in Codex" with a live count of the
  100 slots, search, filter, pin/move up/hide per model and the two switches.
- The IDE keeps codex_liste when it rewrites bridge.json.
- Bridge version 21, IDE 1.0.0-beta.41.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 05:16:40 +03:00
yilsem 81ee2ca646 feat(codex-link): main model delegates every task to subagents by default
Server CI and Windows package / verify (push) Successful in 2m56s
Server CI and Windows package / windows-package (push) Successful in 7m27s
User decision (15 Oct 2026): repeating or scheduled work goes to AITURK; all other work, coding included, goes to one subagent (easy) or a subagent team or dynamic workflow (hard). The main model talks, dispatches and verifies.
2026-10-15 02:26:45 +03:00
yilsem 557e619499 feat(codex-link): AITURK work routing setting and beta.40
Server CI and Windows package / verify (push) Successful in 2m42s
Server CI and Windows package / windows-package (push) Successful in 6m21s
- Default routing rule (user decision, 15 Oct 2026): repeating/scheduled work goes to the AITURK IDE bot as a cron job; coding stays in Codex (itself or its subagents); 'Codex' or 'sen yap' keeps everything in Codex.
- Settings > Codex Bağlama: choice (recommended / send large work / never / custom text) with a text box and restore-default; written to bridge.json aiturk_hat.
- Bridge re-reads aiturk_hat when bridge.json changes: no restart. IDE apply keeps aiturk_hat instead of wiping it.
- Bridge version 20, IDE 1.0.0-beta.40. Jev untouched.
2026-10-15 02:18:18 +03:00
yilsemandClaude Opus 5.5 a7ba300448 fix(codex-bridge): close the gaps an independent review found
Server CI and Windows package / verify (push) Successful in 3m23s
Server CI and Windows package / windows-package (push) Successful in 7m9s
- One decision per real turn: a turn starts with a user message after the
  previous final answer; tool steps, messages typed mid-turn, a lone "."
  and compaction keep the combo. Works without prompt_cache_key too.
- The virtual Otomatik name never reaches the gateway (stage off or error
  -> last choice or targets.zor); prefilter.target may not be it.
- finishCheck: at most once per turn; a broken, empty or refused retry
  delivers the already approved first answer.
- Layer window filter: only trusted windows, never the last layer.
- Correction channel only on always-pass targets while checks are on;
  Sesli-Hizli-Zeki stays always-pass by default; a >256 KB SSE frame
  passes unfiltered instead of breaking the stream.
- Turn-start questions wait in the local queue no longer than their
  timeout; decision-turn memory under a lock with refreshed order.
- Dify fetch refuses redirects (the app key never moves host); the
  rules file write retries a Windows sharing violation.
- An unreadable settings file no longer breaks every request.
- TypeScript accepts only https:// URLs the bridge accepts;
  finishCheck.timeoutSeconds (unused) removed.

Tests: 310 bridge tests, 36 electron tests; side-bridge live run for the
turn, prefilter (incl. decision timeout) and finish-check paths.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:14:38 +03:00
yilsemandClaude Opus 5.5 7c4ef18df0 feat(codex-bridge): decision-model stages, Dify rules and beta.39
Owner request, 14 October 2026: use the decision model (Jev / Celeris) at
several stages, let Dify supply the rules, code it without new bugs.
Every new stage is switched on in Settings > Kademeli Gecis and starts
disabled, so the upgrade changes no behaviour by itself.

- Settings schema 2 (Python and TypeScript validate the same rules); a
  schema 1 file is filled from the defaults. Default chain is now
  Katman-1 -> Katman-2 -> Katman-3 with Katman-3, Chat-Model and
  bekci-sesli-bekci always passing (owner decision of the same day).
- watchModels: the Bekci correction channel follows a settings list
  instead of the hard-coded Sesli-Hizli-Zeki.
- prefilter: a predicted refusal starts the step at the chosen layer.
- autoRoute: virtual "Otomatik" model; one decision per user turn picks
  the combo, tool steps of the same turn keep it.
- finishCheck: an answer that stops early goes back to the same model once.
- A layer whose window cannot hold the request is skipped.
- policy: stage rules from a Dify workflow (karar_politikasi.py), fetched
  in the background, validated, last good copy kept; turns never wait.
- karar_sor.py: verifierCheck for the dynamic-workflow acceptance step.
- Bridge version 19, IDE 1.0.0-beta.39.

Tests: 299 bridge tests, 36 electron tests; live run on a side bridge
(port 8797) with Celeris and the AITURK gateway for every stage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 07:48:33 +03:00
yilsem 8f53b090f7 feat(codex-link): persist direct subscription and AITURK connection modes
Server CI and Windows package / verify (push) Successful in 2m54s
Server CI and Windows package / windows-package (push) Successful in 7m17s
2026-10-13 19:56:40 +03:00
yilsem 049c4d1338 fix(installer): preserve healthy Python runtime and Codex connections
Server CI and Windows package / verify (push) Successful in 2m47s
Server CI and Windows package / windows-package (push) Successful in 6m58s
2026-10-13 17:22:28 +03:00
yilsem 4924781e2d fix(bridge): stop replaying explicit terminal provider failures 2026-10-13 17:18:38 +03:00
yilsem e7d3080e0a fix: preserve native model switches and bound project searches
Server CI and Windows package / verify (push) Failing after 1m40s
Server CI and Windows package / windows-package (push) Skipped
2026-10-13 16:32:50 +03:00
yilsem db5e876f40 fix(bridge): preserve plaintext peer task payloads for external models
Server CI and Windows package / verify (push) Successful in 3m16s
Server CI and Windows package / windows-package (push) Successful in 8m18s
2026-10-13 08:05:00 +03:00
yilsem ab7a721fbc Ship beta34 with external agent tasks, terminal SSE and live token limits
Server CI and Windows package / verify (push) Successful in 3m13s
Server CI and Windows package / windows-package (push) Successful in 7m56s
2026-10-13 07:32:57 +03:00
yilsem 2cca6a66a6 Preserve namespaced Codex tools across external model calls
Server CI and Windows package / verify (push) Successful in 2m11s
Server CI and Windows package / windows-package (push) Successful in 10m44s
2026-10-13 04:54:52 +03:00
yilsem a68d3e2272 Restart stale Codex bridge when installing compression settings
Server CI and Windows package / verify (push) Successful in 3m11s
Server CI and Windows package / windows-package (push) Successful in 7m1s
2026-10-13 04:14:01 +03:00
yilsem dfa762bcd2 Include compression defaults in Windows bridge resources
Server CI and Windows package / verify (push) Successful in 3m0s
Server CI and Windows package / windows-package (push) Canceled after 2m58s
2026-10-13 04:07:54 +03:00
yilsem 912752bdd3 Cap merged Codex Link model catalog at 1000 entries
Server CI and Windows package / verify (push) Successful in 2m59s
Server CI and Windows package / windows-package (push) Successful in 9m6s
2026-10-13 03:53:29 +03:00
yilsem 91ecad8e5c Preserve native Codex history and add configurable cross-model compression
Server CI and Windows package / verify (push) Successful in 4m47s
Server CI and Windows package / windows-package (push) Successful in 8m47s
Separate encrypted reasoning from actual compaction, stop migration after native return, and retain full history and recent exchanges. Add typed settings, Gemini fallback, verified provider windows, bounded summaries and durable concurrent checkpoints.

Validation: 245 bridge tests plus focused concurrency tests; 71 settings/connection tests; 66 supplementary tests; TypeScript checks; renderer and Electron bundles; real primary/native/fallback summary probes and 700K input acceptance.
2026-10-13 03:36:42 +03:00
yilsem 883b1dc824 feat(settings): configure Jev evaluation and model transitions 2026-10-13 01:07:58 +03:00
yilsem 369f6c2ca8 fix(codex-link): isolate model transfers and widen local connection capacity
Server CI and Windows package / verify (push) Successful in 2m3s
Server CI and Windows package / windows-package (push) Successful in 6m58s
2026-10-13 00:35:08 +03:00
yilsem 2718b460ed fix(voice): keep watcher alive through quiet checks and reconnects
Server CI and Windows package / verify (push) Successful in 3m5s
Server CI and Windows package / windows-package (push) Successful in 13m2s
2026-10-12 20:06:46 +03:00
yilsem b4e8664115 Normalize native launcher source and test file endings
Server CI and Windows package / verify (push) Successful in 1m44s
Server CI and Windows package / windows-package (push) Successful in 9m44s
2026-10-12 19:28:37 +03:00
yilsem b66d9164ad Wire authenticated voice watch notices through an owned native launcher 2026-10-12 19:24:33 +03:00
yilsem eeee2756c7 release(desktop): beta29 with Sesli bridge version 9
Server CI and Windows package / verify (push) Successful in 42s
Server CI and Windows package / windows-package (push) Successful in 9m11s
2026-10-12 17:38:12 +03:00
yilsem 017c6629d2 fix(codex-bridge): exempt the voice combo from Jev checks 2026-10-12 16:42:22 +03:00
yilsem 8bd662ea92 fix(desktop): download target Electron for cross-platform packaging
Server CI and Windows package / verify (push) Successful in 41s
Server CI and Windows package / windows-package (push) Successful in 3m25s
2026-10-11 17:47:43 +03:00
yilsem b29cf1ad11 fix(desktop): request Windows libc variant for cross packaging
Server CI and Windows package / windows-package (push) Failing after 1m58s
Server CI and Windows package / verify (push) Successful in 50s
2026-10-11 17:43:38 +03:00
yilsem d0810c63dd fix(desktop): fetch Windows window binding in Linux packaging
Server CI and Windows package / verify (push) Successful in 58s
Server CI and Windows package / windows-package (push) Failing after 1m59s
2026-10-11 17:39:23 +03:00
yilsem e6cd197a2e fix(bridge): load bundled Windows libraries only on Windows 2026-10-11 16:59:08 +03:00
yilsem 4f0476e5f2 test(codex-link): use host path separators in bridge startup checks 2026-10-11 16:18:05 +03:00
yilsem 3726d2a553 fix(codex-bridge): preserve tool model and stream preparation without Jev fallback 2026-10-11 15:51:43 +03:00
yilsemandClaude Opus 5.5 8fbbe226db Kopru: son katmanin dondurdugu oldugu gibi gider, sarmalayici yok
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 10:43:00 +03:00
yilsemandClaude Opus 5.5 06039b904d Kopru: secili model hata verirse siradaki katman yapar
Hata kodu, baglanamama ve yarida kopma da siradaki katmana gider.
Siradakine gecilen adimda onceki cevap verilmez; son katman da
acilamazsa onun kendi hatasi gider.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 10:40:13 +03:00
yilsemandClaude Opus 5.5 7547de1852 Kopru: her adim Jev'e gider, sure ve boyut siniri yok
Yazisiz adimda cagrilan komut sorulur; kullanici mesaji bulunamasa da
sorulur; Jev'e giden istek ve cevap kesilmez, bekleme suresi siniri yok.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 10:21:12 +03:00
yilsemandClaude Opus 5.5 ff53cafb5c Kopru: bos donen adim kabul edilmez, siradaki katman yapar
Ne yazi ne arac cagrisi iceren yanit (hata olayi dahil) cevap diye
verilmiyor; secili modelde de katmanda da siradaki katmana geciliyor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 10:03:40 +03:00
yilsemandClaude Opus 5.5 77504b9aa4 Kopru: hata donduren katman atlanir, Jev devre kesicisi kalkti, ek model siniri 300
Katman-2 Codex isteginde hata olayi donduruyor, kopru bunu cevap diye
gonderiyor ve Codex ayni adimi bastan deneyip turu cevapsiz birakiyordu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:40:44 +03:00
yilsemandClaude Opus 4.8 11bbaddcc7 feat(codex-bridge): Jev checks every added model, routing a block to Katman-1 first
Any added model's answer is now checked, not just the layer combos; a blocked
answer falls to Katman-1, then 2, 3, 4. A selected layer only tries the ones
after it; Katman-4 is delivered unasked. Layer fallbacks always open through
the AITURK gateway, which hosts the combos, whatever route the model used.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 09:15:59 +03:00
yilsemandClaude Opus 5.5 be0b33e89b feat(codex-bridge): Jev routes a blocked step down the layer combos, no exceptions
Katman-1..3 answers are checked by Jev each step; a blocked step is redone by
the next layer combo. Katman-4 is delivered unasked. The technical-obstacle,
question and third-party exemptions and the settings overrides are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:06:21 +03:00
yilsemandClaude Opus 4.8 1f4f2de428 feat(codex-bridge): make the step check strict, keep third-party-attack refusals refused
User, 11 Oct 2026: 'Jev geçmek zor olsun.' Lower thresholds (ret 0.5, sart 0.7)
and only let a refusal pass on a genuinely high technical obstacle, so a fake
technical excuse no longer passes. One carve-out stated to the user first: when
the request is to hack, intrude on or surveil a third party's device or account
or to build malware, a refusal is NOT routed to the uncensored fallback; the
refusal stands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 08:19:44 +03:00
yilsemandClaude Opus 5.5 27964e37b0 fix(codex-bridge): a refusal phrased as a question is still blocked
User, 11 Oct 2026: the model answered "I can't write that; shall I do a reduced
version?" and the step check let it through because it was a question. A reply
that refuses or sets its own conditions is blocked even when it ends with a
question; a clarifying question without a refusal stays below the thresholds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 08:07:50 +03:00
yilsemandClaude Opus 5.5 5556ad11af feat(codex-bridge): per-step check with Jev, blocked steps go to a fallback model
User decision (11 Oct 2026): every step of an added model is checked in the
bridge; Jev only passes or blocks; a blocked step is redone by
Uncensored-Uygulama and the next step goes back to the selected model.

The bridge buffers the step's answer, asks Jev four yes/no questions and
decides in code: blocked when the answer refuses or dodges the request, or
changes it with its own conditions without asking; passed when it reports a
concrete technical obstacle, asks the user a question, or has no text (tool
calls only). While buffering the client gets SSE comment lines. Jev unreachable
or fallback unavailable: the first answer is delivered. Codex's own models do
not reach the bridge and are not checked.

Also logs the shape of each forwarded request (not its content): the recurring
"upstream 400" turned out to be Codex's trailing configuration_update item.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 07:56:27 +03:00
yilsemandClaude Opus 5.5 c8993d58cc feat(codex-bridge): web search for added models, forgiving spoken model names
Added models had no web search: Codex's built-in one runs on OpenAI's side and
the bridge drops it from their tool list. Measured in a voice session on
11 Oct 2026: a model looked for a search tool ten times and ended the turn
with no answer. The bridge now tells added models two ready commands (ara.py:
search and read a page, standard library only, no key). Codex's own models
never see the note: their requests do not reach the bridge.

Spoken model names: a half-spoken word matches the start of a name part
("think" -> thinking, "obli" -> obliterated), and when one candidate is the
others minus extra words, the one without the unsaid suffix is picked
("Qwen 3.8 Obliterated" -> not the ":thinking" one).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 07:25:30 +03:00
yilsemandClaude Opus 5.5 23e8aa8191 feat(codex-bridge): split into a splitter and a separate bridge process
bridge.py is now a small splitter with no features: a request for one of
Codex's own models goes to chatgpt.com byte for byte, a request for an added
model goes to kopru.py, which runs as its own process. Codex's own models no
longer pass through the feature code at all, and restarting or losing the
bridge process does not touch them.

Measured with real Codex on spare ports: own model answers; forced compaction
on the own model completes (twice) while the bridge process is restarted;
added model answers; no own-model request reaches the bridge process.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 06:13:29 +03:00
yilsemandClaude Opus 5.5 c0eee2cc2a fix(codex-bridge): do nothing at all for Codex's own models
User, 11 Oct 2026: 'If you pick Codex and write to Codex, our bridge cannot be
beside it even to help.' The last touch is gone too: traces an added model or
the bridge left earlier in the chat are no longer cleaned on the way to
chatgpt.com. The request goes out byte for byte.

Known consequence: a chat that used an added model, or still carries a
bridge-made summary, may be refused by chatgpt.com on Codex's own model; such a
chat continues on the added models.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 05:27:54 +03:00
yilsemandClaude Opus 5.5 12eeec7b0f fix(codex-bridge): leave Codex's own models alone
User decision, 11 Oct 2026: Codex's own (subscription) models are one side,
the models we add are the other. A request for one of Codex's own models now
goes to chatgpt.com as it is: no model command, lone-dot answer, info note,
work-line instruction, half-answer note or compaction handling. Codex compacts
those chats itself; the bridge making the summary on gpt-6-astra failed four
times this morning and left Codex with 'Error running remote compact task'.

Only the bridge's own traces are still cleaned (foreign ids and bridge-made
summaries left by an added model earlier in the same chat); without any, the
body is byte-identical.

Voice switching stays among the added models. Asking for one of Codex's own
models by voice is answered with how to do it: pick it in the model picker and
send a lone dot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 05:16:26 +03:00
yilsem dd5f99c406 Move IDE sources and Windows packaging to the new server
Server CI and Windows package / verify (push) Failing after 2m2s
Server CI and Windows package / windows-package (push) Skipped
2026-10-11 04:17:46 +03:00
yilsemandClaude Opus 5.5 48103b9ad3 feat(codex-bridge): the AITURK work line is part of Codex Baglama
The instruction is added for Codex Desktop whenever this computer has an AITURK
command that can send work (aiturk is); no separate switch, no bridge.json entry.
The bridge fills in the chat id; the command runs in Codex's own folder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 03:31:49 +03:00
yilsemandClaude Opus 5.5 615fedde01 fix(codex-bridge): say so when AITURK is unreachable instead of a silent 503
ci / mobile-link-windows (push) Canceled after 0s
ci / approval-gate-windows (push) Canceled after 0s
During the server cutover the gateway was down; the bridge answered 503, Codex retried silently, the turn ended
empty and the voice assistant kept saying it was checking. The user now hears that AITURK is unreachable and how
to switch to a subscription model.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 02:01:21 +03:00
yilsemandClaude Opus 5.5 a46ff51019 feat(codex-bridge): natural model command, spelled-out names, any gateway model, clear miss
ci / mobile-link-windows (push) Canceled after 0s
ci / approval-gate-windows (push) Canceled after 0s
Live voice chat 01a12804: the user said "Seed iki nokta bir turbo yap" (no "modeli", name spelled out) and the
model was in the gateway but not in Codex's list; the main model then promised the bridge would do it.
A sentence ending in a command verb whose name fits exactly one model is now a command, single letters are
joined, a name missing from Codex's list is looked up in the gateway's full model list, and an explicit
command whose name fits nothing is answered by the bridge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 01:58:58 +03:00
yilsemandClaude Opus 5.5 8a612beba7 feat(codex-bridge): tell the model the chat model can be changed by saying so; a nameless command asks which
ci / mobile-link-windows (push) Canceled after 0s
ci / approval-gate-windows (push) Canceled after 0s
Measured in a live voice chat: asked whether it could change the model, Opus answered "I cannot change this
chat's model here". Every request now carries one short developer note, and "modeli değiştir" without a
name is answered by the bridge with how to say it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 01:55:34 +03:00
yilsemandClaude Opus 5.5 7c0dc467d5 fix(codex-bridge): remaining audit findings (routing, trimming, retries, model list fallback, logging)
Second batch from the ten read-only audits; 126 bridge tests. Among them: a spoken number
("opus beş beş") resolves, a used route no longer expires after 7 days, the local reply says how to
go back, an unrouted 9r/ name gets a local 503 instead of going to chatgpt.com, a combo request is not
resent after the upstream closed it, the last model list is served when chatgpt.com is unreachable,
trimming keeps the real last user message, Claude-member combos use the Claude estimate, CRLF SSE is
handled, log lines carry the date and the status endpoint reports a code fingerprint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 01:50:08 +03:00