Skip to content

Add card estimates and derived participant rollups - #3054

Merged
Chris0Jeky merged 67 commits into
mainfrom
codex/2093-estimate-integration
Sep 12, 2026
Merged

Chris0Jeky merged 67 commits into
mainfrom
codex/2093-estimate-integration

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Cards now carry an optional effort estimate, and board readers can inspect current board, column, participant and unassigned totals. Blank remains unknown, explicit zero stays known, and hours/minutes inputs are available in shared card details and Paper/Legacy quick-create. Multiple assignees each receive the full estimate with a visible overlap explanation; parent estimates remain independent.

The complete vertical covers direct writes, reviewed proposals, chat/MCP, audit/provenance, board/account portability and additive SQLite migration/rollback. Intentional estimate changes retain caller version pins and explicit set/clear semantics. Same-valued proposals also perform an atomic persisted-version check before accepting a no-op, preserving unchanged versions and avoiding false successful receipts after competing writes. Ordered same-card operations and planned creates remain supported.

The editor preserves newer drafts while advancing successful-save versions. Quick-create reconciles with a detail payload that arrives before its POST continuation, preventing duplicate cards/counts while preserving fresh-store creation and navigation ownership. The integration also preserves reviewed source PRs #3053 (planning/backup references) and #3055 (permission recovery).

Validation:

  • Focused domain/application/API, real SQLite concurrency and migration/rollback, portability and MCP transport/scope tests pass. Independent reviews cover the core contract, portability/MCP, editor, proposal/rollup integration and both final correctness fixes.
  • Full backend: 9,727 passed, 34 existing skips and four architecture failures. The bounded declaration/inventory correction passes 28 architecture tests (one existing skip) and four rollup API tests; later hosted backend/API runs passed. The broad local run was not repeated after the bounded corrections.
  • Full frontend: 6,856 passed / three existing skips across 440 files; typecheck/build pass. Final panel/permission integration passes 106 focused tests. Hosted Windows/Linux exposed the first reconciliation fix's fresh-store regression; the final fix passes all 50 direct/integration store tests.
  • Real API + SQLite + Chromium: both Legacy/Paper estimate journeys pass on the final frontend (53.4 seconds), covering unknown/zero/90 persistence, clear/resave, exact totals and assignee overlap, edit/move/archive/refresh, Viewer access, 390px layout and Escape focus. Two Paper focus setup regressions were reproduced and repaired without weakening focus/J/Enter assertions; both pass (17.9 seconds).
  • Same-valued proposal race: two real SQLite competing-writer controls fail with HTTP 200/Applied on the original branch and pass with HTTP 409 after the fix. All 36 focused service/API/persistence tests pass; independent review is clean and reviewed source bytes match the integrated Git blobs.
  • Documentation links and GitHub operations governance pass. Source commits and local evidence are preserved.

Exact final-head required hosted CI must pass before merge. Separate bounded follow-ups retain backend-less demo totals (#3056), rollup snapshot consistency (#3058), request timeout/recovery (#3063), and older-reader export protection (#3065). Physical-device/screen-reader acceptance, skipped PostgreSQL/Docker cases and release/hosting decisions remain in OUTSTANDING_TASKS.md.

Closes #2093
Closes #3044
Closes #3049
Closes #3062

@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: 51e12925c3

ℹ️ 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".

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

All reviewed source commits are preserved in pushed integration 51e12925c381991c04bc458535d22afd7eefd200. Completed estimate/editor/portability/proposal/rollup/browser and planning/permission source worktrees were removed with plain git worktree remove only after fresh absolute-path, clean-status, ancestry and remote-head checks.

Durable evidence remains under C:/td0912-evidence: original estimate/permission logs, estimate-browser, finished-estimate-source-artifacts (52 files copied and hash-verified), and estimate-source-pre-removal.json. The active integration and stacked archive follow-on stay available. Branches are retained. The estimate-core worktree remains preserved because its earlier local EF-tool cleanup was denied; no alternate deletion path was used. The original OneDrive checkout and short-clone root are clean and unchanged.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Hosted required run 34707276360 passed backend, Windows API, frontend, migration/security and other required jobs, then failed two Paper E2E tests at their initial fixed 40-Tab opener setup. Local actual-API Chromium reproduced both failures and recorded the active-element sequence: the new Estimates control pushed the first card beyond that bound. This is an evidenced setup regression, not a flaky classification.

Head 7aba61d changes only the two setup paths and STATUS. Each now focuses the opener, steps back to its preceding control, then enters with an actual Tab; the exact focus-visible outline and J/Enter selected-card assertions remain unchanged. Final narrow run: 2 passed, 17.9 seconds. ESLint for the spec, 700-file relative doc links, docs governance and diff whitespace pass. No unrelated runtime or gate changes.

A fresh required hosted run is owed at this head. Baseline/final logs and traces were copied and hash-verified under C:/td0912-evidence/estimate-focus-gate (18 local files). They contain synthetic session material and remain local, outside Git/public attachments. Playwright-owned servers exited. The archive child #3059 has merged this parent correction without conflict edits and must still follow oldest-base-first delivery.

@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: 958e9947a0

ℹ️ 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 thread backend/src/Taskdeck.Application/Services/CardService.cs
Comment thread frontend/taskdeck-web/src/api/estimateRollupsApi.ts

@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: 66a9f3e83d

ℹ️ 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".

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Card-create reconciliation now preserves a board-detail commit that arrives before the POST continuation, instead of appending the same ID twice or increasing its column count again. It also avoids inserting a late result into a different selected board.

The first fix exposed an existing fresh-store integration contract. Final 66a9f3e83dda2171a46d95601bdc50ee690a2990 preserves that contract as well: failing-before direct/integration controls became 28/28 and 22/22 passing. The independent bounded verification resolved its HIGH finding and found no remaining blocker in the two-file diff. The fresh/null-state ambiguity after clearing a store predates this fix; no actionable UI path was established in that review, so it was not expanded into another fix.

Hosted Windows and Linux at the previous head each failed only that same fresh-store test (6,857 passed, one failed, three skips). Their logs are retained locally. Final real-API Paper/Legacy estimate journeys and the new hosted head gate remain pending. Refs #3062.

@Chris0Jeky
Chris0Jeky merged commit 54e4c0a into main Sep 12, 2026
38 checks passed
@Chris0Jeky
Chris0Jeky deleted the codex/2093-estimate-integration branch September 12, 2026 19:36
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 12, 2026
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Merged as 54e4c0a after required workflow34713059470 passed at reviewed head28c4f49de3c761b1212a4313d8746488e28918f0. The merge preserves #3053/#3055; GitHub confirms issues2093/3044/3049/3062 closed and the seven delivery items are Done. First post-merge check: zero unresolved threads on #3054/#3053/#3055.

The archive and relation children have been retargeted to main; their changed bases must pass fresh hosted qualification. No release or physical-device/screen-reader acceptance is inferred. Bounded followups3056/3057/3058/3063/3065 and OUTSTANDING_TASKS.md remain open.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Post-merge worktree closeout: the finished estimate integration tree was clean, its tip28c4f49de is preserved by verified remote main54e4c0a86, and all18 retained focus-gate logs/traces/SQLite evidence files were copied and SHA-256 checked under C:/td0912-evidence/delivered-estimate-integration. The copied-hashes.json and pre-removal.json receipts identify every survivor. Plain git worktree remove completed; the local source branch remains. Other worktrees with earlier automatic cleanup denials were excluded and remain preserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority II The active direction's next tranche: wedge capabilities, significant defects, near-term hardening.

Projects

Status: Done

1 participant