From 8c6d61d0fbd498274d56931538299f88cea6565d Mon Sep 17 00:00:00 2001 From: Darshan Chauhan <142311502+iw0108@users.noreply.github.com> Date: Tue, 5 May 2026 12:14:47 +0530 Subject: [PATCH 1/2] check again data verify --- backend/src/controllers/printJobController.js | 2 ++ backend/src/controllers/webhookController.js | 3 ++- backend/src/routes/orderRoutes.js | 1 + backend/src/services/timelineService.js | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/src/controllers/printJobController.js b/backend/src/controllers/printJobController.js index 2f09d05..abdd7b4 100644 --- a/backend/src/controllers/printJobController.js +++ b/backend/src/controllers/printJobController.js @@ -10,6 +10,8 @@ async function triggerDepartmentPrint(req, res) { const { order_id, department } = req.params; const { type = 'standard' } = req.body; + console.log('triggerDepartmentPrint', order_id, department, type); + if (!['dm', 'confectionery', 'design'].includes(department)) { return res.status(400).json({ success: false, diff --git a/backend/src/controllers/webhookController.js b/backend/src/controllers/webhookController.js index 0eff1c4..eee3c9d 100644 --- a/backend/src/controllers/webhookController.js +++ b/backend/src/controllers/webhookController.js @@ -8,11 +8,12 @@ const { getIO } = require('../config/socket'); function parseDeliveryDate(dateStr) { if (!dateStr) return null; - + console.log('parseDeliveryDate', dateStr); const parts = dateStr.split('/'); if (parts.length === 3) { return `${parts[2]}-${parts[1].padStart(2, '0')}-${parts[0].padStart(2, '0')}`; } + return dateStr; } diff --git a/backend/src/routes/orderRoutes.js b/backend/src/routes/orderRoutes.js index a4e393c..ae1abbb 100644 --- a/backend/src/routes/orderRoutes.js +++ b/backend/src/routes/orderRoutes.js @@ -12,5 +12,6 @@ router.get('/:order_id/timeline', orderController.getOrderTimeline); router.post('/:order_id/departments/:department/print', printJobController.triggerDepartmentPrint); router.post('/:order_id/departments/:department/retry', printJobController.retryDepartmentPrint); router.get('/:order_id/departments/:department/download-pdf', printJobController.downloadDepartmentPdf); +router.get('/:order_id/departments/:department/download-pdf', printJobController.downloadDepartmentPdf); module.exports = router; diff --git a/backend/src/services/timelineService.js b/backend/src/services/timelineService.js index dd280a0..c1e2878 100644 --- a/backend/src/services/timelineService.js +++ b/backend/src/services/timelineService.js @@ -115,6 +115,7 @@ async function logPrinterValidationFailed(orderId, department, reason) { } async function logManualPrintTriggered(orderId, department) { + console.log('logManualPrintTriggered', orderId, department); await logEvent( orderId, 'MANUAL_PRINT_TRIGGERED', From f54fe2e22f918d0aeb3c8f5677a34bf770f1f424 Mon Sep 17 00:00:00 2001 From: Darshan Chauhan <142311502+iw0108@users.noreply.github.com> Date: Tue, 5 May 2026 12:46:50 +0530 Subject: [PATCH 2/2] data ew added --- .github/workflows/coderabbit-auto-fix.yml | 53 ++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coderabbit-auto-fix.yml b/.github/workflows/coderabbit-auto-fix.yml index db59d4f..e7666ed 100644 --- a/.github/workflows/coderabbit-auto-fix.yml +++ b/.github/workflows/coderabbit-auto-fix.yml @@ -68,6 +68,10 @@ jobs: AGG_TEXT="" MATCH=0 TOTAL=0 + PREV_MATCH=-1 + STABLE_HITS=0 + BEST_MATCH=0 + BEST_AGG="" # Approvals often have no inline threads — exit retry loop after first fetch (see break below). for attempt in 1 2 3 4 5; do @@ -121,14 +125,39 @@ jobs: ] | length' 2>/dev/null || echo 0) fi - if [ "${MATCH}" != "0" ] || [ "${REVIEW_STATE}" = "approved" ]; then + # Keep the highest observed match during eventual-consistency windows. + if [ "${MATCH}" -gt "${BEST_MATCH}" ]; then + BEST_MATCH="${MATCH}" + BEST_AGG="${AGG_TEXT}" + fi + + # Approvals often have no inline comments; no need to keep polling. + if [ "${REVIEW_STATE}" = "approved" ]; then + break + fi + + # Wait for a stable non-zero count across consecutive polls. + if [ "${MATCH}" = "${PREV_MATCH}" ] && [ "${MATCH}" != "0" ]; then + STABLE_HITS=$((STABLE_HITS + 1)) + else + STABLE_HITS=0 + fi + PREV_MATCH="${MATCH}" + + if [ "${STABLE_HITS}" -ge 1 ]; then break fi + if [ "${attempt}" -lt 5 ]; then sleep 3 fi done + if [ "${BEST_MATCH}" -gt "${MATCH}" ]; then + MATCH="${BEST_MATCH}" + AGG_TEXT="${BEST_AGG}" + fi + { echo "CLICKUP_AGGREGATE_BODY<<__AGG_EOF__" echo "$AGG_TEXT" @@ -388,6 +417,28 @@ jobs: fi ISSUE_COUNT=$(printf '%s\n' "$CLEAN_COMMENT" | grep -oE '### Issue [0-9]+' | wc -l | tr -d '[:space:]') + MATCHED_COUNT="${CLICKUP_MATCH_COUNT:-0}" + if [ "${ISSUE_COUNT}" -lt "${MATCHED_COUNT}" ]; then + MISSING=$((MATCHED_COUNT - ISSUE_COUNT)) + echo "::warning::Parsed issue blocks (${ISSUE_COUNT}) are less than matched actionable comments (${MATCHED_COUNT}); adding ${MISSING} fallback block(s)." + REVIEW_ID="${{ github.event.review.id }}" + for i in $(seq 1 "${MISSING}"); do + NEXT_NUM=$((ISSUE_COUNT + i)) + CLEAN_COMMENT="${CLEAN_COMMENT} + + --- + + ### Issue ${NEXT_NUM} + + **Review note (count guard)** + + \`\`\` + An actionable CodeRabbit inline comment was matched but could not be structured into Suggested fix / Prompt blocks. + Please review PR inline comments for review id ${REVIEW_ID}. + \`\`\`" + done + ISSUE_COUNT="${MATCHED_COUNT}" + fi echo "issue_count=${ISSUE_COUNT}" >> "$GITHUB_OUTPUT" echo "Formatted ClickUp payload: ${ISSUE_COUNT} issue block(s) (### Issue headings)." {