[taskboard] tighten truenas audit candidate filtering

This commit is contained in:
2026-03-07 14:50:22 -08:00
parent b3a6c4bafb
commit 53259f6b37

View File

@@ -193,6 +193,8 @@ const TRUENAS_SIGNAL_PATTERNS: Array<{
const ACTIVE_TRUENAS_SCAN_PATHS = [
"homelab/ubuntu",
"homelab/grizzley",
"homelab/inventory/ubuntu.json",
"homelab/inventory/grizzley.json",
"homelab/truenas/AGENTS.md",
"homelab/AGENTS.md",
"homelab/catalog",
@@ -346,6 +348,8 @@ async function runTrueNasDatasetAudit(taskId: number, host: string, user: string
}))
.filter(({ activeRefs }) => activeRefs.length > 0);
const activeDatasetNames = new Set(activeDatasets.map(({ dataset }) => dataset.name));
const reviewCandidates = datasets
.map((dataset) => ({
dataset,
@@ -358,12 +362,22 @@ async function runTrueNasDatasetAudit(taskId: number, host: string, user: string
datasetHierarchyName(candidate.name).startsWith(`${datasetHierarchyName(dataset.name)}/`) &&
summarizeSignals(activeSignals, candidate.name).length > 0,
),
hasActiveAncestor: [...activeDatasetNames].some(
(activeDatasetName) =>
dataset.name !== activeDatasetName &&
datasetHierarchyName(dataset.name).startsWith(`${datasetHierarchyName(activeDatasetName)}/`),
),
}))
.filter(({ dataset, activeRefs, hasActiveChild }) => {
if (dataset.name === "TrueNAS" || dataset.name === "RPiPool" || dataset.name.includes("/.system")) {
.filter(({ dataset, activeRefs, hasActiveChild, hasActiveAncestor }) => {
if (
dataset.name === "TrueNAS" ||
dataset.name === "RPiPool" ||
dataset.name.startsWith("boot-pool") ||
dataset.name.includes("/.system")
) {
return false;
}
return activeRefs.length === 0 && !hasActiveChild;
return activeRefs.length === 0 && !hasActiveChild && !hasActiveAncestor;
});
const detailSections = [