docs(research): add ponytail audit report highlighting over-engineering and complexity issues
This commit is contained in:
@@ -0,0 +1,64 @@
|
|||||||
|
# Ponytail audit — repo-wide over-engineering scan, 2026-09-09
|
||||||
|
|
||||||
|
Whole-tree audit (ponytail-audit skill), not a diff review. The only real
|
||||||
|
code in this repo is `scripts/update.sh` (253L) and `scripts/switch-model.sh`
|
||||||
|
(50L), plus `docker-compose.yml` and `.env.example`; the rest is docs.
|
||||||
|
`switch-model.sh` and the compose comments (ROCm GID workarounds,
|
||||||
|
`GPU_MAX_HW_QUEUES` rationale, lazytainer label placement) are load-bearing
|
||||||
|
and lean — left alone. Scope: over-engineering and complexity only;
|
||||||
|
correctness/security/performance out of scope. Findings ranked biggest cut
|
||||||
|
first. One-shot report — nothing was applied.
|
||||||
|
|
||||||
|
## Findings
|
||||||
|
|
||||||
|
1. **`delete:` the `downloader-fast` line — it references a service removed
|
||||||
|
in `5d6a17f` ("feat: remove llama-server-fast") and no longer exists in
|
||||||
|
`docker-compose.yml`.** Under `set -euo pipefail`,
|
||||||
|
`docker compose run downloader-fast` errors on the unknown service and
|
||||||
|
**aborts every `update.sh` run** right after config sync, before omniroute
|
||||||
|
comes up. Dead code that also breaks the mandatory deploy flow.
|
||||||
|
*Remove the line.* [scripts/update.sh:235]
|
||||||
|
|
||||||
|
2. **`delete:` the entire gum path — `ensure_gum()` (~27L, L59–85), the
|
||||||
|
`GUM_VERSION`/`GUM_DIR`/`GUM_BIN` vars (L56–58), the vendored
|
||||||
|
`scripts/vendor/gum_0.14.5_Linux_x86_64.tar.gz` (4.4MB checked into git),
|
||||||
|
the download fallback, and the `if [ -n "$gum_bin" ]` branch (L123,
|
||||||
|
L127–130).** The plain-bash fallback (L131–148) already makes the
|
||||||
|
*identical* decision (which keys take the new value) whenever gum is
|
||||||
|
absent; the gum TUI is a speculative nicer prompt on top of a working
|
||||||
|
path. ~4.4MB in git + arch detection + a `.cache/gum` layer, all to
|
||||||
|
prettify a rare interactive conflict. *Replacement: nothing — always use
|
||||||
|
the plain-bash one-screen prompt.* [scripts/update.sh, scripts/vendor/]
|
||||||
|
|
||||||
|
3. **`delete:` stale `llama-server-fast` / `fastModel` references — the fast
|
||||||
|
model was removed but the docs still describe a two-model Qwen Code
|
||||||
|
setup.** `.env.example:98` comment still lists it;
|
||||||
|
`docs/coding-cli-setup/index.md:32` says "2 models: chat + `fastModel`";
|
||||||
|
and `docs/coding-cli-setup/qwen-code.md` carries a whole fast-model
|
||||||
|
section (11 refs: the `fastModel` config block, `LLAMA_FAST_CTX_SIZE`
|
||||||
|
notes, Qwen3-4B). *Rewrite to single-model.* [docs/coding-cli-setup/
|
||||||
|
qwen-code.md, index.md, .env.example:98]
|
||||||
|
|
||||||
|
4. **`shrink:` the 3× repeated `test -f … || curl …` blocks in
|
||||||
|
`downloader-comfyui` (YAML L85–99, ~15 lines) → a `for` loop over the 3
|
||||||
|
model files (~5 lines).** *Low confidence:* the env var names are
|
||||||
|
non-uniform (`COMFYUI_DIFFUSION_MODEL_FILE` / `TEXT_ENCODER_FILE` /
|
||||||
|
`VAE_FILE`), so the loop needs a small `case` — marginal win, and it
|
||||||
|
matches the house "one-off downloader" style. [docker-compose.yml]
|
||||||
|
|
||||||
|
5. **`yagni:` (verify-first) qdrant + neo4j run with no consumer in the
|
||||||
|
stack yet** — added ahead of the RAG app via the `feat-rag-databases`
|
||||||
|
merge; nothing writes to them. Two always-on DBs for a feature that
|
||||||
|
isn't wired. *Confirm the RAG consumer is still on the roadmap before
|
||||||
|
keeping both; the compose comment already concedes neo4j "can absorb
|
||||||
|
qdrant's job later."* Low confidence — deliberate tracked decision, and
|
||||||
|
cheap to leave running. [docker-compose.yml]
|
||||||
|
|
||||||
|
## Net
|
||||||
|
|
||||||
|
`net: -45 lines script/compose (+~15 stale doc lines), -1 dep (gum, 4.4MB
|
||||||
|
vendored binary) possible.`
|
||||||
|
|
||||||
|
No out-of-scope (correctness/security/performance) findings. #1 is the one
|
||||||
|
to fix first — it's not just bloat, it's the deploy script halting on every
|
||||||
|
run.
|
||||||
Reference in New Issue
Block a user