diff options
| author | Ben Sima <ben@bensima.com> | 2025-11-26 20:53:24 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-11-26 20:53:24 -0500 |
| commit | 34dbe1dd88bae19b27691e4346421133dea57556 (patch) | |
| tree | 4bc7793d4781bcbba9cf1936dfa662804b0923dd /Omni/Log/Terminal.hs | |
| parent | 0fa8ed4689022cb213de9cfb88a10841c7a03935 (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.hs | 3 |
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 |
