commit 字段从 null 更新为合并提交 46a70aa5,notes 补充说明: 本地实现已经落地到主线,不再是仅存在于未提交分支的工作。 核实过任务实际验收标准后,明确维持 status=in_progress、不归档—— 真实样本验证/独立复核/生产切换等验收项对这5个任务都仍然开放, "代码已合并"不等于"验收完成",归档需要业务验收,不能只看自动化通过。 涉及: 09-17-company-loan-principal-repayment, 09-17-erp-exclusive-retirement, 09-18-local-concurrency-product-fixes, 09-18-reimbursement-periodic-numbering, 09-19-budget-pool-concurrency
81 行
3.6 KiB
JSON
81 行
3.6 KiB
JSON
{
|
|
"id": "budget-pool-concurrency",
|
|
"name": "budget-pool-concurrency",
|
|
"title": "预算池占用与释放并发一致性修复",
|
|
"description": "预算并发本地修复及独立审查完成;两项必修经Claude定向928项验证通过并关闭。发布完整门禁延期,任务保留in_progress,未提交部署。",
|
|
"status": "in_progress",
|
|
"dev_type": "backend",
|
|
"scope": "budget-control",
|
|
"package": null,
|
|
"priority": "P1",
|
|
"creator": "shunli",
|
|
"assignee": "shunli",
|
|
"createdAt": "2026-09-19",
|
|
"completedAt": null,
|
|
"branch": null,
|
|
"base_branch": "main",
|
|
"worktree_path": null,
|
|
"commit": "46a70aa5",
|
|
"pr_url": null,
|
|
"subtasks": [],
|
|
"children": [],
|
|
"parent": null,
|
|
"relatedFiles": [
|
|
"server/src/services/budgetPool.js",
|
|
"server/src/services/purchaseBudget.js",
|
|
"server/src/services/travelPayments.js",
|
|
"server/src/services/feeControl.js",
|
|
"server/src/routes/reimbursements.js",
|
|
"server/src/routes/purchaseRequests.js",
|
|
"server/src/routes/travelRequests.js",
|
|
"server/src/routes/travelTransactions.js",
|
|
"scripts/qa/test-budget-pool-db.cjs"
|
|
],
|
|
"notes": "2026-09-26 更新:本地实现已通过候选分支合并落地到 origin/main(合并提交 46a70aa5),不再是仅存在于未提交分支的工作;但真实样本验证/独立复核/生产切换等验收项仍开放,任务状态维持 in_progress,未视为完成。",
|
|
"meta": {
|
|
"planningSource": "user-provided independent review and request to address three related paths together",
|
|
"implementationApproval": "APPROVED_BY_USER_20260919",
|
|
"findingId": "BUDGET-LOST-UPDATE-01",
|
|
"discoveryStatus": "CONFIRMED_STATIC",
|
|
"discoverySeverity": "P1",
|
|
"discoveryCommit": "b1d25d3c9939c0020e7b4f75868cd97c35c16ba8",
|
|
"remediationStatus": "LOCAL_VERIFIED_INDEPENDENT_REVIEWED",
|
|
"deploymentStatus": "NOT_DEPLOYED",
|
|
"externalVerificationStatus": "NOT_TESTED",
|
|
"report": "artifacts/qa-governance/business-followup-claude-review-20260919T023537Z.txt",
|
|
"reportSha256": "b48e5f53340e139e5a97b5fdcb6d7003881a80a8a08d4004d01aaa6a759d2d0b",
|
|
"evidence": "artifacts/qa-governance/budget-pool-concurrency-20260919",
|
|
"coordinatorTask": ".trellis/tasks/09-06-release-gate-integrity",
|
|
"independentReview": "PASS_SCOPED_BUDGET_PATCH",
|
|
"deploymentAuthorized": false,
|
|
"travelReactivationAuthorized": false,
|
|
"targetedPostgresPassed": 28,
|
|
"targetedUnitPassed": 526,
|
|
"fullCandidate": "INTERRUPTED_NOT_PASS",
|
|
"deploymentEligible": false,
|
|
"backendFilesPassed": 225,
|
|
"backendTestsPassed": 4446,
|
|
"backendOriginalConditionalSkip": 1,
|
|
"browser": {
|
|
"passed": 29,
|
|
"interrupted": 4,
|
|
"notRun": 339,
|
|
"retriedCases": 0
|
|
},
|
|
"releaseFullGate": "DEFERRED_UNTIL_RELEASE_PREPARATION",
|
|
"reviewReport": "artifacts/qa-governance/budget-pool-claude-review-20260919T043257Z.txt",
|
|
"reviewFixEvidence": "artifacts/qa-governance/budget-pool-concurrency-20260919/review-fixes-20260919",
|
|
"reviewFixTests": "CLAUDE_PASSED_2_FILES_928_TESTS_NO_SKIPS",
|
|
"reviewFixFiles": [
|
|
"server/src/routes/travelRequests.js",
|
|
"server/tests/unit/routes/travel-request.errors.test.js",
|
|
"server/tests/unit/fixtures/error-reason-messages.json",
|
|
"server/tests/unit/scripts/error-reason-client.test.js"
|
|
],
|
|
"findingResolution": "RESOLVED_LOCAL_NOT_DEPLOYED",
|
|
"reviewFixResult": "artifacts/qa-governance/budget-pool-concurrency-20260919/review-fixes-20260919/claude-result-20260919T044304Z.md",
|
|
"reviewFixResultSha256": "cb7996f6dcacc3ffd44a398b705ed840bf51ed6a0e312336933a25f93813a8f9",
|
|
"requiredReviewFindingsOpen": 0
|
|
}
|
|
}
|