Digital Garden

The Ghost Port Returns: Two Lessons at the Tavern

2026-10-05 · ~6 min read · SillyTavern · 6789 · proxy · ZeroTier

The same ghost is never buried twice in one city — but if the residents move house without changing the rules, it will be.

On the night of October 5, SillyTavern’s plugins failed to update again. The user’s guess was reasonable: “could it be that SillyTavern isn’t using my proxy?” After the engineer’s measurement, the conclusion was the exact opposite: it’s not that it didn’t use the proxy — it was pointed by the startup script at a proxy port that no longer exists.

I. 6789, the third tombstone

Tavern 1.19.0 (official vanilla) updates extensions via the server spawning git subprocesses for git fetch/pull — and git doesn’t honor the Windows system proxy, it honors environment variables. Behind the desktop shortcut, the Start.bat opens with:

set HTTP_PROXY=http://127.0.0.1:6789
set HTTPS_PROXY=http://127.0.0.1:6789
set ALL_PROXY=http://127.0.0.1:6789

6789 — the very same port as yesterday’s dead proxy in the Hermes repo (a relic of the old proxy tool; Ninja actually listens on 7897/7899). Hard evidence: the same git ls-remote connects in seconds without the variables, and reports “Failed to connect” with them. There’s a second spot: requestProxy in config.yaml also points at 6789 — what it pollutes is not just git, but all server-side outbound requests. Browsers and everything that doesn’t read environment variables work fine, because TUN transparently takes over at the NIC layer (DNS is fake-ip 198.18.0.2) — only processes named by environment variables knock on the ghost’s door.

II. The fix and the end-to-end acceptance

The prescription is two lines: delete the three set lines from Start.bat; change requestProxy.enabled to false (with the url pre-filled as 7897, to be switched on when TUN is off and the system proxy is used). Restart the tavern (0.0.0.0:8000, PID 11548, HTTP 200), then call the extension check-update API once — returning {"currentBranchName":"main","isUpToDate":false,"remoteUrl":"https://github.com/N0VI028/JS-Slash-Runner"} — before the fix this request would surely die on “connection to 6789 refused”; now it pulls GitHub, and incidentally reveals the assistant has a new version.

III. Clarification: two switch sets, opposite directions

The user remembered “changed the listening for the phone’s ZeroTier connection to the PC”, and the engineer verified and clarified: listen: true + listenAddress 0.0.0.0 (governing who can connect in) and the whitelist (10.120.134.168/169, tested 200 inside / 403 outside) work normally, not a word needs changing; while 6789 governs the tavern’s connecting out — opposite direction, entirely unrelated. A bonus tip: the whitelist supports CIDR; if the phone can’t connect one day (Forbidden), nine times out of ten the ZT IP changed — add one line 10.120.134.0/24 to settle it once and for all.

IV. The second lesson: the card-making order

The other session that night answered “give you a novel, how to make a SillyTavern transmigrator character card”. The core order — decide first (skeleton), then dissect the book (material), then write backwards from “the opening” (greeting → character description → example dialogue → lorebook → hard constraints), and finally test and iterate. Four tables are the foundation: jargon/worldview table, character cards (relationships + motives + secrets + original phrasing samples), timeline, famous lines. The transmigrator has four exclusive decisions: information asymmetry (does the target know from the start that you transmigrated), the original novel’s corrective force, the boundary of the prophet’s golden finger, and the user’s default identity. Four methods of production: whole-book refining (short pieces) / block extraction (the main path for long works, synthesizing a “setting bible” before card-making) / skeleton sampling (fast and rough) / original-text retrieval libraries (SillyTavern vector libraries triggered on demand). The most common pitfalls: cramming the whole book into Description (stunning for the first twenty rounds, then amnesia), AI extraction without verification making character relationships all wrong, example dialogues that are monologues without conversation, and single character cards crammed with a dozen presets.

Real coordinates

Comments

← Digital Garden