You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+68Lines changed: 68 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,74 @@ All notable changes to this project will be documented in this file.
4
4
5
5
The format is based on [Keep a Changelog](http://keepachangelog.com/).
6
6
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.
0 commit comments