mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* fix(web): keep the switcher row menu open under transcript scroll, drop the selected-card ring, draw the queue drop bar between cards OPEND-3283: the project switcher's row ⋮ menu closed on ANY captured document scroll, so the chat transcript auto-scrolling under a running turn dismissed it before it could be used. A scroll now only dismisses the menu when it moves the trigger (the document, or a scroll container that contains the ⋮ button). OPEND-3284: a selected project card in multi-select mode no longer draws the hairline ring around the whole card (grid and list). The check badge is the selected state. OPEND-3203: the drag-reorder insertion bar was a pseudo-element on the row inside the card, clipped by the row's overflow: hidden; only its halo leaked back inside the card. QueuedSendStack now draws one bar in the column, in the gap between the two cards. * fix(web): keep the Test campaign modal open across a language switch The Test runtime republishes with no decision while it reloads for a new locale, and ProductionCampaignModal dropped the open presentation's claim in that window. Once the activity had been recorded as displayed, the decision that came back for the new locale read as a new offer of a recorded activity and stayed closed — every language switch turned into a permanent close. The claim now survives a reload of the same deployment (locale swap, lease renewal) and is released by a dismissal, the runtime going away, or a different deployment, so a redeployment of a recorded activity still stays closed as before. TestCampaignHosts "switches all Test placements together when the client language changes" flaked on CI on exactly this: whether the visibility frame had recorded the modal before the switch depended on runner speed. The spec now waits for that frame so it covers the recorded case deterministically. * fix(web): scope campaign claims to deployments and use chat theme tokens Generated-By: looper 0.13.0 (runner=fixer, agent=codex)