Integrate reviewed product, dependency and CI PRs - #2815
Conversation
Bumps the npm-minor-patch group in /frontend/taskdeck-web with 10 updates: | Package | From | To | | --- | --- | --- | | [@material-symbols/font-200](https://github.com/marella/material-symbols/tree/HEAD/font/200) | `0.47.0` | `0.47.1` | | [vue-router](https://github.com/vuejs/router) | `5.3.0` | `5.3.1` | | [@storybook/vue3-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/vue3-vite) | `10.5.10` | `10.6.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.68.0` | `8.69.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.68.0` | `8.69.0` | | [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) | `2.11.20` | `2.11.21` | | [globals](https://github.com/sindresorhus/globals) | `17.11.0` | `17.12.0` | | [happy-dom](https://github.com/capricorn86/happy-dom) | `20.11.12` | `20.14.0` | | [postcss](https://github.com/postcss/postcss) | `8.5.26` | `8.5.28` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `10.5.10` | `10.6.0` | Updates `@material-symbols/font-200` from 0.47.0 to 0.47.1 - [Release notes](https://github.com/marella/material-symbols/releases) - [Commits](https://github.com/marella/material-symbols/commits/v0.47.1/font/200) Updates `vue-router` from 5.3.0 to 5.3.1 - [Release notes](https://github.com/vuejs/router/releases) - [Commits](vuejs/router@v5.3.0...v5.3.1) Updates `@storybook/vue3-vite` from 10.5.10 to 10.6.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v10.6.0/code/frameworks/vue3-vite) Updates `@typescript-eslint/eslint-plugin` from 8.68.0 to 8.69.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.68.0 to 8.69.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/parser) Updates `baseline-browser-mapping` from 2.11.20 to 2.11.21 - [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases) - [Commits](web-platform-dx/baseline-browser-mapping@v2.11.20...v2.11.21) Updates `globals` from 17.11.0 to 17.12.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v17.11.0...v17.12.0) Updates `happy-dom` from 20.11.12 to 20.14.0 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](capricorn86/happy-dom@v20.11.12...v20.14.0) Updates `postcss` from 8.5.26 to 8.5.28 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.26...8.5.28) Updates `storybook` from 10.5.10 to 10.6.0 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v10.6.0/code/core) --- updated-dependencies: - dependency-name: "@material-symbols/font-200" dependency-version: 0.47.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: vue-router dependency-version: 5.3.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: "@storybook/vue3-vite" dependency-version: 10.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.69.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: "@typescript-eslint/parser" dependency-version: 8.69.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: baseline-browser-mapping dependency-version: 2.11.21 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: globals dependency-version: 17.12.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: happy-dom dependency-version: 20.14.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch - dependency-name: postcss dependency-version: 8.5.28 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-minor-patch - dependency-name: storybook dependency-version: 10.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-minor-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…ordinator-integration
|
Final bounded backend fix independently re-reviewed by Terra: error-envelope and oversize-terminal regressions passed 2/2; no CRITICAL/HIGH findings. The exact code is preserved by cherry-pick 36da066. All four delegated source control candidates have now passed their refreshed ci-required.yml runs: #2769 34334852328, #2803 34334853279, #2791 34335018615, #2792 34334854411. The final combined head still requires its own hosted run; source green checks do not replace that proof. #2807 post-merge run34334605677 also passed. |
…focus', 'origin/issue-2090/palette-focus-return' and 'origin/issue-1307/ruled-batch-execute' into codex/product-pr-closeout
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c362e56b0f
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (sendingMessage.value) return | ||
|
|
||
| const sessionId = selectedSession.value.id | ||
| try { | ||
| sendingMessage.value = true | ||
| const sessionId = selectedSession.value.id | ||
| await chatApi.sendMessage(sessionId, { | ||
| content, | ||
| requestProposal: requestProposal.value, | ||
| }) | ||
| const sentMessage = await chatApi.sendMessage(sessionId, { content }) |
There was a problem hiding this comment.
Block sends while board binding is in flight
When a board bind and a message send overlap, this guard permits the send because it checks only sendingMessage, while the Link button likewise remains enabled during a send. The message request can therefore observe the session as unbound and return another board-needed outcome; if its refresh completes before the bind, the older full-session snapshot returned by bindBoard can then overwrite selectedSession and hide the completed turn until reload. Disable both operations while either request is active, or merge/refresh the binding result instead of replacing the transcript snapshot.
AGENTS.md reference: frontend/AGENTS.md:L5-L5
Useful? React with 👍 / 👎.
| const eligibleBoards = computed(() => availableBoards.value.filter((board) => ( | ||
| !board.isArchived && board.canWrite !== false | ||
| ))) |
There was a problem hiding this comment.
Load all eligible boards before declaring the list empty
For users with more than 200 readable boards, availableBoards contains only the first page because boardsApi.getBoards() requests offset 0 with limit 200. If the writable board is older than that page—for example, the first 200 memberships are viewer-only—this derived list is empty and the recovery panel falsely states that no editable boards exist, with no way to select the actual writable board. Paginate the board lookup or provide server-side writable-board search before treating this as a successful empty state.
AGENTS.md reference: frontend/AGENTS.md:L5-L5
Useful? React with 👍 / 👎.
|
Final frozen head 03f55f2 includes the three parallel-lane arrivals #2816/#2817/#2818. Independent Terra integration review verifies source ancestry/blob parity and no CRITICAL/HIGH interaction. Combined focused frontend tests pass 226/226; Golden Principles/docs checks pass. Two final factual documentation updates follow that reviewed integration and change no code or authority. Sandbox P2 is triaged on #2818/#1307 against explicit ADR-0068 read grants; strict write policy remains unchanged. No additional incoming candidates will change this qualification head. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 03f55f223d
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| paginate(requestJson, runPath(NIGHTLY_WORKFLOW), 'workflow_runs', MAX_RUN_PAGES), | ||
| paginate(requestJson, runPath(QUALITY_WORKFLOW), 'workflow_runs', MAX_RUN_PAGES), |
There was a problem hiding this comment.
Bound run history before exhaustive pagination
Once either workflow has more than 200 retained successful runs, these calls ask paginate to exhaust the collection with MAX_RUN_PAGES = 2; it therefore raises metadata-pagination-limit before selectQualifiedPair applies its intended 14-candidate bound. From that point every nightly observation falls back to an unavailable baseline and a full sweep even when the newest runs contain a valid pair. Limit the API query or stop pagination after enough recent candidates have been collected.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Source-confirmed MEDIUM, tracked on #2334 with a >200 retained-run fixture. The failure path conservatively selects full sweep and leaves unconditional deep jobs intact; it is an observation availability/efficiency defect, not lost qualification. No new repair round for this advisory.
| var clarificationRounds = ClarificationDetector.CountClarificationRounds(session.Messages.ToList()); | ||
| var hasPendingClarification = HasPendingClarification(session.Messages); | ||
| var isSkipRequest = hasPendingClarification && ClarificationDetector.IsSkipRequest(dto.Content); | ||
| var forceBestEffort = isSkipRequest || ClarificationDetector.ShouldForceBestEffort(session.Messages.ToList()); | ||
| var actionAttemptContent = BuildActionAttemptContent(session.Messages, dto.Content, forceBestEffort); |
There was a problem hiding this comment.
Sort messages before rebuilding clarification state
After a session is reloaded, GetByIdWithMessagesAsync populates Messages through an unordered EF Include, but this new block treats the collection tail as chronological in HasPendingClarification, CountClarificationRounds, and BuildActionAttemptContent. If dependent rows arrive out of insertion order, a user's answer to the one allowed clarification can be treated as a fresh turn or parsed without the original instruction, causing another clarification or the wrong proposal attempt. Establish a deterministic CreatedAt order before running this causal logic.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Source-confirmed MEDIUM causal-order fragility, tracked on #2004 with scrambled-load and timestamp-tie regression criteria. No fresh runtime reproduction or production failure-rate claim; proposal-first review remains intact. Retained outside the completed final terminal-path repair under the review ceiling.
|
Final base/CI revalidation after #2817 independently landed: head remains 03f55f2. Passing required run34339766712 checked out merge commit8111deccab9d784ce6cc7e282ca6ff8c381c493c. The current GitHub merge ref48438cb820212659f84cb6eb117ecb9a91c6dd29 combines current main64508d3e2 with the same head. Both commits and HEAD have identical tree3a1a2b7bdbc3e6f844a411abd52a1c5f694bd458; git diff --exit-code is clean. Fresh independent Terra base reconciliation confirms no changed source, dependency, workflow/configuration or test input: the palette source was already included. This explicitly revalidates passing CI against the regenerated candidate rather than claiming a rerun. All final comments are triaged; no C/H blocker remains. |
Integrates thirteen reviewed candidates with all source commits preserved: #2790, #2797, #2810, #2811, #2812, #2814, #2769, #2803, #2791, #2792, #2816, #2817 and #2818. One final hosted run qualifies their combined tree against main 7ac99a7, avoiding repeated sibling-base invalidation.
The maintainer explicitly delegated final review and merge of the four dependency/CI candidates in-session on September 9, with their review afterward. The exact ruling is recorded in OUTSTANDING_TASKS.md; separate historical disclosures, settings and release decisions remain open.
The final chat repair preserves failed proposal receipts for thrown and returned errors through provider degradation, and emits exactly one completion for oversized non-terminal deltas. Both final regressions failed before correction and pass afterward; full ChatService filter 122/122 passes. Manual procedures now describe default proposal attempts.
Independent Terra source/fix, product-interaction, dependency-union and CI-interaction reviews are clear of CRITICAL/HIGH findings. Combined local checks pass: npm ci, typecheck, 19 branding/version-isolation/transport tests, 226 combined Review/palette/batch-Apply tests, 148 Smart CI tests, docs links (672 files), docs governance and diff checks. The four control source heads also passed their refreshed required CI. Final combined-head hosted CI remains required; earlier green runs do not replace it.
The three final parallel-lane additions preserve exact source blobs, have their source reviews recorded, and passed a fresh Terra interaction review. Their MEDIUM follow-ups remain tracked on #2215, #2090 and #1307. No release, private-data migration or live-provider acceptance is claimed. MEDIUM residuals remain explicitly tracked on the source issues. The three individual Vitest PRs will be closed as superseded only after this integration lands.
Refs #2795, #2235, #2004, #2214, #2775, #2257, #2241, #2334, #2335, #2337.