diff --git a/packages/dashboard/app/components/WorkflowNodeEditor.css b/packages/dashboard/app/components/WorkflowNodeEditor.css index 4aec798ec2..697b04b963 100644 --- a/packages/dashboard/app/components/WorkflowNodeEditor.css +++ b/packages/dashboard/app/components/WorkflowNodeEditor.css @@ -1398,6 +1398,7 @@ .wf-editor-body--editor-stage .wf-editor-inspector { width: 100%; min-width: 0; + max-height: none; flex: 1 1 auto; min-height: 0; border-left: none; diff --git a/packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts b/packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts index 17605ecdf0..d71fdcb9d7 100644 --- a/packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts +++ b/packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts @@ -96,6 +96,7 @@ describe("WorkflowNodeEditor mobile CSS contract", () => { const inspectorRule = findRule(mobileBlocks, /\.wf-editor-body--editor-stage \.wf-editor-inspector\s*\{[^}]*\}/); expect(inspectorRule).toMatch(/width\s*:\s*100%\s*;/); + expect(inspectorRule).toMatch(/max-height\s*:\s*none\s*;/); expect(inspectorRule).toMatch(/flex\s*:\s*1 1 auto\s*;/); expect(inspectorRule).toMatch(/min-height\s*:\s*0\s*;/); diff --git a/packages/dashboard/vitest.config.ts b/packages/dashboard/vitest.config.ts index 676ff87fa5..95320c0178 100644 --- a/packages/dashboard/vitest.config.ts +++ b/packages/dashboard/vitest.config.ts @@ -231,7 +231,7 @@ const qualityAppComponentBatchBTests = buildComponentQualityInclude(batchedQuali const qualityAppAppOnlyTests = ["app/components/__tests__/App.test.tsx"]; const qualityAppChatOnlyTests = ["app/components/__tests__/ChatView.test.tsx"]; const qualityAppSettingsOnlyTests = ["app/components/__tests__/SettingsModal.test.tsx"]; -const quarantinedDashboardTests: string[] = []; +const quarantinedDashboardTests: string[] = ["app/components/__tests__/Board.test.tsx"]; const qualityApiTests = [ // Critical HTTP/server behavior: auth, task/project/settings mutation, diff --git a/scripts/lib/test-quarantine.json b/scripts/lib/test-quarantine.json index 39eac9c428..4837cf4924 100644 --- a/scripts/lib/test-quarantine.json +++ b/scripts/lib/test-quarantine.json @@ -1,4 +1,10 @@ { "$comment": "Flaky-test quarantine ledger (deletion ratchet — see AGENTS.md 'Flaky tests: quarantine on sight' and docs/testing.md 'Quarantine ledger and the deletion ratchet'). A test observed failing without a corresponding real bug is quarantined ON SIGHT: add an entry here AND a matching one-line `exclude` entry in that package's vitest config, in the same commit. Every entry needs a non-empty `reason` (link the failing run) and a `quarantinedAt` date — the entry expires 14 days later, at which point the test file is DELETED unless someone rescues it with evidence it catches real regressions plus a root-cause fix (never appeasement). There is deliberately no loader module and no automation around this file: it is a dated record, the vitest config exclude is the mechanism, and the sweep is policy executed by whoever touches the suite.", - "entries": [] + "entries": [ + { + "file": "packages/dashboard/app/components/__tests__/Board.test.tsx", + "reason": "FN-6154 local pnpm test run on 2026-06-09 failed in 'Board > multi-lane board (U9, flag ON) > preserves workflow toolbar partial action visibility' with missing .board-workflow-toolbar; unrelated to WorkflowNodeEditor CSS max-height change.", + "quarantinedAt": "2026-06-09" + } + ] }