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>
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>
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.
- 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.
- 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>
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>
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>