Feature Summary
Tuple finalization protects its immutable schema with an assert. Optimized Python removes that guard, so a finalized tuple can be finalized again under another schema and its stored values can mutate.
Before: finalize integer tuple as binary -> value changes into pickle bytes
After: finalize an already finalized tuple -> ValueError and original value remains
Reproduction evidence:
Run optimized Python, finalize a tuple under an INTEGER schema, then finalize the same tuple under a BINARY schema.
Version and commit evidence:
1.3.0-incubating-SNAPSHOT (main)
Commit Hash
70c2114
What browsers are you seeing the problem on?
Not browser-specific.
Relevant log output
optimized= True
before= 1 int
after= b'pickle ...' bytes
error_raised= False
Proposed Solution or Design
After: finalize an already finalized tuple -> ValueError and original value remains
Affected Area
Workflow Engine (Amber)
Feature Summary
Tuple finalization protects its immutable schema with an assert. Optimized Python removes that guard, so a finalized tuple can be finalized again under another schema and its stored values can mutate.
Before: finalize integer tuple as binary -> value changes into pickle bytes
After: finalize an already finalized tuple -> ValueError and original value remains
Reproduction evidence:
Run optimized Python, finalize a tuple under an INTEGER schema, then finalize the same tuple under a BINARY schema.
Version and commit evidence:
1.3.0-incubating-SNAPSHOT (main)
Commit Hash
70c2114
What browsers are you seeing the problem on?
Not browser-specific.
Relevant log output
Proposed Solution or Design
After: finalize an already finalized tuple -> ValueError and original value remains
Affected Area
Workflow Engine (Amber)