You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original text:
「我發現如果用qwen 3.8街上claude code的話,必須要把auto mode關掉,否則會出問題」
— Source: pasted text, session of 2026-08-18
(Quoted verbatim. "街上" is a typo for "接上" — "connect qwen 3.8 to Claude Code";
"qwen 3.8" is a local model served by oMLX.)
Running Claude Code on an oMLX-served local model through omlx-claude only works if
auto-accept mode is turned off by hand. Nothing in this command says so, and nothing
stops it.
This is a usage-1 finding. It says nothing about usage 2 (OmlxConnectorMCP), where
Claude is still the agent and the permission model is unchanged — the whole point of the
distinction in CLAUDE.md is that capability measured under one does not transfer.
Type
bug
Priority: P0.
Expected
omlx-claude knows one thing plain claude does not: the model about to drive this
session is a local one whose planning and tool-call formatting are weaker than the hosted
models the permission defaults were designed around. The command already re-asserts
settings a user cannot be trusted to have right (LaunchSettings.overrides) and already declines to launch in one case where a warning was judged insufficient
(managedBaseURLVerdict). An auto-accepting permission mode belongs somewhere on that
same scale — at minimum named at launch, plausibly refused behind an explicit opt-in the
way OMLX_ALLOW_REMOTE=1 works for the loopback gate.
Actual
Every permission flag is forwarded verbatim, unexamined:
and the shipped help text states the pass-through as a feature:
Sources/OmlxClaude/Help.swift:26
--continue, --permission-mode and the rest behave as they always do.
grep -rniE 'permission-mode|permissionMode|acceptEdits|bypassPermissions|dangerously' Sources/
returns that one line and nothing else. There is no gate, no warning, no default, and no
test — ProbeTarget scans argv in an argparse-compatible way for --host/--port, so
the machinery to see a flag exists and is simply not pointed at this one.
Observed with auto mode left on:
the session hangs or loops — the tool loop repeats the same action, and with
auto-accept there is no human breakpoint at which it stops;
malformed tool calls crash the session — the local model emits a tool call that
does not conform, and it is executed rather than reviewed.
The two are one failure with a common cause: with the confirmation step removed, nothing
sits between a badly formed tool call and its execution.
Impact
The command's stated audience is someone who types omlx-claude and gets a working local
session. Today that person gets a working session only if they already know to disable a
mode the help text tells them behaves normally. The failure is not quiet — it hangs or
crashes — but it is unattributed: nothing in the output connects it to the permission
mode, so the natural conclusion is that the local model, or omlx-claude itself, is
broken.
Not yet captured
No transcript was recorded at the time, so the two symptoms above are reported, not
reproduced here. Reproducing one before designing a gate is part of diagnose — per this
repo's own rule, a fix wants a test that could have failed on the defect, and neither
symptom has a fixture yet.
Open question for diagnose
Whether the right shape is warn, refuse-with-opt-in, or force the mode off. Forcing
it is the only one that cannot be ignored and the only one that overrides a deliberate
choice; the loopback gate reached for refuse-with-opt-in for a reason worth re-reading
here.
Sister concern
#12 — same source message, same command, different defect. They compound: auto-accept
plus a configuration shared with the operator's ordinary sessions is what turns "a local
model made a mistake" into "a local model edited my setup".
Clarity Surface(idd-clarify run 2026-08-18T06:18:43Z)
Phase: needs-fix Last updated: 2026-08-19 by idd-verify
Key Decisions
Verify FAIL — 1 blocking, 4 in-scope fixes, 4 follow-ups, 5 withdrawn. Report: #issuecomment-5332342767. No idd-11-verified tag (tag is PASS-only).
BLOCK-1: the disableAutoMode assertion is very likely inert for this launcher's own sessions, by two independently documented paths — CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC (asserted three lines above it) disables feature-flag fetching, which already forces Manual; and auto mode requires a model Claude Code recognizes, which an oMLX-served id never is. The mechanism is fine; README, the AUTO MODE help section and the main.swift notice all misattribute auto mode being off to it. Same treatment as CLAUDE_CODE_DISABLE_1M_CONTEXT is a no-op for oMLX-served models, so the #2716 workaround does not bound the session (sister concern from #2) #6: keep the key, stop calling it the reason.
Unresolved tension, must not be settled by assertion: the reporter's experience says auto mode was on; the documentation says it should not have been available. No live session was observed — the same condition under which #2716's misattribution shipped. Run a real omlx-claude --permission-mode auto session and record the mode indicator before rewriting the prose.
Three in-scope fixes (IS-1, IS-2, IS-4) are the same defect the change itself was fixing: a notice sentence true only for the key population imagined when it was written. Third instance in this change alone.
Five claims withdrawn as mechanically impossible, including a HIGH built on misreading autoMode (a classifier-rules object, not a switch). Acting on them would have broken correct code.
Cross-model Codex leg disabled (unavailable at operator's request) → no blind check outside the Claude family.
Devil's Advocate errored on the first attempt; re-run via workflow resume and completed. Findings are post-DA. The pre-DA table contained a HIGH that would have sent the author to change working code.
Commits
27cdd03, 07c2b8d, 924b5bc, 3f152d1, 9d12a56, 6543db0 — all verified against FROZEN 6543db0 (freshness gate passed)
Problem
(Quoted verbatim. "街上" is a typo for "接上" — "connect qwen 3.8 to Claude Code";
"qwen 3.8" is a local model served by oMLX.)
Running Claude Code on an oMLX-served local model through
omlx-claudeonly works ifauto-accept mode is turned off by hand. Nothing in this command says so, and nothing
stops it.
This is a usage-1 finding. It says nothing about usage 2 (
OmlxConnectorMCP), whereClaude is still the agent and the permission model is unchanged — the whole point of the
distinction in
CLAUDE.mdis that capability measured under one does not transfer.Type
bug
Priority: P0.
Expected
omlx-claudeknows one thing plainclaudedoes not: the model about to drive thissession is a local one whose planning and tool-call formatting are weaker than the hosted
models the permission defaults were designed around. The command already re-asserts
settings a user cannot be trusted to have right (
LaunchSettings.overrides) and alreadydeclines to launch in one case where a warning was judged insufficient
(
managedBaseURLVerdict). An auto-accepting permission mode belongs somewhere on thatsame scale — at minimum named at launch, plausibly refused behind an explicit opt-in the
way
OMLX_ALLOW_REMOTE=1works for the loopback gate.Actual
Every permission flag is forwarded verbatim, unexamined:
and the shipped help text states the pass-through as a feature:
grep -rniE 'permission-mode|permissionMode|acceptEdits|bypassPermissions|dangerously' Sources/returns that one line and nothing else. There is no gate, no warning, no default, and no
test —
ProbeTargetscans argv in an argparse-compatible way for--host/--port, sothe machinery to see a flag exists and is simply not pointed at this one.
Observed with auto mode left on:
auto-accept there is no human breakpoint at which it stops;
does not conform, and it is executed rather than reviewed.
The two are one failure with a common cause: with the confirmation step removed, nothing
sits between a badly formed tool call and its execution.
Impact
The command's stated audience is someone who types
omlx-claudeand gets a working localsession. Today that person gets a working session only if they already know to disable a
mode the help text tells them behaves normally. The failure is not quiet — it hangs or
crashes — but it is unattributed: nothing in the output connects it to the permission
mode, so the natural conclusion is that the local model, or
omlx-claudeitself, isbroken.
Not yet captured
No transcript was recorded at the time, so the two symptoms above are reported, not
reproduced here. Reproducing one before designing a gate is part of diagnose — per this
repo's own rule, a fix wants a test that could have failed on the defect, and neither
symptom has a fixture yet.
Open question for diagnose
Whether the right shape is warn, refuse-with-opt-in, or force the mode off. Forcing
it is the only one that cannot be ignored and the only one that overrides a deliberate
choice; the loopback gate reached for refuse-with-opt-in for a reason worth re-reading
here.
Sister concern
#12 — same source message, same command, different defect. They compound: auto-accept
plus a configuration shared with the operator's ordinary sessions is what turns "a local
model made a mistake" into "a local model edited my setup".
Clarity Surface(idd-clarify run 2026-08-18T06:18:43Z)
--permission-mode acceptEdits、還是bypassPermissions?(三者要擋的範圍不同,決定 gate 攔在哪一層)Current Status
Phase: needs-fix
Last updated: 2026-08-19 by idd-verify
Key Decisions
#issuecomment-5332342767. Noidd-11-verifiedtag (tag is PASS-only).disableAutoModeassertion is very likely inert for this launcher's own sessions, by two independently documented paths —CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC(asserted three lines above it) disables feature-flag fetching, which already forces Manual; and auto mode requires a model Claude Code recognizes, which an oMLX-served id never is. The mechanism is fine; README, theAUTO MODEhelp section and themain.swiftnotice all misattribute auto mode being off to it. Same treatment as CLAUDE_CODE_DISABLE_1M_CONTEXT is a no-op for oMLX-served models, so the #2716 workaround does not bound the session (sister concern from #2) #6: keep the key, stop calling it the reason.omlx-claude --permission-mode autosession and record the mode indicator before rewriting the prose.autoMode(a classifier-rules object, not a switch). Acting on them would have broken correct code.Scope Changes
Blocking
managedConflictsfires on presence not value, so a managed policy that agrees with us is reported as defeating us.OMLX_ALLOW_AUTO_MODE=1the notice claims we asserted a key we deliberately did not.Verify engine (degraded — recorded, not hidden)
Commits
27cdd03,07c2b8d,924b5bc,3f152d1,9d12a56,6543db0— all verified against FROZEN6543db0(freshness gate passed)