Skip to content

fix(board): aggregate Legacy assignment-save owners - #3309

Merged
Chris0Jeky merged 2 commits into
mainfrom
codex/3308-legacy-save-owner
Sep 21, 2026
Merged

Chris0Jeky merged 2 commits into
mainfrom
codex/3308-legacy-save-owner

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the Legacy board navigation guard’s save ownership across multiple ColumnLane instances:

  • each lane reports its own assignment-save state to BoardCanvas;
  • BoardCanvas aggregates active owners by stable column id;
  • one idle/settled lane can no longer emit false over another lane’s pending assignment PUT;
  • duplicate true/false events are idempotent and the parent emits only aggregate state transitions.

Tests

BoardCanvasSaveOwnership.spec.ts proves:

  1. two lane owners keep the aggregate true until the final owner settles;
  2. duplicate and unrelated lane events cannot manufacture false transitions.

Verification

Exact head: 76e590bbef559a9f9aab8675815bb0c2fab3313c

  • Smart CI Self-Test run 35523913884: success
  • CI Extended run 35523913985: success
  • Required CI run 35523913988: success across frontend lint/typecheck/build/tests on Ubuntu and Windows, backend unit/API integration, architecture, migrations, containers, security scans, docs governance and E2E smoke.
  • Fresh patch review found no defect in the focused aggregation contract.

Residual

A lane removed by an authoritative remote refresh while its request remains pending needs an owner that outlives the rendered child; that separate cross-component lifecycle case is tracked in #3311 rather than being “fixed” by prematurely pruning the active owner.

Closes #3308

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 20, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-20T18:43:23.436134Z 76e590b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Chris0Jeky Chris0Jeky left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fresh-context review of the complete two-file diff: stable column IDs and an idempotent Set correctly aggregate concurrent lane saves; an idle or duplicate event cannot clear another lane's unanswered PUT. Both regressions exercise emitted aggregate transitions. No blocker in this focused fix.

The longer-lived owner needed when a rendered lane disappears is explicitly not solved here and is already implemented separately in child #3313 for #3311. That existing follow-up must be reconciled and qualified against main after this parent lands, not replaced by a duplicate PR.

Re-read exact-head CI 35523913988, Self-Test 35523913884, and Extended 35523913985/35529843949: all successful. Codex completed at 76e590b without findings. Normal expected-head merge under the current maintainer instruction; no local frontend execution is claimed.

@Chris0Jeky
Chris0Jeky merged commit 68ffe97 into main Sep 21, 2026
54 of 55 checks passed
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 21, 2026
@Chris0Jeky
Chris0Jeky deleted the codex/3308-legacy-save-owner branch September 21, 2026 23:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Legacy board assignment-save guard is last-event-wins across column lanes

1 participant