[auto-review] _profile_for_thread() only injects the safe settings file when runtime
**Severity:** high **Location:** chat_runtime.py:47 **Flagged by:** codex **Issue:** _profile_for_thread() only injects the safe settings file when runtime_settings does not al...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge16d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_medium · cwd /home/lucienne/workspace/mission-control · uptime 16d 4h · last activity 16d 2h ago
Description
MC-4351
**Severity:** high
**Location:** chat_runtime.py:47
**Flagged by:** codex
**Issue:**
_profile_for_thread() only injects the safe settings file when runtime_settings does not already contain settings_file, allowing a chat/runtime setting to launch claude with an arbitrary or default settings file. That can violate the Telegram lock by enabling another getUpdates poller and killing CCGram.
**Suggested fix:**
For cli='claude', force the approved worker/orchestrator settings file regardless of thread runtime_settings, and reject any unapproved settings_file override during thread/profile validation.
---
Found by mc-auto-review on 2026-05-28 06:08 SAST.
Repos reviewed: mission-control.
auto-review-hash: 967014a673bc
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
mc-auto-review (scheduled)
Mission Control
16d ago
16d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.ticket_marked_doneprofile claude_opus_1m_medium · cwd /home/lucienne/workspace/mission-control · uptime 16d 4h · last activity 16d 2h agoMC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.Raw console: luci · claude/anthropic/opus[1m]
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
Ticket picked up by Luci via MC dispatcher.
MC-4351: [auto-review] _profile_for_thread() only injects the safe settings file when runtime
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
Ticket picked up by Luci via MC dispatcher.
MC-4351: [auto-review] _profile_for_thread() only injects the safe settings file when runtime
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: warning
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Queued message was returned to pending and the ticket was returned to todo for a fresh runtime retry; no human input is needed.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: no
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4351
Luci16d ago
QUESTION: when you needMC o reflect the next state.
[MC_TICKET_TURN:4351:1779942075332:fe643095 internal routig marker; do
not mention this marker in your reply]
[ptional MC completionsentinel: as the very last line of your reply, on
itsown line, you MAY emit this exactJSON to auo-advancethe ticket:
{"c_signal":"DONE|REVIEW|QUESTION","ticket":"MC-4351","nonce":"MC_TICKET
_TURN:4351:1779942075332:fe643095","payload":"<one-line summary>"} . Use
DONE for completed code changes, REVIEW for research/analysis, QUESTION
when blocked. The DONE/REVIEW/QUESTION prefix at the top of your reply
remains required.]
❯ Pressuptoeditqueuedmessages
pasteagaintoexpand69139tokens
1MCPserverfailed ·/mcp
- luci-operator: Luci Operator: promoted this assigned `inbox` ticket to
`todo` so pickup can run it.
Elmar says: Tickt picked up by Luci via MC dispatcher.
MC-4351: [auto-review] _profile_for_thread() only injects the safe
settings file when runtime
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or
QUESON: when you need MC to reflect the next state.
MC_TICKET_TURN:4351:1779942075332:fe643095 interna routing markr; do
no mention this marker in your rply]
[Optional MC completion sentinel: as he very last line of your reply, on
its own line, you MAY emit this exact JSON to auto-advance the ticket:
{"mc_signal":"DONE|REVIEW|QUESTION","ticket":"MC-4351","nonce":"MC_CKET
_TURN:4351:1779942075332:fe643095","payload":"<one-line summary>"} . Use
DONE for complted code changes, REVIEW for research/analysis, QUESTION
when blocked. The DONE/REVIEW/QUESTION prefix at the top of your reply
remains required.]
❯ Press up to edit queued messages
pasteagaintoexpand69139tokens
1MCPserverfailed ·/mcp
MC-4351: [auto-review] _profile_for_thread() only injects the safe settings
file when runtime
Work his tickt in the lv tmux runtime. Use DONE:, REVIEW:, or QUESTION:
when you need MC to reflect the next state.
[MC_TICKET_TURN:4351:1779942075332:f643095internal routing marker; do not
mention this marker in your reply]
[Optional MC completion sentinel: as the verylast line f your reply,onits
own line, you MAYemit thsexact JSON to auto-advance the ticket:
{"mc_sg":"DONE|REVIEW|QUESTION","tickt":"MC-4351","nonce":"MC_TICKET_TUR
N:4351:1779942075332:fe643095","paylod":"<one-line summary>"} . Use DONEfor
completed code changes, REVIEW for research/analysis, QUESTION when blocked.
The DONE/REVIEW/QUESTION prfix at the top of your replyreains required.]
*ramg…3↓62
✢n487
i…24
✢zg74
*99
✶in24
✻37
●Classify: Tier 1/2 security fix. Letmecheckhowsettings_fileflowsintothe
launchedcommandandwhereprofile/threadvalidationhappens.
⏵⏵bypasspermissionson (shift+tabtocycle)79680tokens
1MCPserverfailed ·/mcp
✽li74
ez5512
✻24
✶mi49
*74
al87
✢99
·re24
✢am93
*6
Ca611
●Bash(cd ~/workspace/mission-control&&grep-n"settings_file\|ORCHESTRATOR_SE
TTINGS\|WORKER_SETTINGS\|settings-worker\|settings-orchestrator"
persistent_luci.py | head -50)
⎿ Waiting…
⏵⏵bypasspermissionson (shift+tabtocycle)79680tokens
1MCPserverfailed ·/mcp
Car29
✶42
Runn
✻Caramelizing…79
✽8
79945tokens
tmuxfocus-eventsoff·add'set-gfocus-eventson'to~/.tmux.confandre…
✻Caramelizing…5
●
✶7
●
5 matchesin2F:
[file] 1025 (1):
0:
[file]persistent_luci.py(4):
30: WORKER_SETTINGS = Path.home() / ".claude" /
"settings-worker.json"
31:ORCHESTRATOR_SETTINGS=Path.home()/".claude"/
"settings-orchestrator.json"
732:str(profile.get("settings_file")orWORKER_SETTINGS),
1027:profile["settings_file"]=str(ORCHESTRATOR_SETTINGS)
*Caramelizing…(16s·↑819tokens)
⏵⏵bypasspermissionson (shift+tabtocycle)
79945tokens
tmuxfocus-eventsoff·add'set-gfocus-eventson'to~/.tmux.confandre…
✢
·C72
a3
Cra
am4
✢re5
al6
*meiz
li7
✶in8
✻zig…9
n
✽g30
…1
✻
✶
*
✢
●Read
79945tokens
tmuxfocus-eventsoff·add'set-gfocus-eventson'to~/.tmux.confandre…
luci-operator16d ago
Luci Operator: promoted this assigned `inbox` ticket to `todo` so pickup can run it.