Repository navigation
ForgeBook v1.0.2
ForgeBook v1.0.2
Bug-fix + reliability release. Replaces the previous v1.0.2 cut (which shipped only the SafeHttpFetcher rewrite).
What changed since v1.0.1
1. SafeHttpFetcher — no more IP-pinning
The original v1.0.0 fetcher pinned the HTTPS connection to a DNS-resolved IP literal with a custom HostnameVerifier. That interacted badly with the JDK's URL-spoofing check and every handshake died with HTTPS hostname wrong: should be <…>. SafeHttpFetcher now delegates TLS to the JDK defaults and enforces SSRF protections (private-IP block, redirect cap, 1 MB body cap, https-only) without fiddling with the handshake.
2. /forgebook item now works on CurseForge-hosted mods
Most mod displayURLs in mods.toml point at https://www.curseforge.com/minecraft/mc-mods/<slug>. CurseForge returns HTTP 403 to the SafeHttpFetcher user-agent, so /forgebook item used to always fail for CurseForge-hosted mods with "Could not fetch mod documentation."
When curseforge_api_key is set in the server config, the RAG pipeline now resolves the slug from the URL path and hits /v1/mods/search + /v1/mods/{id}/description instead — same HTML content, authenticated channel, no 403. On any failure (missing key, non-200, no search hit) the pipeline falls back to the existing SafeHttpFetcher path so non-CurseForge hosts (Fandom, Read the Docs, GitHub wikis) keep working.
3. Chat UI — empty-state hint no longer overflows
The "Ask about a mod, an item, or what you're looking at." placeholder was drawn as a single line and clipped the panel edges on narrow inventory-docked layouts. Now word-wraps and centers each line.
Operator action (optional)
To enable the CurseForge REST path, set curseforge_api_key in config/forgebook-server.toml. Apply for a key at console.curseforge.com. If left blank, /forgebook item behaves exactly as in v1.0.1 — direct HTML fetch only.
Install
Drop forgebook-1.0.2.jar in mods/. Forge 1.20.1-47.4.10 or later.