Skip to content

Integrate reviewed product, dependency and CI PRs - #2815

Merged
Chris0Jeky merged 65 commits into
mainfrom
codex/product-pr-closeout
Sep 9, 2026
Merged

Integrate reviewed product, dependency and CI PRs#2815
Chris0Jeky merged 65 commits into
mainfrom
codex/product-pr-closeout

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 9, 2026

Copy link
Copy Markdown
Owner

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.

dependabot Bot and others added 30 commits September 7, 2026 11:09
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>
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

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.

@Chris0Jeky Chris0Jeky changed the title Integrate reviewed product PRs and degraded chat receipt repair Integrate reviewed product, dependency and CI PRs Sep 9, 2026
…focus', 'origin/issue-2090/palette-focus-return' and 'origin/issue-1307/ruled-batch-execute' into codex/product-pr-closeout

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 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".

Comment on lines +315 to +320
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 })

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

Comment on lines +48 to +50
const eligibleBoards = computed(() => availableBoards.value.filter((board) => (
!board.isArchived && board.canWrite !== false
)))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 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".

Comment on lines +410 to +411
paginate(requestJson, runPath(NIGHTLY_WORKFLOW), 'workflow_runs', MAX_RUN_PAGES),
paginate(requestJson, runPath(QUALITY_WORKFLOW), 'workflow_runs', MAX_RUN_PAGES),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

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.

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.

Comment on lines +279 to +283
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);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

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.

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.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

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.

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.

1 participant