Releases: dl4rce/flaiwheel
v3.9.33 — Glama stdio entrypoint fix
What's changed
Fixed
-
Glama "Try in Browser" crash loop —
entrypoint.shwas printing banner text and downloading embedding models to stdout before launching Python. In stdio mode, stdout is reserved for JSON-RPC; those prints corrupted the MCP stream, causing Glama to crash and retrigger rebuilds.entrypoint.shnow detectsMCP_TRANSPORT=stdioand immediatelyexecspython -m flaiwheel, skipping all stdout output and model downloads entirely. -
No change to SSE / Docker / Web-UI behaviour — the fix is a 5-line early-exit that only activates when
MCP_TRANSPORT=stdio.
Upgrading
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.29 — Glama stdio crash fix (28 tools)
v3.9.29 (2026-03-23)
Fixed
-
Glama "no tools detected" — root cause found and fixed.
AuthManager.__init__()calledconfig.save()which tried to write/data/config.json. On Glama's read-only or empty Docker volumes, this crashed withOSError: Read-only file systembefore the MCP server could start — hence zero tools.AuthManageris now skipped entirely instdio_cold_startmode. -
config.save()resilient to read-only/data— wraps the write in try/except, logging a warning to stderr instead of crashing. -
All remaining 36
print()→diag()—watcher.py,indexer.py,readers.py, andbootstrap.pystill hadprint()on stdout. Zeroprint()calls remain outsidelogutil.py.
Verified
Local MCP handshake over stdio: initialize + tools/list → 28 tools returned, stdout clean (no non-JSON-RPC output).
See CHANGELOG.md for full history.
v3.9.28 — MCP stdio fix (Glama tools)
v3.9.28 (2026-03-22)
Fixed
-
MCP stdio / Glama "no tools detected" — MCP over stdio uses stdout exclusively for JSON-RPC. All startup and bootstrap diagnostics now write to stderr via the new
logutil.diag()helper. Previously everyprint()on stdout corrupted the JSON-RPC frame boundary so MCP clients (Glama Inspector, Claude) could not parsetools/listand reported zero tools. -
stdio cold-start with empty Docker volume — cold-start now also triggers when
/dataexists as an empty Docker VOLUME but contains noprojects.jsonand no docs (previously only skipped when/datawas absent, so the full embedding bootstrap always ran under Glama's inspector).
See CHANGELOG.md for full history.
v3.9.27
v3.9.27 (2026-03-21)
Changed
- License file layout — single canonical
LICENSE(BSL 1.1); removedLICENSE.mdfor correct GitHub Licensee detection. - References — all
LICENSE.md→LICENSEacross README, pyproject, Dockerfile, scripts, headers.
Added
[inspect]optional dependency group for Glama MCP directory builds;glama.json,SECURITY.md.
Fixed
- stdio / Glama cold-start path; lazy chromadb import in
__main__.py.
See CHANGELOG.md for full history.
v3.9.26 — Claude Cowork skill — install .skills/skills/flaiwheel/SKILL.md
What's New in v3.9.26
- Claude Cowork skill — the Flaiwheel workflow is now distributed as a native Claude skill. The installer writes
.skills/skills/flaiwheel/SKILL.mdto your project. When you open the project in Claude (Cowork), the skill is auto-available — no extra setup needed. The skill drives session-start context restore, pre-coding knowledge search, mandatory post-bugfix documentation, and session-end summarisation. - Skill source also committed to
skills/flaiwheel/SKILL.mdin this repo for reference and manual install.
Install
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.25 — WSL2 zero-touch setup (iptables, docker group, auto-start)
What's New in v3.9.25
WSL2: fully automatic, zero manual steps
WSL2 is now detected automatically. A dedicated pre-flight block runs before anything else and handles the complete Docker setup:
╔══════════════════════════════════════════════╗
║ WSL2 detected — running pre-flight setup ║
╚══════════════════════════════════════════════╝
[✓] iptables-legacy activated
[✓] User 'flaiwheel' added to docker group
[✓] Docker daemon started
[✓] Docker auto-start added to ~/.bashrc
[✓] WSL2 pre-flight complete
What it does automatically:
| Step | What | Why |
|---|---|---|
| 1 | Switch iptables to legacy backend |
WSL2 kernel doesn't support nftables — Docker container networking fails silently without this |
| 2 | Add user to docker group |
Without this, every docker command requires sudo |
| 3 | Start Docker via service docker start |
WSL2 has no systemd, systemctl doesn't work |
| 4 | Add auto-start to ~/.bashrc |
Docker doesn't survive WSL2 reboots without this |
Install (WSL2 — same command as always)
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.24 — Fix: auto-install python3 on minimal Linux/WSL2
What's New in v3.9.24
Fixed
Auto-install python3 if missing
The installer uses python3 for all JSON manipulation (mcp.json, config files, AGENTS.md updates, project registration checks). On minimal WSL2 / Debian / Ubuntu systems without python3, these steps silently failed with:
/dev/fd/63: line 1588: python3: command not found
[✗] Job 'agents-md' failed
python3 is now prerequisite #0 — checked and auto-installed via apt-get / dnf / yum / pacman / brew before anything else runs.
Upgrade
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.23 — Fix: WSL2 iptables-legacy + docker group; all commands bash<(curl)
What's New in v3.9.23
Fixed
Docker daemon start on WSL2 — iptables-legacy
Docker Engine on WSL2 often fails to start silently because the default iptables-nft backend is not supported by the WSL2 kernel. The installer now:
- Runs
update-alternatives --set iptables /usr/sbin/iptables-legacybefore starting Docker - Adds the current user to the
dockergroup sodockercommands work withoutsudo - Applied in both the post-install and daemon-start blocks
All install commands updated
Every displayed install/re-run command throughout the script — error messages, generated AGENTS.md, Cursor rules, Claude instructions — now uses bash <(curl ...) to avoid WSL2 pipe issues.
For the WSL2 user right now
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo service docker start
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.22 — Fix: bash <(curl) for WSL2; avoid pipe write errors
What's New in v3.9.22
Fixed
curl | bash pipe write failures on WSL2
curl | bash can fail with curl: (23) Failure writing output to destination on WSL2. The root cause is a pipe permission/buffer mismatch when the re-exec mechanism tries to write the script to /tmp.
Three changes:
-
README updated — primary install command is now
bash <(curl ...)(process substitution), which downloads to a file descriptor without a pipe and avoids the issue entirely:bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh) -
Re-exec fallback temp dir — if writing to
/tmpfails, the installer tries$HOMEand$TMPDIRbefore giving up. -
Better error message — if
curl: (23)still occurs, the error now explicitly says to usebash <(curl ...).
Upgrade / WSL2 users
bash <(curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh)v3.9.21 — Fix: sudo guard fires before curl pipe truncation
What's New in v3.9.21
Fixed
sudo guard moved before re-exec block
sudo curl | bash causes curl: (23) Failure writing output — the pipe dies mid-stream and bash only receives a truncated script. The previous sudo guard was placed after the color/function definitions, so it was never reached on a truncated download.
The guard is now the very first executable code after set -euo pipefail — before version, before re-exec, before everything. It now fires on the first few bytes of the script, regardless of truncation.
When triggered, the output is now shorter and more direct:
╔══════════════════════════════════════════════════════════╗
║ ⚠️ Do NOT run this installer with sudo ║
╚══════════════════════════════════════════════════════════╝
Remove 'sudo' from the front of the command.
The installer uses sudo internally only where needed.
Run this instead:
curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh | bash
Upgrade
curl -sSL https://raw.githubusercontent.com/dl4rce/flaiwheel/main/scripts/install.sh | bash