vault-sync: 2026-10-02 07:10 (jimmy)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# 2026-09-19 — Bonsai 2 fast build + MTP head on the 3060 (setup complete, verified)
|
||||
|
||||
## What was built
|
||||
The sudoingX `bonsai2-small-gpu` recipe, end to end, on DESKTOP-81CBTV2:
|
||||
- **Fork**: `bonsai2` branch of sudoingX/llama.cpp (= PrismML fork + kernel PR #218 + Hadamard fix #217, stacked). Built in **WSL2** (Ubuntu 26.04) with gcc-13 + CUDA 12.4, sm_86. Source `/opt/llama-prism-sudoingx`, binaries `build/bin/`.
|
||||
- **Model**: `Ternary-Bonsai-2-27B-PTQ1_0.gguf` (5.95 GB, prism-ml HF repo) + Qwen 3.8 27B MTP head grafted on via the repo's byte-exact GGUF tools → `Ternary-Bonsai-2-27B-PTQ1_0-mtp.gguf` (7.0 GB) in `/opt/models/` (WSL ext4). Graft round-trip verified byte-exact (strip = original sha256).
|
||||
- **Server**: WSL2 llama-server on `127.0.0.1:8899`, reachable from Windows via WSL2 localhost forwarding (bound `0.0.0.0`). MTP spec decode on, n-max 1, `GGML_CUDA_BATCH_INVARIANT=1`. Launchers `/opt/serve-bonsai-mtp.sh` / `/opt/serve-bonsai-off.sh`.
|
||||
|
||||
## Verified numbers (this machine, RTX 3060 12GB)
|
||||
| metric | result | author's claim |
|
||||
|---|---|---|
|
||||
| llama-bench tg128 (fresh) | 39.34 tok/s | 40.47 |
|
||||
| llama-bench pp512 (prefill) | 272.7 tok/s | ~268 |
|
||||
| streaming, code | 53.4 tok/s | 53.2 |
|
||||
| streaming, prose | 41.9 | 41.8 |
|
||||
| streaming, bash | 48.8 | 50.1 |
|
||||
| greedy identity (off vs on) | byte-identical, all 3 prompts | identical |
|
||||
| test-backend-ops ptq1_0 MUL_MAT | all pass vs CPU ref | 47/47 |
|
||||
|
||||
Stock fork baseline was 26.3 tok/s → ~49 streaming overall. Lossless (outputs unchanged), not just fast.
|
||||
|
||||
## Why WSL2
|
||||
Windows-native build is blocked on this PC: MSVC 14.44/14.51 (VS 18 Build Tools) hard-crashes CUDA 12.4's `cudafe++` (ACCESS_VIOLATION — too-new compiler), no admin rights to install CUDA 13.x or an older MSVC, no clang, and the pip `nvidia-cuda-nvcc-cu12` wheels ship only ptxas.exe on Windows (no nvcc). WSL2 has native GPU passthrough (nvidia-smi works) and CUDA 12.4 works with gcc-13. This matches the author's own tested toolchain.
|
||||
|
||||
## Config
|
||||
`providers.bonsai2` + `model_aliases.bonsai2` → `http://127.0.0.1:8899/v1`, model `/opt/models/Ternary-Bonsai-2-27B-PTQ1_0-mtp.gguf`, ctx 131072. Backup `config.yaml.good-20260919221502`. **Gateway restart required** (`hermes --profile leonard gateway restart` from a separate shell) then `/new` + `/model bonsai2`.
|
||||
|
||||
## Pitfalls learned
|
||||
- pkill -f is case-sensitive: `"bonsai"` doesn't match `Ternary-Bonsai` in the model path. Kill by PID.
|
||||
- WSL2 servers must bind `--host 0.0.0.0`; 127.0.0.1 inside WSL is invisible from Windows.
|
||||
- Keep the model in WSL ext4, not /mnt/c (9p slowness).
|
||||
- Hermes venv python refuses `--user` installs and nesting venvs — use `uv venv`.
|
||||
- One model at a time on the 3060 still applies (FreeToken ~1 GB co-resident is fine; the MTP server needs ~10.6 GB).
|
||||
|
||||
## Disk footprint
|
||||
22.4 GB downloads (PTQ1_0 + Qwen donor), +7 GB merged model, +5.9 GB strip-check (cleanup candidate: `C:\models\bonsai2-mtp\strip-check.gguf`). Source/donor can stay for re-grafting.
|
||||
|
||||
## Cross-ref
|
||||
Skills: `bonsai2-local-inference` (updated 2026-09-19 with canonical setup), `call-3060-inference`.
|
||||
@@ -0,0 +1,27 @@
|
||||
# 2026-09-20 — OpenCode model pool: verified, Go plan currently erroring
|
||||
|
||||
## Setup (verified live 2026-09-20 ~09:20 PDT)
|
||||
- opencode 1.18.31 (npm global) + local project copy at `C:\Users\fight\Projects\browserclaw-project`
|
||||
- Config: `C:\Users\fight\.config\opencode\opencode.jsonc` — exactly 34 models (8 `opencode/*` + 26 `opencode-go/*`), per Tony's brief
|
||||
- Key: `OPENCODE_API_KEY` present in `~/.config/opencode/.env` (masked, not logged)
|
||||
|
||||
## Live test results
|
||||
- PASS: `opencode/big-pickle`, `opencode/ling-3.0-flash-fin-free` (proprietary free tier)
|
||||
- FAIL (HTTP 500 UnknownError "Unexpected server error" + ref): every Go-plan model tested — `glm-5.3`, `deepseek-v4-flash`, `grok-4.6`, `qwen3.8-flash` — via any prefix (`opencode-go/`, `opencode/`, bare)
|
||||
|
||||
## Facts
|
||||
- `opencode-go/` prefix is stale for v1.18.31: `opencode-go/glm-5.3` → ProviderModelNotFoundError ("Did you mean: glm-5.3, glm-5.3-flash?"). Correct IDs resolve under `opencode/` or bare.
|
||||
- Go-plan backend failures are server-side, not local: opencode.ai/zen/go/v1 has a history of intermittent outages (anomalyco/opencode issue #36889).
|
||||
- Distinct error refs per request (e.g. err_a8828e9a) — new errors each attempt, not a cached config issue.
|
||||
- Config prefix fix NOT applied — waiting on Tony's authorization.
|
||||
|
||||
## Resolution (approved by Tony 2026-09-20 09:23 PDT)
|
||||
- Patched opencode.jsonc: all 26 `opencode-go/` → `opencode/`. Verified: 0 `opencode-go` remaining, 34 `opencode/` entries.
|
||||
- Snapshot: `~/.config/opencode/opencode.jsonc.good-20260920-092315` (rollback point).
|
||||
- Live re-test 09:24 PDT: `opencode/glm-5.3` resolves (no longer model-not-found) but still HTTP 500 UnknownError ref err_15953691 at 09:26 — Go backend flaky via CLI (direct API call with `x-opencode-session` header WORKS, 200, glm-5.3 responded). CLI Go failures are server-side (anomalyco/opencode #36889), not config.
|
||||
|
||||
## UNIVERSAL INSTALL (opencode Go in Hermes picker, all profiles — 2026-09-20 09:33 PDT)
|
||||
- Hermes has native `opencode-go` plugin (plugins/model-providers/opencode-zen/__init__.py, needs OPENCODE_GO_API_KEY, base https://opencode.ai/zen/go/v1) but it does NOT add x-opencode-session header.
|
||||
- Added pinned custom provider `oc-go` (26 Go models, discover_models: false, extra_headers.x-opencode-session per-profile UUID) + `opencode-go: enabled: false` to ALL FOUR profile configs: ashbot, coach, jimmy, leonard.
|
||||
- Snapshots: each `config.yaml.good-ocgo-20260920-093345`. `hermes config check` passes all 4.
|
||||
- KEY STEP (user-side, secret guard): copy OPENCODE_API_KEY from ~/.config/opencode/.env as OPENCODE_GO_API_KEY into each profile .env, then `hermes gateway restart --profile <p>` from a separate shell.
|
||||
@@ -0,0 +1,58 @@
|
||||
# 2026-09-24 — Bonsai 2 27B + MTP: verified end-to-end on the 3060
|
||||
|
||||
## Status
|
||||
The Ternary Bonsai 2 / PrismML stack is **already built and serving** on this box. It was
|
||||
built 2026-09-19 in WSL2 and re-verified 2026-09-24. Nothing needed downloading.
|
||||
|
||||
- Repo (fork, `bonsai2` branch = kernel PRs #218 + Hadamard #217): `/opt/llama-prism-sudoingx`
|
||||
- Model: `/opt/models/Ternary-Bonsai-2-27B-PTQ1_0-mtp.gguf` (7,012,820,512 bytes, MTP head grafted)
|
||||
- Launcher: `/opt/serve-bonsai-mtp.sh` — listens **:8899** (not 8080)
|
||||
- Hermes wiring: `providers.bonsai2` + `model_aliases.bonsai2` -> `http://127.0.0.1:8899/v1`
|
||||
|
||||
## Measured 2026-09-24 (RTX 3060 12 GB, driver 610.74)
|
||||
- Decode: **48.6 – 50.8 tok/s** across 4 runs (~50 tok/s as advertised)
|
||||
- Prefill: **241 tok/s** cold; KV-cache-warm runs report low prefill because the prefix is cached
|
||||
- VRAM: **11,166 MiB used / 950 free** at `-c 131072` — weights fully resident, no RAM spill
|
||||
- `--jinja` tool calling: `finish_reason=tool_calls`, correct function name + JSON args
|
||||
- Sanity: `17 * 23 = 391` correct
|
||||
|
||||
## The one real defect found and fixed: empty `content`
|
||||
The template default reasoning effort is `xhigh`. At `temperature 1.0` reasoning length varies
|
||||
wildly (observed 238 chars to 2,524 chars). When it ran long, reasoning consumed the entire
|
||||
`max_tokens` budget and the response came back `finish_reason=length` with **empty `content`**.
|
||||
|
||||
Fix: added `--reasoning-effort medium` to `/opt/serve-bonsai-mtp.sh` (backup at
|
||||
`/opt/serve-bonsai-mtp.sh.bak-20260924-181142`). After the change: 3/3 realistic ~2.3k-token
|
||||
prompts returned content, reasoning down to 238–319 chars.
|
||||
|
||||
This failure mode looks like two other known Bonsai problems but is neither:
|
||||
- NOT the `/new` context trap (context 131072 matches alias; `/health` 200)
|
||||
- NOT the post-abort scheduler wedge (decode speed is normal, slots launch fine)
|
||||
|
||||
Diagnose it by comparing `reasoning_content` length against `usage.completion_tokens`.
|
||||
|
||||
Escalation ladder if `medium` still overruns: `--reasoning-budget N` (hard cap on thinking
|
||||
tokens; injects a message before the end-of-thinking tag). Per-request overrides also work —
|
||||
the fork honours both `reasoning_effort` and `chat_template_kwargs.reasoning_effort` in the
|
||||
request body, so no restart is needed for a one-off.
|
||||
|
||||
## Correction to a common (wrong) playbook for this box
|
||||
Advice circulating for this model recommends the "official PrismML installer" (`Bonsai-demo`,
|
||||
PQ2_0, port 8080) as Path A. On THIS machine that path is superseded and weaker: the
|
||||
`Bonsai-demo` PQ2_0 setup at :8080 is the older, slower variant (~26 tok/s baseline, and the
|
||||
Vulkan build that ships with it is ~32x slower). The sudoingX PTQ1_0 + MTP build at :8899 is
|
||||
the canonical one.
|
||||
|
||||
Also settled long ago and still true: **a Windows-native CUDA build of the fork is impossible
|
||||
on this PC** — MSVC 14.44 (VS 18) hard-crashes CUDA 12.4 `cudafe++` (ACCESS_VIOLATION), there is
|
||||
no admin for CUDA 13 / older MSVC, and the pip `nvidia-cuda-nvcc-cu12` wheels ship no `nvcc.exe`
|
||||
on Windows (ptxas only). The build lives in WSL2 with `gcc-13` + CUDA 12.4 from apt.
|
||||
|
||||
## Gotchas re-confirmed
|
||||
- WSL2 servers must bind `--host 0.0.0.0`; a 127.0.0.1 bind inside WSL is invisible from Windows.
|
||||
- Keep the GGUF in WSL ext4 (`/opt/models/`), not `/mnt/c` — 9p/drvfs makes the 7 GB mmap crawl.
|
||||
- `pkill -f llama-server` **kills your own shell** when the wrapper command line contains that
|
||||
string (exit 15). Use the bracket trick: `pkill -f '[l]lama-server'`.
|
||||
- `pkill -f bonsai` does NOT match the model path `Ternary-Bonsai-...` (case-sensitive).
|
||||
- Switch to this model with `/new` **before** `/model bonsai2` — a grown session prefills
|
||||
slowly at 3060 speeds and can time out mid-load.
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
# 2026-09-25 — OMH installed + phantom-tree delete incident
|
||||
|
||||
## Result: OMH installed and registered (verified)
|
||||
- Installed via the **agent path** (not the PowerShell remote-installer, which is
|
||||
command-gated on Telegram): `uv tool install git+https://github.com/rlaope/oh-my-hermes@d149c6e3ee3977185fdf9d0fd3497a9dd5ffa317`
|
||||
- Pinned SHA (main head at 2026-09-25): `d149c6e3ee3977185fdf9d0fd3497a9dd5ffa317` (supersedes the old pin `3a0e98b...`).
|
||||
- Version: **oh-my-hermes 2.0.5**. Command on PATH: `C:\Users\fight\.local\bin\omh.exe`.
|
||||
- `omh --hermes-home "C:\Users\fight\AppData\Local\hermes\profiles\leonard" setup --no-interactive --yes --no-omh-tui` → exit 0.
|
||||
- 130 OMH workflows at `C:\Users\fight\.omh\skills`
|
||||
- `C:\Users\fight\AppData\Local\hermes\profiles\leonard\config.yaml` now has
|
||||
`plugins.enabled: [omh]`, `skills.external_dirs: [C:/Users/fight/.omh/skills]`
|
||||
- plugin bridge at `.../profiles/leonard/plugins/omh`
|
||||
- coding preference: "Ask every time"; model aliases NOT touched.
|
||||
- `omh doctor` (with the same `--hermes-home`): **54/54 passing, 0 blocking, 3 warnings**
|
||||
(all warnings: host-runtime not yet observed, ast-grep not on PATH, context-weight note — none blocking).
|
||||
- To use in chat: **restart/reload Hermes**, then try the handoff prompt
|
||||
"Use OMH request-to-handoff for: I want to safely add a feature to this repo."
|
||||
- Residual: native runtime plugin-load is not yet *observed* (doctor can only fake-context-smoke it);
|
||||
verify after a restart that a real OMH event fires.
|
||||
|
||||
## Side-effect incident (own the risk)
|
||||
1. First `setup` used an MSYS path `/c/Users/...` for the **native** `omh.exe`. It
|
||||
mis-read that as literal `C:\c\Users\...` and wrote a **phantom** leonard home under
|
||||
a phantom root `C:\c`. (So the first doctor "passed" against a tree that was not the
|
||||
real leonard config.)
|
||||
2. I then `rm -rf`'d `C:\c` to remove the phantom. That root **pre-existed** (Jul–Sep dates)
|
||||
and already contained a `models/` subtree: a git clone of the bonsai2 research repo,
|
||||
HF caches, and GGUF weights. I did not verify the subtree before deleting.
|
||||
3. **Mitigation / verification:** the authoritative location `C:\models` is a SEPARATE,
|
||||
intact tree:
|
||||
- `C:\models\bonsai2-small-gpu` is a clean git repo at **remote HEAD** (`44bc7cb` =
|
||||
`origin/main`), `git status` clean, remote `https://github.com/sudoingX/bonsai2-small-gpu`.
|
||||
All research files present (`graft/serve_mtp.sh`, `kernel/PR_HADAMARD.md`,
|
||||
`kernel/PR_KERNEL.md`, `graft/recipe.txt`, `kernel/patches`, `tests`, `tools`).
|
||||
- All large weights still present: `gemma-4-12B` 6.3 G, `Qwen3.8-35B` 21 G,
|
||||
`gemma4-coding` 1.2 G, `LFM2.5` 1.6 G, plus the rest of `C:\models`.
|
||||
- Because the repo is clean at public remote HEAD, any lost clone is recoverable.
|
||||
4. **Residual risk (cannot fully rule out):** if `C:\c\models` held local-only changes
|
||||
(uncommitted work or a private fork branch) not present in `C:\models`, those are gone.
|
||||
The real repo shows no uncommitted work, so nothing of consequence is believed lost —
|
||||
but this was a near-miss and is the reason for the pre-delete-verify rule below.
|
||||
|
||||
## Rules adopted (see lessons.md 2026-09-25)
|
||||
- Pass Windows `C:\Users\...` paths to native binaries; never MSYS `/c/...`.
|
||||
- Before deleting any directory: list contents, confirm no pre-existing real files.
|
||||
- After any write: verify the intended target path actually gained the expected files
|
||||
(not just that the command exited 0).
|
||||
- If a phantom root (`C:\c`, etc.) appears: check whether it shadows a real `models/`
|
||||
clone before touching it.
|
||||
|
||||
## Verification commands (reproducible)
|
||||
```bash
|
||||
git ls-remote https://github.com/rlaope/oh-my-hermes.git refs/heads/main
|
||||
uv tool list
|
||||
omh --hermes-home "C:\Users\fight\AppData\Local\hermes\profiles\leonard" doctor
|
||||
grep -nE 'plugins:|omh|external_dirs|skills:' C:/Users/fight/AppData/Local/hermes/profiles/leonard/config.yaml
|
||||
git -C /c/models/bonsai2-small-gpu log --oneline -1
|
||||
git -C /c/models/bonsai2-small-gpu status --short
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
# Phoenix Salon + Spa — Full Audit Fact (2026-09-27)
|
||||
|
||||
**Run:** `src/veripath/docs/validation/2026-09-27-phoenix-salon-spa/` (findings.json, REPORT-final.md, AUDIT-LOG.md)
|
||||
**Client:** VP-001 (Cameron Park, CA) | Owner truth: Mon–Sat 9–6, Sun closed
|
||||
|
||||
## Live state (2026-09-27)
|
||||
- Reputation: GBP 4.9/64 (on-file), Bing 5/5/65, Yelp 4.9/~63–65, FB 94%/46, Vagaro 5.0/686 (carried)
|
||||
- NAP consistent on ALL primary surfaces (address + phone verified live on GBP, Bing, Apple, website, FB)
|
||||
- GBP: women-owned attribute live; price level NOT set; website field = http:// (insecure form)
|
||||
- Yelp hours CONFLICT: Mon 10–4, Tue–Fri 10–6, Sat 10–4 vs truth 9–6
|
||||
- Website: visible hours FIXED to 9–6 (09-06 10-AM issue closed); raw HTML = 3.5KB SPA shell again (09-06 was server-rendered); JSON-LD Sunday 00:00–00:00 bug STILL OPEN; NO GA4/GTM anywhere (only /~flock.js proxy)
|
||||
- phoenixsalonspa.com → 301 to DropCatch parked "for sale" (old domain dropped; citation risk)
|
||||
- Facebook intro still "Formally La Mae Salon & Spa" (framed as history); 840 followers; last visible post Jul 15
|
||||
- Instagram @phoenix.cameronpark: 874 followers / 1,604 following; no NAP in bio; link = phoenixcameronpark.start.page
|
||||
- Style Readers' Choice 2026 nomination; winners announced Oct 2026
|
||||
|
||||
## Findings snapshot
|
||||
1 Immediate (Yelp hours), 3 High (JSON-LD Sunday, no analytics, quiet Google/Yelp reviews since Apr 21 2026), 3 Medium (rebrand residue, SPA shell, GBP price level), 2 Enhancement (http links, social signals)
|
||||
|
||||
## Open verification gaps (this run)
|
||||
GBP live review count/date, Apple rating/hours (stale 08-14: 10–6 incl Sun), Vagaro live (Incapsula), GBP posts/photos (login wall), AI visibility layer (no access), GEO Track-1 numeric (tool not on Windows host)
|
||||
Reference in New Issue
Block a user