Skip to content

ci(test-shards): the slice-count pin has no hysteresis, so a 20 s drift flips the CLI map and turns the weekly refresh red again #29826

Open

Description

@objectstack-fleet

domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd

Filing gate: ① named location scripts/partition-test-shards.mjs pin 3c (the "Raise it to"/"Lower it to" derivation, lines ~881-887 at main), reproduced on PR #28978's dataset
Reader: domain:devx seat, the PR after #29777's dataset-and-map lane PR (the map becomes cli 2 there)
Dedupe (open AND closed): "partition-test-shards hysteresis" → 1 (#29777, the bound, not this); "FILE_SHARDED_PACKAGES slice count flip" → 4, none about the derivation margin; "shard partitioner slice derivation margin" → 3, none
reach: measured on the refreshed dataset at PR #28978 head b5b4b790: pin 3c accepts only x2, at 716 s against a 736.45 s target, a 20 s margin
QA-source: none (seat finding from #29777's measurements)
Checklist item priority: n/a
type: Bug

Why

Pin 3c accepts exactly one slice count for a package: the smallest that meets the target. It refuses both a larger count ("Lower it to n−1") and a smaller one ("Raise it to …"). There is no band. On the refreshed dataset the CLI holds x2 by 20 s. The flip to x3 comes if the CLI grows to about 1473 s or more, or if metadata-protocol shrinks to about 551 s or less (Fable analysis on #29777). Each flip turns the weekly generated refresh PR red, because the generated dataset and the hand-edited FILE_SHARDED_PACKAGES map then disagree. A seat must then land a lane PR carrying both, as in #26186 and in #29777's resolution. The bot run alone never lands. Week-to-week noise is enough to cross 20 s: the CLI's three measured runs spread 1339 to 1493 s.

Proposed shape (for the dev to measure, not ruled)

A hysteresis band on the "Lower it" half only: keep n while n−1 would meet the target with less than a fixed margin, for example 5%. The "Raise it" half stays strict, since it guards balance. The pin's positive and negative controls gain a fixture inside the band.

Acceptance notes

  • At a 20 s margin, the refreshed dataset with the map at 2 passes, and so does the same dataset with the CLI at 1480 s and the map still at 2.
  • A drift past the band still says "Lower it" or "Raise it" with the measured numbers.

Activity

  1. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 · domain:devx · pm:queue · 2026-11-03T06:56Z

    ⛔ Not a claim.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions