fix: task board live updates, auth headers, security hardening, and cleanup - #265
Merged
ChitkulLakshya merged 13 commits intoAug 13, 2026
Merged
Conversation
# Conflicts: # src/components/landing/HeroSection.tsx # src/components/layout/MobileLayout.tsx # src/components/views/ActivityLogView.tsx # src/lib/utils.ts
…leanup Task board live updates (no refresh needed): - Forward getTaskIO through webhook queue to worker so GitHub push/PR transitions emit task-updated socket events to connected clients - Add task-created + task-assigned socket emissions to both Kanban task creation routes (POST /steps/:stepId/tasks and POST /quick-task) - Previously only task update/delete and the separate /api/tasks/assign route emitted socket events; creation required a manual refresh Auth and response handling: - Add missing Authorization: Bearer header to task create/update in ProjectDetails.tsx and task create in MobileProjectDetails.tsx - Add response.ok check to task update handler with refetch + error toast Security hardening: - Protect /api/internal-metrics/metrics with authMiddleware (was public) - Update puppeteer 24.x -> 25.6.0 to fix high-severity extract-zip symlink path traversal vulnerability (npm audit now clean) Bug fixes: - Fix ProjectTask sparse unique index collision: remove default: null from displayId and commitCode so sparse indexes skip unset fields - Remove redundant Mongoose schema.index() calls in User.js and Team.js that caused duplicate index warnings on uid, email, and inviteCode - Fix missing API_BASE_URL import in ArchitectureView.tsx (typecheck) - Add missing braces after if statements in DesktopView/MobileView (lint) - Fix flaky auth E2E test (navigate directly to /login with domcontentloaded instead of indirect navigation) - Set Jest maxWorkers=1 to avoid jose ESM race condition under parallel workers Cleanup: - Delete 18 duplicate " 2" files tracked in git (source, docs, temp) Tests: - 85 backend tests pass (17 suites) - 26 frontend vitest tests pass (2 suites) - 11 Playwright E2E tests pass - TypeScript typecheck clean - ESLint 0 errors - npm audit 0 vulnerabilities - Vite build succeeds Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
ChitkulLakshya
requested review from
eesha264,
prem22k and
thanmayeereddykotha
as code owners
August 13, 2026 08:38
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ChitkulLakshya
enabled auto-merge (squash)
August 13, 2026 08:51
…pdates-and-security-hardening # Conflicts: # backend/package-lock.json # backend/package.json # src/components/zlam/ArchitectureView.tsx
ChitkulLakshya
deleted the
fix/task-board-live-updates-and-security-hardening
branch
August 13, 2026 09:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes the task board live-update mechanism, adds missing authentication headers, hardens security, fixes pre-existing bugs, and cleans up duplicate files.
Task board live updates (no refresh needed)
getTaskIOthrough webhook queue so GitHub push/PR transitions emittask-updatedsocket events to connected clientstask-created+task-assignedsocket emissions to both Kanban task creation routes (POST /steps/:stepId/tasksandPOST /quick-task)/api/tasks/assignroute emitted socket events; task creation required a manual refreshAuth and response handling
Authorization: Bearerheader to task create/update inProjectDetails.tsxand task create inMobileProjectDetails.tsxresponse.okcheck to task update handler with refetch + error toast on failureSecurity hardening
/api/internal-metrics/metricswithauthMiddleware(was publicly accessible)puppeteer24.x → 25.6.0 to fix high-severityextract-zipsymlink path traversal vulnerabilityBug fixes
ProjectTasksparse unique index collision: removedefault: nullfromdisplayIdandcommitCodeso sparse indexes skip unset fields instead of colliding onnullschema.index()calls inUser.jsandTeam.jsthat caused duplicate index warningsAPI_BASE_URLimport inArchitectureView.tsx(typecheck error)ifstatements inDesktopView.tsxandMobileView.tsx(lint errors)maxWorkers: 1to avoidjoseESM race condition under parallel workersCleanup
Files changed
backend/services/webhookQueue.js— forwardgetTaskIOto workerbackend/services/githubWebhookWorker.js— emittask-updatedon push/PR transitionsbackend/routes/githubAppWebhook.js— supplygetTaskIOgetterbackend/routes/projectRoutes.js— emittask-created/task-assignedon task creationbackend/routes/internalMetrics.js— add authMiddlewarebackend/models/ProjectTask.js— fix sparse indexbackend/models/User.js,backend/models/Team.js— remove duplicate indexesbackend/jest.config.js— maxWorkers: 1backend/package.json— puppeteer 25.6.0src/pages/ProjectDetails.tsx— auth headers + response.oksrc/components/views/mobile/MobileProjectDetails.tsx— auth headersrc/components/zlam/ArchitectureView.tsx— API_BASE_URL importsrc/components/views/DesktopView.tsx,MobileView.tsx— lint fixestests/auth.spec.ts— flaky test fixbackend/tests/projectRoutesTasks.test.js— 4 new regression tests (B25-B28)backend/tests/githubWebhookWorker.test.js— 2 new regression tests (W8-W9)Test plan
Generated with Devin