Feb 10, 8-9 PM (16)
Feb 10, 9-10 PM (15)
Feb 10, 10-11 PM (40)
Feb 10, 11-12 AM (19)
Feb 11, 12-1 AM (4)
Feb 11, 1-2 AM (12)
Feb 11, 2-3 AM (4)
Feb 11, 3-4 AM (1)
Feb 11, 4-5 AM (6)
Feb 11, 5-6 AM (5)
Feb 11, 6-7 AM (9)
Feb 11, 7-8 AM (13)
Feb 11, 8-9 AM (132)
Feb 11, 9-10 AM (29)
Feb 11, 10-11 AM (37)
Feb 11, 11-12 PM (56)
Feb 11, 12-1 PM (89)
Feb 11, 1-2 PM (63)
Feb 11, 2-3 PM (54)
Feb 11, 3-4 PM (46)
Feb 11, 4-5 PM (54)
Feb 11, 5-6 PM (21)
Feb 11, 6-7 PM (34)
Feb 11, 7-8 PM (24)
Feb 11, 8-9 PM (41)
Feb 11, 9-10 PM (25)
Feb 11, 10-11 PM (47)
Feb 11, 11-12 AM (31)
Feb 12, 12-1 AM (10)
Feb 12, 1-2 AM (6)
Feb 12, 2-3 AM (12)
Feb 12, 3-4 AM (7)
Feb 12, 4-5 AM (8)
Feb 12, 5-6 AM (33)
Feb 12, 6-7 AM (13)
Feb 12, 7-8 AM (20)
Feb 12, 8-9 AM (22)
Feb 12, 9-10 AM (22)
Feb 12, 10-11 AM (46)
Feb 12, 11-12 PM (28)
Feb 12, 12-1 PM (40)
Feb 12, 1-2 PM (63)
Feb 12, 2-3 PM (80)
Feb 12, 3-4 PM (39)
Feb 12, 4-5 PM (49)
Feb 12, 5-6 PM (82)
Feb 12, 6-7 PM (32)
Feb 12, 7-8 PM (29)
Feb 12, 8-9 PM (20)
Feb 12, 9-10 PM (28)
Feb 12, 10-11 PM (50)
Feb 12, 11-12 AM (29)
Feb 13, 12-1 AM (9)
Feb 13, 1-2 AM (9)
Feb 13, 2-3 AM (15)
Feb 13, 3-4 AM (6)
Feb 13, 4-5 AM (5)
Feb 13, 5-6 AM (29)
Feb 13, 6-7 AM (34)
Feb 13, 7-8 AM (31)
Feb 13, 8-9 AM (39)
Feb 13, 9-10 AM (73)
Feb 13, 10-11 AM (73)
Feb 13, 11-12 PM (43)
Feb 13, 12-1 PM (52)
Feb 13, 1-2 PM (59)
Feb 13, 2-3 PM (49)
Feb 13, 3-4 PM (27)
Feb 13, 4-5 PM (27)
Feb 13, 5-6 PM (27)
Feb 13, 6-7 PM (28)
Feb 13, 7-8 PM (24)
Feb 13, 8-9 PM (18)
Feb 13, 9-10 PM (16)
Feb 13, 10-11 PM (28)
Feb 13, 11-12 AM (21)
Feb 14, 12-1 AM (33)
Feb 14, 1-2 AM (9)
Feb 14, 2-3 AM (12)
Feb 14, 3-4 AM (15)
Feb 14, 4-5 AM (30)
Feb 14, 5-6 AM (3)
Feb 14, 6-7 AM (0)
Feb 14, 7-8 AM (5)
Feb 14, 8-9 AM (3)
Feb 14, 9-10 AM (16)
Feb 14, 10-11 AM (17)
Feb 14, 11-12 PM (5)
Feb 14, 12-1 PM (18)
Feb 14, 1-2 PM (14)
Feb 14, 2-3 PM (11)
Feb 14, 3-4 PM (6)
Feb 14, 4-5 PM (18)
Feb 14, 5-6 PM (27)
Feb 14, 6-7 PM (16)
Feb 14, 7-8 PM (5)
Feb 14, 8-9 PM (5)
Feb 14, 9-10 PM (7)
Feb 14, 10-11 PM (23)
Feb 14, 11-12 AM (26)
Feb 15, 12-1 AM (7)
Feb 15, 1-2 AM (4)
Feb 15, 2-3 AM (7)
Feb 15, 3-4 AM (1)
Feb 15, 4-5 AM (1)
Feb 15, 5-6 AM (0)
Feb 15, 6-7 AM (2)
Feb 15, 7-8 AM (1)
Feb 15, 8-9 AM (5)
Feb 15, 9-10 AM (1)
Feb 15, 10-11 AM (2)
Feb 15, 11-12 PM (7)
Feb 15, 12-1 PM (27)
Feb 15, 1-2 PM (6)
Feb 15, 2-3 PM (9)
Feb 15, 3-4 PM (15)
Feb 15, 4-5 PM (6)
Feb 15, 5-6 PM (8)
Feb 15, 6-7 PM (3)
Feb 15, 7-8 PM (20)
Feb 15, 8-9 PM (6)
Feb 15, 9-10 PM (10)
Feb 15, 10-11 PM (21)
Feb 15, 11-12 AM (23)
Feb 16, 12-1 AM (2)
Feb 16, 1-2 AM (8)
Feb 16, 2-3 AM (15)
Feb 16, 3-4 AM (6)
Feb 16, 4-5 AM (1)
Feb 16, 5-6 AM (6)
Feb 16, 6-7 AM (2)
Feb 16, 7-8 AM (14)
Feb 16, 8-9 AM (27)
Feb 16, 9-10 AM (64)
Feb 16, 10-11 AM (50)
Feb 16, 11-12 PM (50)
Feb 16, 12-1 PM (70)
Feb 16, 1-2 PM (90)
Feb 16, 2-3 PM (64)
Feb 16, 3-4 PM (33)
Feb 16, 4-5 PM (26)
Feb 16, 5-6 PM (29)
Feb 16, 6-7 PM (24)
Feb 16, 7-8 PM (22)
Feb 16, 8-9 PM (8)
Feb 16, 9-10 PM (21)
Feb 16, 10-11 PM (31)
Feb 16, 11-12 AM (32)
Feb 17, 12-1 AM (22)
Feb 17, 1-2 AM (3)
Feb 17, 2-3 AM (8)
Feb 17, 3-4 AM (2)
Feb 17, 4-5 AM (4)
Feb 17, 5-6 AM (8)
Feb 17, 6-7 AM (7)
Feb 17, 7-8 AM (17)
Feb 17, 8-9 AM (38)
Feb 17, 9-10 AM (87)
Feb 17, 10-11 AM (36)
Feb 17, 11-12 PM (36)
Feb 17, 12-1 PM (78)
Feb 17, 1-2 PM (35)
Feb 17, 2-3 PM (50)
Feb 17, 3-4 PM (60)
Feb 17, 4-5 PM (39)
Feb 17, 5-6 PM (29)
Feb 17, 6-7 PM (16)
Feb 17, 7-8 PM (2)
Feb 17, 8-9 PM (0)
4,223 commits this week Feb 10, 2026 - Feb 17, 2026
feat(cost-model): add 4-byte worst-case benchmarks and adjust size ranges
Add benchOneTextString4Byte for EncodeUtf8: generates strings using only
4-byte UTF-8 characters (U+10000..U+10FFFF) with char-count x-axis.
For these inputs, ceil(bytes/4) = char_count exactly, so fitting with
denominator 4 should produce parameters matching the char-count model.

