summaryrefslogtreecommitdiff
path: root/Omni/Log/Terminal.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-26 20:53:24 -0500
committerBen Sima <ben@bensima.com>2025-11-26 20:53:24 -0500
commit34dbe1dd88bae19b27691e4346421133dea57556 (patch)
tree4bc7793d4781bcbba9cf1936dfa662804b0923dd /Omni/Log/Terminal.hs
parent0fa8ed4689022cb213de9cfb88a10841c7a03935 (diff)
Bild: pipelined analyze→build architecture with multi-line UI
Implement STM-based pipeline that allows per-target progression through build phases (analyze → wait for deps → build) with concurrent workers. Key changes: - TargetState enum tracks each target through pipeline stages - Coordinator manages state, analyze queue, build queue coordination - pipelineAnalysisWorker/pipelineBuildWorker pull from queues concurrently - promoteWaiters unblocks targets when their dependencies complete UI improvements: - Multi-line mode reserves N lines for N targets, updates in-place - Remove narrow terminal (<80 col) restriction for multi-line mode - Add Skipped state with yellow [_] for non-buildable files - Remove extra blank line at start of output State symbols: [.] Pending, [+] Analyzing, [~] Building, [✓] Success (green), [x] Failed (red), [_] Skipped (yellow)
Diffstat (limited to 'Omni/Log/Terminal.hs')
-rw-r--r--Omni/Log/Terminal.hs3
1 files changed, 1 insertions, 2 deletions
diff --git a/Omni/Log/Terminal.hs b/Omni/Log/Terminal.hs
index 6832d17..1a4c717 100644
--- a/Omni/Log/Terminal.hs
+++ b/Omni/Log/Terminal.hs
@@ -54,10 +54,9 @@ detectTerminal = do
Just (h, w) -> (w, h)
Nothing -> (80, 24) -- sensible default
- -- Determine mode based on terminal width
+ -- Determine mode based on ANSI support
let mode
| not supportsANSI = SingleLine -- Fallback to single line for dumb terminals
- | width < 80 = SingleLine
| otherwise = MultiLine
pure