Files
portfolio/docs/CODING_DETECTION_DEBUG.md
2026-01-08 04:24:22 +01:00

4.8 KiB

Coding Detection Debug Guide

Current Status

Your n8n webhook is returning:

{
  "coding": null
}

This means your n8n workflow isn't detecting coding activity.

Quick Fix: Test Your n8n Workflow

Step 1: Check What n8n Is Actually Receiving

Open your n8n workflow for denshooter-71242/status and check:

  1. Do you have a node that fetches coding data?

    • WakaTime API call?
    • Discord API for Rich Presence?
    • Custom webhook receiver?
  2. Is that node active and working?

    • Check execution history in n8n
    • Look for errors

Step 2: Add Temporary Mock Data (Testing)

To see how it looks while you set up real detection, add this to your n8n workflow:

Add a Function Node after your Discord/Music fetching, before the final response:

// Get existing data
const existingData = $json;

// Add mock coding data for testing
const mockCoding = {
  isActive: true,
  project: "Portfolio Website",
  file: "app/components/ActivityFeed.tsx",
  language: "TypeScript",
  stats: {
    time: "2h 15m",
    topLang: "TypeScript",
    topProject: "Portfolio"
  }
};

// Return combined data
return {
  json: {
    ...existingData,
    coding: mockCoding
  }
};

Save and test - you should now see coding activity!

Step 3: Real Coding Detection Options

  1. Sign up: https://wakatime.com/
  2. Install plugin in VS Code/your IDE
  3. Get API key: https://wakatime.com/settings/account
  4. Add HTTP Request node in n8n:
// n8n HTTP Request Node
URL: https://wakatime.com/api/v1/users/current/heartbeats
Method: GET
Authentication: Bearer Token
Token: YOUR_WAKATIME_API_KEY

// Then add Function Node to process:
const wakaData = $json.data;
const isActive = wakaData && wakaData.length > 0;
const latest = wakaData?.[0];

return {
  json: {
    coding: {
      isActive: isActive,
      project: latest?.project || null,
      file: latest?.entity || null,
      language: latest?.language || null,
      stats: {
        time: "calculating...",
        topLang: latest?.language || "Unknown",
        topProject: latest?.project || "Unknown"
      }
    }
  }
};

Option B: Discord Rich Presence (If Using VS Code)

  1. Install extension: "Discord Presence" in VS Code
  2. Enable broadcasting in extension settings
  3. Add Discord API call in n8n:
// n8n HTTP Request Node
URL: https://discord.com/api/v10/users/@me
Method: GET
Authentication: Bearer Token
Token: YOUR_DISCORD_BOT_TOKEN

// Then process activities:
const activities = $json.activities || [];
const codingActivity = activities.find(a => 
  a.name === 'Visual Studio Code' || 
  a.application_id === 'vscode_app_id'
);

return {
  json: {
    coding: codingActivity ? {
      isActive: true,
      project: codingActivity.state || "Unknown Project",
      file: codingActivity.details || "",
      language: codingActivity.assets?.large_text || null
    } : null
  }
};

Option C: Simple Time-Based Detection

If you just want to show "coding during work hours":

// n8n Function Node
const now = new Date();
const hour = now.getHours();
const isWorkHours = hour >= 9 && hour <= 22; // 9 AM - 10 PM

return {
  json: {
    coding: isWorkHours ? {
      isActive: true,
      project: "Active Development",
      file: "Working on projects...",
      language: "TypeScript",
      stats: {
        time: "Active",
        topLang: "TypeScript",
        topProject: "Portfolio"
      }
    } : null
  }
};

Test Your Changes

After updating your n8n workflow:

# Test the webhook
curl https://n8n.dk0.dev/webhook/denshooter-71242/status | jq .

# Should now show:
{
  "coding": {
    "isActive": true,
    "project": "...",
    "file": "...",
    ...
  }
}

Common Issues

"Still shows null"

  • Make sure n8n workflow is Active (toggle in top right)
  • Check execution history for errors
  • Test each node individually

"Shows old data"

  • Clear your browser cache
  • Wait 30 seconds (cache revalidation time)
  • Hard refresh: Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)

"WakaTime API returns empty"

  • Make sure you've coded for at least 1 minute
  • Check WakaTime dashboard to verify it's tracking
  • Verify API key is correct

What You're Doing RIGHT NOW

Based on the latest data:

  • Music: Listening to "I'm Gonna Be (500 Miles)" by The Proclaimers
  • Coding: Not detected (null)
  • Gaming: Not playing

To make coding appear:

  1. Use mock data (Option from Step 2) - instant
  2. Set up WakaTime (Option A) - 5 minutes
  3. Use Discord RPC (Option B) - 10 minutes
  4. Use time-based (Option C) - instant but not accurate

Need Help?

The activity feed will now show a warning when coding isn't detected with a helpful tip!


Quick Start: Use the mock data from Step 2 to see how it looks, then set up real tracking later!