Merge pull request #320 from unslothai/fix/stale-dataset-split-on-switch

Fix/stale dataset split on switch
This commit is contained in:
Roland Tannous 2026-03-09 00:14:09 +04:00 committed by GitHub
commit 2c879bf4a4
2 changed files with 22 additions and 13 deletions

View file

@ -48,33 +48,34 @@ export function HfDatasetSubsetSplitSelectors({
const {
subsets: hfSubsets,
splits: hfSplits,
hasMultipleSubsets,
isLoading,
error,
} = useHfDatasetSplits(enabled ? datasetName : null, datasetSubset, {
accessToken,
});
// Auto-select subset and split in one pass to avoid racing effects
useEffect(() => {
if (hfSubsets.length === 1 && datasetSubset !== hfSubsets[0]) {
setDatasetSubset(hfSubsets[0]);
}
}, [hfSubsets, datasetSubset, setDatasetSubset]);
if (hfSubsets.length === 0) return;
useEffect(() => {
// --- subset ---
if (!datasetSubset || !hfSubsets.includes(datasetSubset)) {
const pick = hfSubsets.includes("default") ? "default" : hfSubsets[0];
setDatasetSubset(pick);
return;
}
// --- split (only once subset is settled) ---
if (hfSplits.length === 0) return;
if (hasMultipleSubsets && !datasetSubset) return;
if (hfSplits.length === 1 && datasetSplit !== hfSplits[0]) {
setDatasetSplit(hfSplits[0]);
} else if (!datasetSplit && hfSplits.includes("train")) {
setDatasetSplit("train");
} else if (!datasetSplit) {
setDatasetSplit(hfSplits[0]);
if (!datasetSplit || !hfSplits.includes(datasetSplit)) {
const pick = hfSplits.includes("train") ? "train" : hfSplits[0];
setDatasetSplit(pick);
}
}, [
hfSubsets,
hfSplits,
hasMultipleSubsets,
datasetSubset,
setDatasetSubset,
datasetSplit,
setDatasetSplit,
]);

View file

@ -86,6 +86,14 @@ export function useHfDatasetSplits(
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
const [prevDatasetName, setPrevDatasetName] = useState(datasetName);
if (datasetName !== prevDatasetName) {
setPrevDatasetName(datasetName);
setEntries([]);
setError(null);
}
const accessToken = options?.accessToken;
const fetchSplits = useCallback(