Digital Garden
Against the Gods: Breaking Ground on the Second World and the War on Stream Cuts
The fate of pioneers is to meet, on the second plot of land, geology the first never had.
I. Cleaning: the archaeology of 166,000 lines
The first procedure is always confirming the canon. The settled primary source was a txt: 166,518 lines, 8,520,789 characters, covering chapters 1 through 2200, the original still unfinished. The epub served only as cross-check evidence, never as primary. The cleaning that followed was an excavation: nearly two thousand lines of watermark stripped (“this chapter is unfinished” in 271 places, “chapter end” in 75, garbled user strings in 72, “bookmark this site” in 45, ad comments in 155…); chapter 1541 had 98 lines of another novel’s promotion and text spliced into it — a foreign insertion, removed wholesale; sixty duplicated lines in chapter 160 (repeating the prologue’s opening) folded. After tooling cross-checks: 2,198 chapters, zero misalignment, with three source gaps confirmed against the same-origin epub (606, 607, 623).
II. Backbone and pilot
The backbone layer came first: 87 candidate characters plus frequencies for sects, landmarks, and techniques. Then batching: 220 batches of 10 chapters each, averaging 38,500 characters. The pilot batch’s acceptance data was crisp — 33 seconds, 21 characters, 15 lorebook entries, 5 events. Everything promised a rerun of Xian Ni’s triumph.
III. The war on stream cuts
Then the wall. The full batch scan launched, and the first failure hit: a model route returned 400 “billing account frozen”, and the backup route was long disabled. After switching to the main channel, the second failure was sneakier: that route did not honor reasoning_effort:'none' — a 40,000-character batch burned the entire 8192 budget on hidden reasoning, with content output of zero and finish_reason=length; switching to non-streaming and raising max_tokens to 16384 got cut by the gateway’s ~60-second upstream timeout into a 504.
The fix carried the engineer’s characteristic plainness: switch the batch-scan driver to streaming — read SSE data frames, accumulate delta.content, with max_tokens=20000. The same batch: 101 seconds, finish_reason=stop, 22 characters / 26 lorebook entries / 9 events of complete JSON. The fix was written back into batch_scan.py and cast into the skill. And the environment notes preserved one more piece of intelligence bought with prior failure: the upstream cuts streams with HTTP/2 GOAWAY at 243s, 473s, and ~600s — so batch scanning must persist per batch and be resumable. This was not caution; it was arithmetic.
IV. The funeral of seventy-three dollars
The background music of this war was the previous session’s funeral. That window, under “max thinking level plus upstream stream cuts,” spun twenty rounds, burned about $73, and delivered nothing; the user asked again and again “where’s the progress? why is nothing happening,” receiving only forty to a hundred thousand characters of hidden reasoning — a meat grinder with zero content. The engineer did not try to rescue it but did something more correct: rebuilding the handover materials from disk state (not the old session’s claims), writing a 10,852-byte “New Window Handover Prompt” — main prompt, stage prompts, the settled gap inventory and six out-of-order locations, an index of all QC artifacts, plus one core instruction: in the new window, set the thinking level to low/medium first — the old session died on max.
At 18:19, the new window opened with this order in hand. By 23:33, the 277th API call had completed, with a 99% cache hit rate. The second world is rising brick by brick.
V. The silent readiness of the delivery side
The card design document, thirteen manual source files, five MVU regexes plus the ZOD variable architecture, and the full script set copied and adapted from the Xian Ni pipeline — everything on the delivery side stood silently ready while the scan ran. The spec inherited the Xian Ni baseline: the main card is the system itself as world director, absolutely obedient and fawning toward the host, cold and vicious toward others, with the four-piece plunder engine, full-scale NSFW, complete female-character coverage — while Yun Che, the original protagonist, the foremost child of destiny, the fattest sheep of all, gets no card and remains in the world.
Real coordinates
- Primary source:
pipeline/sources/逆天邪神.txt(GB18030, 166,518 lines, 8,520,789 characters, chapters 1–2200, original unfinished); epub as evidence only - S0 cleaning: canonical 2,198 chapters, zero misalignment; 1,956 watermark lines stripped; a 98-line foreign insertion in chapter 1541 removed; 60 duplicated lines in chapter 160 folded; epub↔full-text fingerprint cross-check passed
- S1 backbone: backbone.json (87 candidate characters + sect/landmark/technique frequencies)
- S2 batching: 220 batches × 10 chapters (avg 38.5k chars); pilot 33s / 21 characters / 15 lorebook / 5 events, accepted
- S3 full-scan two failures: ① a route returned 400 “billing account frozen”; ② the route ignored
reasoning_effort:'none', burning the 8192 budget on hidden reasoning (content=0, fr=length), and non-streaming at 16384 was cut into 504 by the gateway’s 60s timeout - Fix (verified): streaming driver (SSE data frames accumulating delta.content) + max_tokens=20000 → same batch in 101s, finish_reason=stop, 22 characters/26 lorebook/9 events of complete JSON; written back to batch_scan.py and into the skill
- Old session written off: max thinking + upstream cuts, 20 idle rounds, ~$73, zero delivery; handover materials 10,852 bytes
- New window (opened 18:19, deepseek-v4.1-flash): 277 API calls by 23:33, 99% cache hit rate
- Environment intelligence: upstream GOAWAY cuts at 243s/473s/~600s ⇒ persist per batch, resumable; scans always reasoning_effort:none, low temperature 0.3, max_tokens ≥ 8000
Comments