You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found during FR of #216 (time_series_classification) on develop, 2026-07-10.
What
The CLI data ingest local dry-run preflight for time_series_classification does not mirror two in-cluster (data-ingestors #359 / WS1) validators, so two malformed-TSC shapes pass local preflight but are rejected in-cluster:
Mid-sequence label flip — a sequence_id group whose label is not constant across its rows. In-cluster: LabelConstantWithinGroupValidator → reject. CLI local: accept.
Verified by running the real di#359 validators at the pinned SHA c38c8ad against the parity fixtures — both reject in-cluster; the CLI's PreflightDataset only previews CheckSequenceSchemaColumns + CheckSequenceRows (null/empty group id) + the label-diversity gate, with no per-group label-constancy or time-order scan.
Cost
A customer whose CSV has either issue (realistic — e.g. unsorted-within-sequence timestamps are a common data-hygiene defect) burns a full dataset upload before the cluster rejects it. No data corruption (the cluster stays the authority; di#359 stores a sequence whole-or-nothing), and the cluster's rejection message is actionable ("sort each sequence's rows ascending and re-run") — but it defeats the dry-run's catch-early promise for TSC.
Status / context
Deliberate + test-locked for now: both divergences are documented in the parity cases.json as expected accept→reject mismatches, and the parity harness fails if the ingestor verdict ever flips. Same trade-off class as the pre-existing imgc-too-small case.
Add per-group label-constancy + per-group time-order previews to the CLI's TSC preflight to mirror LabelConstantWithinGroupValidator + PerGroupTimeOrderedValidator (bounded chunked scan, grouped by sequence_id, same messages the cluster emits). Same parity discipline as the existing preflight-parity harness.
Found during FR of #216 (time_series_classification) on
develop, 2026-07-10.What
The CLI
data ingestlocal dry-run preflight fortime_series_classificationdoes not mirror two in-cluster (data-ingestors #359 / WS1) validators, so two malformed-TSC shapes pass local preflight but are rejected in-cluster:sequence_idgroup whoselabelis not constant across its rows. In-cluster:LabelConstantWithinGroupValidator→ reject. CLI local: accept.timestamprows aren't ascending. In-cluster:PerGroupTimeOrderedValidator→ reject. CLI local: accept.Verified by running the real di#359 validators at the pinned SHA
c38c8adagainst the parity fixtures — both reject in-cluster; the CLI'sPreflightDatasetonly previewsCheckSequenceSchemaColumns+CheckSequenceRows(null/empty group id) + the label-diversity gate, with no per-group label-constancy or time-order scan.Cost
A customer whose CSV has either issue (realistic — e.g. unsorted-within-sequence timestamps are a common data-hygiene defect) burns a full dataset upload before the cluster rejects it. No data corruption (the cluster stays the authority; di#359 stores a sequence whole-or-nothing), and the cluster's rejection message is actionable ("sort each sequence's rows ascending and re-run") — but it defeats the dry-run's catch-early promise for TSC.
Status / context
cases.jsonas expected accept→reject mismatches, and the parity harness fails if the ingestor verdict ever flips. Same trade-off class as the pre-existingimgc-too-smallcase.Fix
Add per-group label-constancy + per-group time-order previews to the CLI's TSC preflight to mirror
LabelConstantWithinGroupValidator+PerGroupTimeOrderedValidator(bounded chunked scan, grouped bysequence_id, same messages the cluster emits). Same parity discipline as the existing preflight-parity harness.