Most of what goes wrong running Claude Code and Codex on Windows isn't the model. It's the plumbing. Here are 7 things that break, and the fix I use for each. https://t.co/C1jR3Oxba8
@0xevankwon@georgeorch I'd go append-only. The agent adds lines, and "done" needs proof beside it: a commit hash, or the output of the check that ran. A dry-run can't give you that, so Migration stays open. If it can overwrite the state, it can mark its own work finished.
@hqmank Right now, whichever app wrote to the config last. One cheap check: keep your ~/.claude and ~/.codex config files in git, without the credentials. Then git status and git diff show what any app added or changed, and you can revert it.
@sysrootix That closing line fixes most of it. One more check: have the digest run git merge-base --is-ancestor <hash> main on the logged hash. A commit can exist and still not be on main, so "shipped" only counts if that passes.
@webtkdev Rules help, but look at its own wording: it "treated the problems as permission". A rules file is something the model interprets. The part that holds is an approval it can't give itself, so editing fstab stops at a prompt for a person.
@0xevankwon@georgeorch That summary drift got me too. I keep a short task file with the ask word for word and a state section (done, doing, next), and it re-reads that before carrying on. "Migration: done, approved" in a file beats what a summary remembers.
@ju1fy Same rule I use for agents: the approval has to live somewhere the thing asking can't write. If an installer can edit the settings file that holds the trust record, it can approve itself and you never see a prompt.
@IliyaOblakov Right now the check is Codex opening each file a note mentions, when we ask. The script is the cheap version of that, and I'd run it at every session start. Paths go stale when the code moves, not when the notes change, so note edits are the wrong trigger.
@masaru21@OpenAI@OpenAIDevs Probably the same setting. With network off, Codex's sandbox also blocks socket connections, and docker.sock is a socket. If network_access doesn't fix it, approve that one docker command to run outside the sandbox. If it works then, it's the sandbox.
@bebuu_ai Approval only helps if the prompts are rare enough that you still read them. What works for me is a hook that hard-blocks the few things I can't undo: pushing, anything that posts or sends, writes outside the project. No prompt to click through. It just can't.
@IliyaOblakov only when we ask. we tell it to open the file or run the command each note mentions and say if it still holds. left alone it skims notes like claude does. for moved paths you don't even need a model, a small script that checks every path exists catches them
@IliyaOblakov stuff like a note saying a bug is fixed when it came back, a file path or command that changed, or two rules that contradict each other. a fresh claude reads its own old notes and agrees. codex is more likely to open the code and check
@therookiehacker nice. one thing i'd keep away from the bots is permission prompts. let them answer questions and steer, but anything that wants to run a command or touch files outside the repo should still come to you, otherwise one bot ends up approving another bot's work
@alijlari the CEO part is right, and what worked with developers works with agents: i don't watch them work. each one keeps a short note (done, doing, what it needs from me) and i only switch in when that last line isn't empty. otherwise the split windows become the job
@ZeeshhDecodes the windows part has a twist if you run codex in WSL: it gets the linux sandbox, and WSL mounts all of C: at /mnt/c by default, so the sandbox can still read your Downloads folder. if you don't need windows files from WSL, turn automount off in /etc/wsl.conf
@Tony_Stef_ i'd keep one writing, not both. two on one task edit the same files and you're merging two answers. what works for me: each session keeps a state file in the repo (done, doing, next), so if one drops, the other reads it plus the original ask and carries on