Skip to content

Fix pipeline group navigation in ultraplan sidebar#699

Merged
Iron-Ham merged 1 commit into
mainfrom
Iron-Ham/fix-pipeline-group-navigation
Mar 23, 2026
Merged

Fix pipeline group navigation in ultraplan sidebar#699
Iron-Ham merged 1 commit into
mainfrom
Iron-Ham/fix-pipeline-group-navigation

Conversation

@Iron-Ham
Copy link
Copy Markdown
Owner

Summary

  • Root cause: session.CurrentGroup was never advanced in the pipeline/bridge execution path. The legacy ExecutionOrchestrator.checkAndAdvanceGroup() updates it when groups complete, but the pipeline path bypasses this entirely — tasks flow through bridge → team → pipeline, never triggering checkAndAdvanceGroup. This left CurrentGroup at 0 permanently, causing IsGroupCollapsed(groupIdx, 0) to return true for all groups except Group 1, hiding them from h/l sidebar navigation.
  • Fix: AssignTaskInstance now advances CurrentGroup forward (monotonic high-water-mark) when a task from a later execution group starts. This correctly models the pipeline's concurrent execution where tasks from multiple groups can run simultaneously.
  • Documents high-water-mark semantics on the CurrentGroup field definition
  • Updates the "Pipeline path must mirror" known pitfall in CLAUDE.md

Test plan

  • New test: advances CurrentGroup when task belongs to later group — verifies forward advancement across 3 groups
  • New test: does not regress CurrentGroup when earlier group task starts — verifies monotonic behavior
  • New test: leaves CurrentGroup unchanged when task not in any group — verifies -1 guard
  • New test: concurrent calls advance CurrentGroup correctly under race — verifies correctness with 4 concurrent goroutines across 4 groups
  • All existing TestCoordinator_AssignTaskInstance tests pass
  • Full ./internal/orchestrator/... test suite passes with -race
  • gofmt, go vet clean

The pipeline/bridge execution path never updated session.CurrentGroup,
leaving it at 0 permanently. This caused IsGroupCollapsed to return
true for all groups except Group 1, hiding later groups from h/l
navigation in the ultraplan sidebar.

AssignTaskInstance now advances CurrentGroup forward (monotonic
high-water-mark) when a task from a later execution group starts.
This differs from the legacy path's sequential advancement via
checkAndAdvanceGroup because the pipeline resolves dependencies at
the task level, allowing tasks from multiple groups to run
concurrently.
@Iron-Ham Iron-Ham marked this pull request as ready for review March 23, 2026 14:35
@Iron-Ham Iron-Ham merged commit 0eebf2b into main Mar 23, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant