Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ jobs:
- name: Check formatting
run: pnpm format:check

- name: Generate Prisma Client
run: pnpm --filter @devradar/server db:generate
env:
DATABASE_URL: 'postgresql://user:pass@localhost:5432/db'
SHADOW_DATABASE_URL: 'postgresql://user:pass@localhost:5432/shadow'

- name: Lint
run: pnpm lint

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,4 @@ coverage/

# Docker
docker-compose.override.yml
apps/server/src/generated/
15 changes: 15 additions & 0 deletions apps/extension/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Build outputs
dist/
out/

# VS Code test
.vscode-test/

# Package
*.vsix

# Node
node_modules/

# Logs
*.log
24 changes: 24 additions & 0 deletions apps/extension/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "pnpm: build"
},
{
"name": "Run Extension (No Build)",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
]
}
24 changes: 24 additions & 0 deletions apps/extension/.vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "pnpm: build",
"type": "shell",
"command": "pnpm",
"args": ["build"],
"problemMatcher": "$tsc",
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "pnpm: dev",
"type": "shell",
"command": "pnpm",
"args": ["dev"],
"isBackground": true,
"problemMatcher": []
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
]
}
13 changes: 13 additions & 0 deletions apps/extension/.vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.vscode/**
.vscode-test/**
src/**
node_modules/**
out/**
.gitignore
.eslintrc*
eslint.config.js
tsconfig.json
**/*.ts
**/*.map
*.vsix
.turbo/**
21 changes: 21 additions & 0 deletions apps/extension/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to the DevRadar extension will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0] - 2026-01-05

### Added

- Initial release
- GitHub OAuth authentication
- Real-time presence tracking
- Friends list with status indicators
- Activity feed showing friend events
- Status bar integration
- WebSocket connection with automatic reconnection
- Privacy mode and blacklisted files
- Poke functionality to get friends' attention
- Configurable settings for all features
78 changes: 78 additions & 0 deletions apps/extension/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# DevRadar VS Code Extension

> **Discord Status for VS Code** - See what your friends are coding in real-time 🚀

## Features

- **🟢 Real-Time Presence**: See which friends are online and what they're working on
- **👀 Activity Sharing**: Share your coding activity (with privacy controls)
- **👋 Poke Friends**: Get their attention with a friendly notification
- **🔒 Privacy First**: Full control over what you share - or go invisible
- **📊 Coding Stats**: Track your session time and coding intensity

## Installation

Install from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=devradar.devradar) or search for "DevRadar" in the Extensions panel.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

## Getting Started

1. Click the DevRadar icon in the Activity Bar
2. Click "Login with GitHub" in the sidebar
3. Authorize DevRadar to access your GitHub profile
4. Start coding - your friends will see your status!

## Configuration

Access settings via `File > Preferences > Settings` and search for "DevRadar".

| Setting | Default | Description |
| ------------------------------ | ------------------------ | ------------------------------- |
| `devradar.privacyMode` | `false` | Hide your activity from friends |
| `devradar.showFileName` | `true` | Show current file name |
| `devradar.showProject` | `true` | Show project name |
| `devradar.showLanguage` | `true` | Show programming language |
| `devradar.blacklistedFiles` | `[".env", "*.pem", ...]` | Files to never broadcast |
| `devradar.idleTimeout` | `300000` | Time (ms) before going idle |
| `devradar.enableNotifications` | `true` | Show poke notifications |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify documented settings exist in package.json with correct defaults

# First, check if package.json exists and show the configuration section
if [ -f "apps/extension/package.json" ]; then
  echo "=== Configuration section from package.json ==="
  jq '.contributes.configuration' "apps/extension/package.json" 2>/dev/null || rg -A 200 '"configuration"' apps/extension/package.json | head -100
else
  echo "package.json not found at apps/extension/package.json"
  # Try to find it
  find . -name "package.json" -path "*/extension/*" -type f
fi

Repository: senutpal/devRadar

Length of output: 2423


🏁 Script executed:

#!/bin/bash
# Also check the README to see exact defaults documented
echo "=== Settings from README ==="
sed -n '28,36p' apps/extension/README.md

Repository: senutpal/devRadar

Length of output: 953


Update the settings table to reflect all configuration options and accurate defaults.

The table is incomplete and contains inaccurate information:

  • Missing 5 settings from package.json: devradar.serverUrl, devradar.wsUrl, devradar.blacklistedWorkspaces, devradar.heartbeatInterval, and devradar.showStatusBarItem
  • Incomplete default for devradar.blacklistedFiles: The actual default is [".env", ".env.*", "*.pem", "*.key", "*.secret", "**/secrets/**", "**/credentials/**"], not [".env", "*.pem", ...]

Add all 12 configuration properties to the table with complete and accurate default values matching package.json.

🤖 Prompt for AI Agents
In @apps/extension/README.md around lines 28-36, Update the settings table in
README.md so it lists all 12 configuration keys with exact defaults from
package.json: devradar.privacyMode (false), devradar.showFileName (true),
devradar.showProject (true), devradar.showLanguage (true),
devradar.showStatusBarItem (true), devradar.enableNotifications (true),
devradar.serverUrl ("https://devradar.example.com" — use the exact string in
package.json), devradar.wsUrl ("wss://devradar.example.com" — use the exact
string in package.json), devradar.blacklistedFiles ([".env", ".env.*", "*.pem",
"*.key", "*.secret", "**/secrets/**", "**/credentials/**"]),
devradar.blacklistedWorkspaces ([] or the exact array in package.json),
devradar.idleTimeout (300000), and devradar.heartbeatInterval (60000 or the
exact value in package.json); ensure each row shows the correct Default and a
brief Description matching the current package.json metadata.


## Commands

Access via Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`):

- **DevRadar: Login with GitHub** - Authenticate with your GitHub account
- **DevRadar: Logout** - Sign out of DevRadar
- **DevRadar: Toggle Privacy Mode** - Hide/show your activity
- **DevRadar: Poke Friend** - Send a notification to a friend
- **DevRadar: Set Status** - Manually set your status (online/idle/dnd/offline)
- **DevRadar: Refresh Friends** - Refresh your friends list

## Privacy

DevRadar is built with privacy as a core principle:

- **We NEVER transmit your code** - only metadata (filename, language, project name)
- **Blacklist sensitive files** - .env files are hidden by default
- **Privacy Mode** - Go completely invisible when needed
- **You're in control** - customize exactly what you share

## Development

This extension is part of the DevRadar monorepo.

```bash
# Install dependencies
pnpm install

# Build extension
pnpm --filter @devradar/extension build

# Watch mode
pnpm --filter @devradar/extension dev

# Package VSIX
pnpm --filter @devradar/extension package
```

## License

MIT - see [LICENSE](../../LICENSE)
3 changes: 3 additions & 0 deletions apps/extension/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import config from '@devradar/eslint-config';

export default config;
Loading