Ensemble timeline input contract; bump DGX default to 80B#103
Open
kostadis wants to merge 3 commits into
Open
Conversation
…tured session docs The recent_events/timeline render orders facts by source-text position, which equals chronology only for linear narrative chapters. Structured session docs (gm-assist: Summary -> Scenes -> entity-indexed appendices) break that — appendix sections restate earlier events near the end of the file, so byte-position no longer tracks time and synthesis sets the wrong "current location." - 2d: new "Input contract" callout with the Hillsfar/DDEX34 Ch16 worked example (Sporedome-in-Items sorted after the final Hillsfar dinner scene), plus the fix: scope timeline extraction to ## Summary / ## Scenes, treat appendices as dossier-fuel; ~96% of facts locatable via source_quote -> offset -> section. - Stage 4: flag current-location/current-objective as the least-reliable fields; verify against the last scene of the final chapter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Spark chat slot now serves Qwen3-Next-80B-A3B-Instruct-FP8 on both boxes (was the cross-box Qwen3.5-122B); the old Qwen2.5-14B-AWQ default would 400 against the live endpoint. Part of the 2026-06-20 single-box swap that flipped every DGX client to the 80B id. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Internal/external config split: external config (endpoints, service URLs, DGX
model, shared data roots) is owned by mneme and rendered into config/wiring.yaml;
CG's internal config (prompts, agents, documents, log_dir) stays in config.yaml.
- campaignlib/wiring.py: load_wiring / wiring_get / wiring_path — the single
accessor for mneme-rendered external config (config/wiring.yaml, gitignored).
- Externalized (literals deleted, read from wiring):
- DGX endpoint + DGX model: extract_facts, campaignlib/api/backends
- 5etools data root: fivetools_catalog, fivetools_ingest, resolve_refs
- rpg-lib URL: mcp_server, rpg_retriever
- 5etools MCP index, rpg_library.db path, pdf-translators, homebrew-private:
fivetools_ingest, resolve_refs, launch_5etools_mcp
- web-server DGX fallback: server/routers/scene_editor
- config.yaml: external keys migrated out (internal config only now).
- query_rpg_lib: drop the rpg-lib sys.path import hack (imports the installed
library_api directly), remove --rpglib-dir, --db defaults to wiring rpg_library_db.
The Claude DEFAULT_MODEL (constants.py) stays CG's — internal. SC-002 grep-clean
across CG logic (only docstring examples remain, by decision). CG suite 913/914
(the 1 failure is an unrelated live-mempalace test, no seeded palace).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes on this branch:
docs(ensemble)— document the timeline input contract: narrative chapters vs structured session docs (what the ensemble timeline builder expects as input).feat(api)— bumpDGX_DEFAULT_MODELtoQwen/Qwen3-Next-80B-A3B-Instruct-FP8. The Spark chat slot now serves the 80B on both boxes (was the cross-box Qwen3.5-122B); the old Qwen2.5-14B-AWQ default would 400 against the live endpoint. Part of the 2026-06-20 single-box swap (see dgx-fun#22).🤖 Generated with Claude Code