fix(workspace): stop false stage-mismatch warning, cap info panel height

Undeclared lanes default stage to the DB sentinel "idle", which never
matches a pipeline node — skip the mismatch warning in that case
instead of showing a false lane-action-failed banner. Also cap the
expandable lane-info block so it can't squeeze the console/split-view
out of the fixed-height detail panel.
This commit is contained in:
2026-08-14 16:56:52 +07:00
parent a2b5fa4669
commit 3ae0d00b0c
+6 -3
View File
@@ -439,7 +439,10 @@ export function Workspace() {
try { try {
const { lane } = await api.lanes.update(id, { pipeline }); const { lane } = await api.lanes.update(id, { pipeline });
await refreshLanes(); await refreshLanes();
if (!lane.pipeline_nodes.some((n) => n.state === "current")) { // `stage` defaults to the DB sentinel "idle" until a driving session ever
// calls `ccam stage` — that's the normal state for most lanes and never
// matches a real pipeline node, so it isn't a mismatch worth surfacing.
if (lane.stage !== "idle" && !lane.pipeline_nodes.some((n) => n.state === "current")) {
setLaneActionError( setLaneActionError(
tLanes("pipelinePicker.stageMismatch", { tLanes("pipelinePicker.stageMismatch", {
stage: lane.stage, stage: lane.stage,
@@ -559,7 +562,7 @@ export function Workspace() {
</div> </div>
</div> </div>
{showInfo && ( {showInfo && (
<> <div className="max-h-[45vh] shrink-0 overflow-y-auto">
<div className="mb-3 flex flex-wrap items-baseline gap-2"> <div className="mb-3 flex flex-wrap items-baseline gap-2">
<span className="text-[11px] font-semibold uppercase tracking-widest text-fg-muted"> <span className="text-[11px] font-semibold uppercase tracking-widest text-fg-muted">
{tLanes("cardId", { id: currentLane.id })} {tLanes("cardId", { id: currentLane.id })}
@@ -688,7 +691,7 @@ export function Workspace() {
))} ))}
</div> </div>
)} )}
</> </div>
)} )}
<div className="flex min-h-0 flex-1 flex-col gap-2 border-t border-border pt-3"> <div className="flex min-h-0 flex-1 flex-col gap-2 border-t border-border pt-3">
<ConsoleArea <ConsoleArea