Adjust size ranges to match master's effective range (which was doubled
by the old 2*n generator bug):
  oneArgumentSizes: [0,100..10000] -> [0,200..20000] (101 points)
  twoArgumentSizes: [0,250..5000]  -> [0,500..10000] (21 points)
docs: align v2.1.0 guides (drep, staking, pool ops) and env vars
- DRep guide: fix CIP-129 rules from #683 (`type` inferred for prefixed ids, required for raw ids), keep 3 examples, and reorganize sections.

- Staking guide: add explicit prerequisite that reward withdrawal requires active DRep delegation.

- Pool operations guide: add per-operation required metadata and fix governance vote wording/section naming.

- Env vars guide: sync documented defaults with v2.1.0 values.
refactor(cek): fuse free-variable shifting into discharge traversal
Replace the two-pass dischargeCekValue implementation (discharge + shiftTermBy
post-pass) with a single-pass approach that threads a global shift parameter
through goValue/goValEnv. This avoids a separate traversal for shifting and
handles truly free variables (not found in the environment) consistently.

- Add shiftNamedDeBruijn utility to PlutusCore.DeBruijn
- Thread `global` shift parameter through goValue and goValEnv
- Delete the standalone shiftTermBy function
- Add 4 new tests for truly free vars past non-empty environments
fix(cek): shift free variables in VBuiltin during discharge
VBuiltin values can be stored in an environment and later discharged
under additional binders. The previous code returned VBuiltin terms
without shifting, causing variable capture. Add shiftTerm helper to
shift free variables in discharged VBuiltin terms, add bang pattern
to shiftNamedDeBruijn for consistency, and add a VBuiltin test case
reproducing basetunnel's example from issue #7526.
test(cek): add comprehensive discharge tests for free variables
Add 8 test cases covering variable capture scenarios in dischargeCekValue:

- Free variables under 1, 2, and 3 lambdas

- Deeply indexed free variables

- Multiple free variables in the same term

- Nested environment structures

Tests verify that free variables are correctly shifted to prevent capture when terms are discharged from the evaluation environment.

Tests for #7526