Skip to content

Commit 702998f

Browse files
jzleibocopybara-github
authored andcommitted
Increment version number to 2.4.0
PiperOrigin-RevId: 879717515 Change-Id: I112d031253d9f9acee8d09ba21b592e3fd78b3e1
1 parent 2d4de17 commit 702998f

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed

CHANGELOG.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,74 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/).
66

7+
## [2.4.0] - 2026-03-06
8+
9+
### Changed
10+
11+
- Use InteractiveDocument RNG for diversified answers
12+
- NextActingActiveEntity returns the current player for async threads
13+
- Make more basic entity parameters configurable and give them more sensible
14+
default values. Remove the relevant memories component since it does not really
15+
help here, and it can confuse, especially in simulations that don't have a
16+
concrete concept of time.
17+
- Make LastNObservations component give a more sensible error message if the user passes a wrong type history length.
18+
- Add name of the current active game master to StepData so we can visualize it in the UI.
19+
- Wrap entity_agent `act` and `observe` calls in try...except blocks in order to surface more helpful error messages during async usage.
20+
- Refactor to push "thought chains" concept down into the event_resolution component since it's not a general Concordia concept but rather an implementation detail of a specific component.
21+
- Small tweaks to social media example scenario 1 and the contrib forum component to get it to produce more interesting memes.
22+
- Improve image_text_act component and pass more params through basic_with_image prefab.
23+
- Avoid printing long bytes representations of images.
24+
- Migrated deprecated google.generativeai and vertexai package to the newer google.genai package
25+
- Add deprecation warning on entity_agent.stateless_act, use act instead.
26+
- generic simulation now saves more info in checkpoints
27+
28+
### Added
29+
30+
- Entities can now be passed a custom Measurements object.
31+
- Support images in the generic log viewer html.
32+
- Add log analysis CLI
33+
- Add gpt_model_multimodal.py and rename gemini_model_vision.py to gemini_model_multimodal.py
34+
- Add social media example with image generation.
35+
- Add a text+image generation act component and a prefab that uses it.
36+
- Add dynamic state editing in the visual interface and additional visualization improvements:
37+
- Add async_social_media prefab and its associated forum component to facilitate social media simulations. These parts work well with the asynchronous engine. The forum component is thread safe.
38+
- Add simulation server for play/pause user interface visualization
39+
- Add support for logs produced by the asynchronous engine to the generic log viewer.
40+
- Add asynchronous engine
41+
- Improve logging, AIAgentLogInterface, and the documentation for how to use them.
42+
- Add functionality to allow an interactive GUI view of a running simulation.
43+
Augment the engine API to allow passing a step_controller to start, pause, and
44+
step the simulation from the UI and a step_callback to control what information
45+
is passed to the UI on each step.
46+
- Add tool-use capabilities to InteractiveDocument
47+
- Improve analyze-logs agent skill for use with antigravity, claude code, etc
48+
- Improve the structured logging library and extract out its HTML writing function to a different file.
49+
- Update generic simulation to improve data stored in checkpoints and to pass args needed to allow the visual UI.
50+
51+
### Fixed
52+
53+
- Fix logging for async engine by introducing ReactiveMeasurements.
54+
- Fixing scene serialisation error that was crashing jobs after restoration from a checkpoint.
55+
- Fix broken HTML log rendering due to broken regex in structured_logging_html.py. The regex patterns for matching content_ref and image markdown in the JavaScript rendering code used new RegExp('...') with Python string interpolation, which required backslashes to survive three parsing layers (Python string → JS string → RegExp). The escaping was wrong, producing Unmatched ')' SyntaxError that crashed renderGMLog() before any content was injected into the DOM, resulting in empty simulation HTML logs.
56+
- Fix deduplication for large images in structured_logging.
57+
- Add gemini_model_vision.py, a model wrapper with image generation and image interpretation functionality.
58+
- Added optional event_filter_fn to DisplayEvents component. Can use this for
59+
entity-aware filtering of events (e.g. by location or entity so GM maintains
60+
partial POV) by providing a function that returns True for events it wants
61+
filtered
62+
- Remove engine-level _gm_log_lock from asynchronous engine. Makes thread safety the responsibility of the game master, not the engine (as intended and documented in the class docstring)
63+
- Address PR feedback on diversified RNG usage
64+
- Optimize async engine and fix bugs:
65+
- Fix concurrency bugs in simultaneous engine
66+
- fix: validate entity name from LLM to prevent KeyError in sequential engine
67+
- Make the asynchronous engine handle observations while switching game masters, matching the behavior of the sequential and simultaneous engines.
68+
- The scene tracker now queues premises on the first action of step 0, using a memory tag to ensure it happens only once per scene.
69+
- fix: prevent ZeroDivisionError when scene has no participants
70+
- Add missing variables in get_state/set_state methods for all components.
71+
- Add ability to turn off llm generation of observations to prevent information leakage
72+
- fix type mismatch introduced by recent commit
73+
- Add generic log_viewer.html and simplify the Simulation.play API.
74+
775
## [2.3.1] - 2026-02-04
876

977
### Fixed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _remove_excluded(description: str) -> str:
3333

3434
setuptools.setup(
3535
name='gdm-concordia',
36-
version='2.3.1',
36+
version='2.4.0',
3737
license='Apache 2.0',
3838
license_files=['LICENSE'],
3939
url='https://github.com/google-deepmind/concordia',

0 commit comments

Comments
 (0)