Skip to content

[VibeDash 0ae30fbf] Mobile application still uses mock authentication and protocol - #7

Draft
rapidstartup wants to merge 1 commit into
mainfrom
codex/vibedash-0ae30fbf-b84b-4346-b63d-610fa2c16ff7-fa507080-7d61-43ec-9582-c5e48f9b6eb5
Draft

rapidstartup wants to merge 1 commit into
mainfrom
codex/vibedash-0ae30fbf-b84b-4346-b63d-610fa2c16ff7-fa507080-7d61-43ec-9582-c5e48f9b6eb5

Conversation

@rapidstartup

Copy link
Copy Markdown
Owner

Replaced mobile mock auth, push registration, and socket events with real Supabase-backed implementations and a shared typed protocol.

VibeDash task: 0ae30fbf-b84b-4346-b63d-610fa2c16ff7
Runner: House Codex — gpt-5.6-luna / xhigh

Validation:

  • passed: mobile tsc --noEmit
  • passed: mobile npm ci --dry-run
  • passed: Expo web export — Bundle succeeded; existing asset MIME warnings were reported.
  • passed: Touched web ESLint
  • failed: Full repository TypeScript/lint — Unrelated pre-existing Twilio, Express typing, and legacy lint errors remain.

This PR was opened as a draft for human review.

@bolt-new-by-stackblitz

Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@netlify

netlify Bot commented Jul 17, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for zesty-pavlova-54b539 ready!

Name Link
🔨 Latest commit 51e2671
🔍 Latest deploy log https://app.netlify.com/projects/zesty-pavlova-54b539/deploys/6a5aa08f71045f0008e4a12b
😎 Deploy Preview https://deploy-preview-7--zesty-pavlova-54b539.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@vibedash-agent vibedash-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

VibeDash Codex Agent Reviewer

The PR introduces real login and token registration, but production server startup breaks and the mobile call protocol remains nonfunctional and unauthenticated.

Recommendation: changes requested
Risk: high
Model: gpt-5.6-sol

Findings

  • HIGH — Shared protocol relocates the compiled server entry point
    Including the shared TypeScript source outside the server directory changes TypeScript's inferred source root. The build will emit server/index.ts as dist/server/index.js, while both production launch configurations still expect dist/index.js. Deployment will fail to start.
    Evidence: server/tsconfig.json hunk adds ../shared/**/*.ts with outDir: ./dist and no explicit rootDir; server/package.json start and server/ecosystem.config.js script both execute dist/index.js.
  • HIGH — Push registration has no incoming-call delivery path
    The Expo token is stored, but nothing sends a push or supplies the generated call ID to a mobile device. The mobile incoming-call socket listener was removed and no notification listener populates the incoming-call state. Consequently, a device can never obtain a call to answer or reject.
    Evidence: In server/socket.ts, setupSocketServer's call-start branch creates callId but records only the originating socket and emits call-established back to that socket. mobile/services/notifications.ts only registers a token. The diff hunk in mobile/app/(app)/(tabs)/calls.tsx removes onIncomingCall, leaving setIncomingCall/setShowIncomingCall with no incoming event source.
  • HIGH — Supabase socket token is ignored and privileged signals are unauthorized
    The mobile client supplies an access token, but the server accepts every handshake and never validates socket.handshake.auth.token. Answer, reject, and mute requests are accepted solely when a call ID exists, without checking the authenticated user, widget ownership, or device route. These controls need an authenticated and authorized mobile path while preserving public widget connections.
    Evidence: mobile/services/socketService.ts init() sends auth: { token: session.access_token }; server/socket.ts allowRequest unconditionally calls callback(null, true) and its connection handler never reads handshake.auth. The signal branches for call-answer, call-reject, and call-mute only check activeCalls.has(data.callId).

Validation reviewed

  • passed: git diff --check 6607f7c64f19c00522a26605323c6002afbac6e8..51e26713826cfa9489480e03d17f4eb8880dcc7b — No whitespace errors.
  • not_run: npm run build — The environment does not provide npm.
  • not_run: cd server && npm run build — The environment does not provide npm.
  • not_run: cd mobile && npx tsc --noEmit — The environment does not provide npx.
  • not_run: cd mobile && npm run lint — The environment does not provide npm.

This agent does not merge or close tasks; final closure remains with a human.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant