Status: done
Canonical equality now uses strict recursive JSON types, and unique scope tokens are removed on release while still preventing old late tasks from storing into reused scopes. Final bounded gate approved.
Close the final bounded batch findings: canonical identity must use strict JSON type equality, and releasing a scope must retain no permanent generation tombstone.
IntEnum(1), True, 1, and 1.0 must not be conflated unless a declared normalizer intentionally canonicalizes them.release_scope() removes the scope token and associated maps;src/agent_lab/application/events/batch.pytests/test_event_batch.pyUV_CACHE_DIR=.uv-cache uv run pytest tests/test_event_batch.py -qUV_CACHE_DIR=.uv-cache uv run pytestgit diff --check