Repository navigation
fix(cluster-tool): mirror sysio.epoch's 7 x 8 schedule ceilings - #154
Conversation
Wire-Network/wire-sysio#692 caps `sysio.epoch::setconfig` at 7 operators per group (Ethereum's) and 8 groups (Solana's). The mirror still carried the old 100 / 255 / 1,000, so a shape the depot now rejects passed here and failed in `setconfig` after the cluster was up. A size derived from an explicit group count could also pass 7: 21 operators over 1 group derived a group of 21. It is now capped at 7, and the extra operators stay unscheduled, as they already do when the size is floored below the roster. The window check is gone: the contract dropped its own, because 7 x 8 bounds the window.
huangminghuang
left a comment
There was a problem hiding this comment.
Requesting changes for one compatibility regression in packages/cluster-tool/src/config/BatchOperatorSchedule.ts. MaxScheduledBatchOperators is part of the published @wireio/cluster-tool API through both the config and root wildcard barrels, and it shipped in v0.1.22. Deleting it makes existing downstream imports fail to compile. Please keep the export as a derived compatibility constant (MaxOperatorsPerEpoch * MaxBatchOperatorGroups, currently 56), optionally deprecated, while removing only the now-redundant total validation. The paired wire-sysio#692 change likewise retains its derived MAX_SCHEDULED_BATCH_OPERATORS constant. The 7 × 8 schedule arithmetic and tests otherwise look sound.
…two ceilings It shipped in `@wireio/cluster-tool` 0.1.22, so removing it would break downstream imports (HM's review). It is now `MaxBatchOperatorGroups * MaxOperatorsPerEpoch` (56), as `sysio.epoch.hpp` derives `MAX_SCHEDULED_BATCH_OPERATORS`; only the separate window check stays removed.
huangminghuang
left a comment
There was a problem hiding this comment.
Re-reviewed at f0d3a5b. The follow-up restores the released MaxScheduledBatchOperators export as the derived 7 × 8 ceiling, fully addressing the compatibility concern. The complete diff matches wire-sysio#692; lint, build, diff checks, and all 39 focused tests passed locally. The remaining Prettier line-wrap observation is non-blocking.
Summary
Pairs with Wire-Network/wire-sysio#692; merge the two together. #692 caps
sysio.epoch::setconfigat 7 operators per group (Ethereum'sOPERATORS_PER_GROUP) and 8 groups (Solana'sMAX_OPERATOR_GROUPS), which keeps the OPERATORS roster inside one Ethereum transaction (WIRE-342).BatchOperatorSchedulemirrors those ceilings so a shape the depot rejects fails at config time instead of insetconfigafter the cluster is up.MaxOperatorsPerEpoch100 → 7 andMaxBatchOperatorGroups255 → 8.MaxScheduledBatchOperatorsstays exported, derived the same way (56).flow-emissions-soak's 7 × 3.Tests
BatchOperatorSchedule.test.ts: an explicit 9 per group and 9 groups are rejected, both ceilings are accepted, a size derived over 1 or 2 groups is capped at 7, and the constants are pinned,MaxScheduledBatchOperatorsat 56. All 39 cases pass, and lint and build are clean.