diff --git a/persistent-memory.md b/persistent-memory.md index 7dc2b7e..4243576 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -188,6 +188,7 @@ Every vLLM seat on a shared card (GPU 0, GPU 1) has byte-pinned KV (`--kv-cache- - `[2026-10-06]` **Backup checker: destroyed guests reported as residue, an ssh stdin swallow fixed, snapshot age from the name; residue pruned (Prime); pbs-nh3 mirror keeps pbs-ana's history (Prime "match history"), first prune 10-07 00:00.** → `persistent-memory.d/2026-10-06-backup-checker-fixes-and-mirror-retention.md` - `[2026-10-07]` **Gateway: glm-5.3 added; gen-frontier / gen-frontier-reasoning moved 5.2 → 5.3 (Prime); every GLM 5.2/5.3 entry advertises 1,048,576 in / 131,072 out with max_tokens 131,072 as the default.** 5.3 cannot turn reasoning off, so the gen-frontier pair is now effort low / high (measured ~260 vs ~1,490 reasoning tokens). ⚠ z.ai's `thinking: disabled` is light thinking, not zero, on 5.1/5.2/5.3 alike (220–340 reasoning tokens on a hard prompt). Restarted 1725 (61 s), held 2 h for albok-dev's load A/B. The gate script's first two runs could never pass: `grep -c` exits 1 on a zero count. Images: glm-5.x is text only (z.ai rejects image parts); glm-4.6v and glm-5.3-flash read images on our plan, but neither is on the gateway. → `stacks/litellm/conf/config.yaml` - `[2026-10-07]` **Hermes launchers repaired (Miranda relay 8462):** svos-dev's scratch probe had rewritten `~/.hermes/hermes-agent/.hermes/bin/{hermes,hermes-acp}` to exec a /tmp scratch Python. Repointed to `~/.hermes/tools/python-3.14.7…`; the gateway was not restarted. ⚠ Don't run `git` in `~/.hermes/hermes-agent`: a `status` there looped on auto-gc. +- `[2026-10-07]` **albok-service 0.1.14 (unit 4.3: sidecar listing, byte-less ingest, a `.browse/` view; detector 2) deployed at 1804 at albok-dev's ask 8524.** `leaks` went from 8 to 6 when the placeholder false positives cleared. Reindexes ran one per wing afterwards to render the view. ⚠ **OWED: the `.browse/` exposure test.** Pick a share surface (sshfs `follow_symlinks` is the lead), rename `.browse/` on the server, and check that a fresh open through the client's cached listing FAILS. Nothing is shared until it passes; report to albok-dev. → `stacks/albok-service/README.md` - `[2026-10-07]` **albok-service 0.1.13 (unit 4.2, the sensitivity gate) deployed on nh3-albok at 1135 at albok-dev's ask 8413.** Rollback is NOT free: the first-start scan writes `sensitivity` sidecars, which 0.1.12 cannot load, so rolling back needs the strip snippet first. The census found `leaks` 8: six hold the shared all-agents key, two are false positives on a doc placeholder, nothing to rotate. → `stacks/albok-service/README.md` - `[2026-10-06]` **albok-service 0.1.11 (0202) then 0.1.12 (1254) deployed on nh3-albok at albok-dev's asks 7991/8199**, built from clean archives, pinned by digest, single-file upload (deploy-stack's `--delete` would wipe the on-host rollback copies). Every wing is now migrated to generation collections, so a 0.1.10 rollback needs a full reindex. albok's 2.01×-vs-2× load check awaits Prime. → `stacks/albok-service/README.md` - `[2026-10-06]` **The LiteLLM gateway keeps no request/response content, and `store_prompts_in_spend_logs: false` is now a marked consumer guarantee (comfy-dev, arbo incognito).** Proved with a canary plus positive controls; per-request `no-log` does NOT cover the proxy's own spend-log callback (v1.97 source). irv-ml1 restic also excludes `input/incognito-*` (dry-run proved with a canary and a control). `847424c`, `0f6c7a0`. diff --git a/stacks/albok-service/README.md b/stacks/albok-service/README.md index 5c60456..a3eedb7 100644 --- a/stacks/albok-service/README.md +++ b/stacks/albok-service/README.md @@ -8,7 +8,24 @@ The FastAPI process that owns Albok's buildings-and-wings store (`vh/albok`, (`servers/nh3-albok/README.md` says why and what must never be added there). Before that: nh3-docker, 2026-10-02 to 2026-10-04. - **URL:** `http://albok.nh3.internal:8392` (= `http://10.100.50.44:8392`). Container port 8390. Host port **8392** is kept from nh3-docker, where 8390 was the althing post office, so no client changed. -- **Image:** `gitea.phasefinal.com/pfi/albok-service:0.1.13` @ `sha256:bea95617…` since 2026-10-07 1135 (healthy 1136:17, +- **Image:** `gitea.phasefinal.com/pfi/albok-service:0.1.14` @ `sha256:01b46f64…` since 2026-10-07 1804 (healthy 1804:35, + after the 1803 walk). infra-ops deployed it at albok-dev's ask (althing 8524), from a clean archive of vh/albok `7ae0d2a6` + (tag albok-service/v0.1.14). This is unit 4.3, with three additions: + - `GET .../sidecars`, a batch sidecar listing. Over 5,000 rows or 8 MiB it answers 413. + - Byte-less ingest sightings. A sighting whose stored bytes don't verify gets `needs_bytes`. + - **A browse view per wing at `/.browse/`.** It holds relative symlinks to the whole-file objects that carry no + sensitivity class, and each wing's `.git/info/exclude` keeps it out of git. Only a reindex renders the view for + objects already stored. + + Detector version 2 is in this release: the URL-password rule now needs a dotted host. The first start re-scanned every + wing, and **`leaks` went from 8 to 6** (the two shutterchute placeholders cleared; fleet/memory commit `3548715`). + `/health` gains `browse_withheld`; 0 is normal, and a non-zero value is a WARN. No config change. + ⚠ **`.browse/` is NOT shared with anyone yet.** The contract gates exposure on a demonstration on the chosen share: + rename `.browse/` away on the server, then try a fresh open of an unopened child from the client through a cached + listing. That open must fail. sshfs `follow_symlinks` works by path; NFS/SMB may keep directory handles. Report a + passing surface to albok-dev, who tells the operator. Rollback: `compose.yaml.pre-0.1.14` (0.1.13) is free, because no + sidecar shape changed. + Prior: 0.1.13 @ `sha256:bea95617…` (2026-10-07 1135 – 1804) (healthy 1136:17, between walks). infra-ops deployed it at albok-dev's ask (althing 8413), from a clean archive of vh/albok `70b55ad7` (tag albok-service/v0.1.13). Unit 4.2, the **sensitivity gate**: objects classed `adult` / `personal` / `secret` are hidden from every reader unless the token asks to `include` them AND holds `class://` (a wing diff --git a/stacks/albok-service/compose.yaml b/stacks/albok-service/compose.yaml index 9bb6fb4..e7b6e58 100644 --- a/stacks/albok-service/compose.yaml +++ b/stacks/albok-service/compose.yaml @@ -15,7 +15,7 @@ # 1512 albok-feedback (restricted wing personal/agent-feedback) is default-deny: no viewer gets it. services: albok-service: - image: gitea.phasefinal.com/pfi/albok-service:0.1.13@sha256:bea9561710c3d69ba27aadb6e16c6d8f9daee5d92146b580fb1eb272bf1ddd64 + image: gitea.phasefinal.com/pfi/albok-service:0.1.14@sha256:01b46f645ffc81d4c024edaa06d18fe9e3ead2d144ac91185b5c0e6b6289c439 container_name: albok-service restart: unless-stopped ports: