google-deepmind / google-deepmind/concordia
Consolidate the Astral Canticle human-control example
- Dominant language
- Python
- Stars
- 1.7k
- Forks
- 367
- PR merge metrics
- No merged PRs in 30d
Description
## Category consolidation
Requested by Joel Z. Leibo in [issue #373](https://github.com/google-deepmind/concordia/issues/373#issuecomment-5621250114). This is the single continuing issue for this category. Implementation and subsequent improvements stay in [PR #306](https://github.com/google-deepmind/concordia/pull/306). Approved PRs #297, #302, #304 and #332 are exempt and remain unchanged.
## Scope
- Demonstrate human player or GM control through standard entities and the standard sequential engine.
- Preserve the full ordered basic/minimal controlled-entity context, ordinary autonomous NPCs, structured logs, persistent drafts and idempotent submissions.
- Provide terminal and optional mobile-browser adapters, journal export and reverse-proxy-prefix handling.
- Retain the shared HumanSession helper used by Bellwether.
Human-control APIs remain in approved PRs #302/#304. Reusable editor/CLI infrastructure belongs to #314; Bellwether belongs to #372. The reviewer request to use `generic.Simulation` in `adventure.py` is tracked here as remaining review follow-up, not falsely marked complete by consolidation.
## Consolidated review history
No additional standalone PR in this category; prerequisite pieces are extracted from the former Bellwether stack.
Superseded issues and PRs retain their original descriptions and point here. Consolidation closes duplicate review threads, not claims that pending code has landed upstream.
## Standard Simulation refactor
[Commit 38b68ea](https://github.com/concordia-claw/concordia/commit/38b68eaf14cbf54012ec18a021e497f27a8d47fd) replaces manual bank/cast/engine-loop assembly with ordinary Config instances and generic.Simulation. build_cast remains compatible. Human player/GM policies, basic perception context/order, NPC turns, per-step partial files, interruption handling and final player observation are preserved. Fresh builds retain the real reader without copying its locks and do not share components/banks. The GM bank now uses the standard Simulation duplicate-observation policy; checkpoint continuation is not added.
**34 tests pass** both standalone and on the combined checkout, including real inbox binding and partial-log preservation. Typecheck has zero errors; error-level lint and formatting/import checks pass. This is fixture evidence, not a new live-model run or a migration of the active game.
Contributor guide
Research direction
Start with adventure.py, build_cast, and the generic.Simulation refactor described in commit 38b68ea; review PR #306 and its 34 tests before making changes. Done means the standard simulation preserves the listed human-control, NPC, logging, persistence, adapter, and journal behaviors without adding checkpoint continuation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ai
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100