Skip to content

Commit 5f9adbf

Browse files
committed
feat: rename to Devonz, fix Dockerfile, add version system v2.2.0
- Rename all references from claude-code-discord to Devonz - Fix Dockerfile: remove unnecessary Node.js and old CLI install - Bump deno.json version 1.0.0 -> 2.2.0 - Add BOT_VERSION (read from deno.json) throughout codebase - Show version + update status in /status command - Show version in startup embed title - Add periodic update checks (every 12h, not just startup) - Update GHCR image references to ghcr.io/zebbern/devonz - Update all docs (installation, docker, updating, architecture) - CHANGELOG v2.2.0 with all changes documented
1 parent 1b4dc42 commit 5f9adbf

File tree

13 files changed

+136
-45
lines changed

13 files changed

+136
-45
lines changed

CHANGELOG.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.2.0] - 2025-07-18
9+
10+
### Added
11+
- **Version in /status**: Shows bot version (e.g. `v2.2.0`) and update status (up to date / update available) in the `/status` embed
12+
- **Periodic Update Checks**: Automatically checks for updates every 12 hours (not just at startup) and notifies in Discord when behind
13+
- **Semver in Startup Embed**: Startup message now shows `Devonz v2.2.0 — Startup Complete`
14+
- **BOT_VERSION Export**: `deno.json` version is now read at startup and available throughout the codebase
15+
16+
### Changed
17+
- **Repo Renamed**: All references updated from `claude-code-discord` to `Devonz` (`github.com/zebbern/Devonz`)
18+
- **Dockerfile Optimized**: Removed unnecessary Node.js and `@anthropic-ai/claude-code` CLI install — the bot uses the SDK directly via Deno imports, reducing image size significantly
19+
- **Docker image references**: GHCR images now at `ghcr.io/zebbern/devonz`
20+
21+
### Fixed
22+
- `deno.json` version bumped from `1.0.0` to `2.2.0` (was not updated for v2.1.0 release)
23+
- CHANGELOG legacy reference to deprecated `@anthropic-ai/claude-code` corrected to `@anthropic-ai/claude-agent-sdk`
24+
825
## [2.1.0] - 2025-07-17
926

1027
### Added
@@ -169,9 +186,11 @@ This is the first stable release of Claude Code Discord Bot - a Discord bot that
169186
### Technical Details
170187
- Built with Deno 2.x and TypeScript
171188
- Uses Discord.js 14.14.1
172-
- Claude API via @anthropic-ai/claude-code (deprecated; see v2.0.0 for migration)
189+
- Claude API via @anthropic-ai/claude-agent-sdk
173190

174191
---
175192

176-
[2.0.0]: https://github.com/zebbern/claude-code-discord/releases/tag/v2.0.0
177-
[1.0.0]: https://github.com/zebbern/claude-code-discord/releases/tag/v1.0.0
193+
[2.2.0]: https://github.com/zebbern/Devonz/releases/tag/v2.2.0
194+
[2.1.0]: https://github.com/zebbern/Devonz/releases/tag/v2.1.0
195+
[2.0.0]: https://github.com/zebbern/Devonz/releases/tag/v2.0.0
196+
[1.0.0]: https://github.com/zebbern/Devonz/releases/tag/v1.0.0

Dockerfile

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Claude Code Discord Bot
1+
# Devonz - Claude Code Discord Bot
22
# Multi-stage build for optimized production image
33

44
FROM denoland/deno:latest
@@ -9,17 +9,12 @@ WORKDIR /app
99
# Set environment variable to indicate Docker container
1010
ENV DOCKER_CONTAINER=true
1111

12-
# Install git and Node.js (required for Claude CLI and branch tracking)
12+
# Install git (required for branch tracking and version checks)
1313
USER root
1414
RUN apt-get update && \
15-
apt-get install -y git curl && \
16-
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
17-
apt-get install -y nodejs && \
15+
apt-get install -y git && \
1816
rm -rf /var/lib/apt/lists/*
1917

20-
# Install Claude CLI globally
21-
RUN npm install -g @anthropic-ai/claude-code
22-
2318
# Create non-root user for security
2419
RUN groupadd -r claude && useradd -r -g claude claude
2520

@@ -49,6 +44,6 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
4944
CMD ["deno", "run", "--allow-all", "--no-lock", "index.ts"]
5045

5146
# Labels for image metadata
52-
LABEL org.opencontainers.image.source="https://github.com/zebbern/claude-code-discord"
53-
LABEL org.opencontainers.image.description="Claude Code Discord Bot - Use Claude AI via Discord"
47+
LABEL org.opencontainers.image.source="https://github.com/zebbern/Devonz"
48+
LABEL org.opencontainers.image.description="Devonz - Use Claude AI via Discord"
5449
LABEL org.opencontainers.image.licenses="MIT"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div align="center">
22

3-
# claude-code-discord
3+
# Devonz
44

55
**Run Claude Code from Discord with full SDK integration, agents, rewind, mid-session controls and more.**
66

@@ -38,8 +38,8 @@
3838
## Quick Start
3939

4040
```bash
41-
git clone https://github.com/zebbern/claude-code-discord.git
42-
cd claude-code-discord
41+
git clone https://github.com/zebbern/Devonz.git
42+
cd Devonz
4343
cp .env.example .env
4444
# Edit .env with your DISCORD_TOKEN and APPLICATION_ID
4545
docker compose up -d

core/git-shell-handlers.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type { CommandHandlers, InteractionContext } from "../discord/index.ts";
99
import { formatShellOutput, formatGitOutput, formatError, createFormattedEmbed, cleanupPaginationStates } from "../discord/index.ts";
1010
import type { AllHandlers } from "./handler-registry.ts";
1111
import type { ProcessCrashHandler, ProcessHealthMonitor } from "../process/index.ts";
12+
import { BOT_VERSION, getLastCheckResult } from "../util/version-check.ts";
1213

1314
// ================================
1415
// Types
@@ -549,12 +550,18 @@ export function createUtilityCommandHandlers(
549550
const gitStatusInfo = await gitHandlers.getStatus();
550551
const runningCount = shellHandlers.onShellList(ctx).size;
551552
const worktreeStatus = gitHandlers.onWorktreeBots(ctx);
553+
const lastCheck = getLastCheckResult();
554+
const updateStatus = lastCheck
555+
? (lastCheck.behind ? `⚠️ Update available (${lastCheck.remoteCommit})` : "✅ Up to date")
556+
: "⏳ Checking...";
552557

553558
await ctx.editReply({
554559
embeds: [{
555560
color: 0x00ffff,
556561
title: 'Status',
557562
fields: [
563+
{ name: 'Version', value: `v${BOT_VERSION}`, inline: true },
564+
{ name: 'Updates', value: updateStatus, inline: true },
558565
{ name: 'Claude Code', value: sessionStatus, inline: true },
559566
{ name: 'Git Branch', value: gitStatusInfo.branch, inline: true },
560567
{ name: 'Shell Processes', value: `${runningCount} running`, inline: true },

deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.0.0",
2+
"version": "2.2.0",
33
"compilerOptions": {
44
"lib": ["deno.window"],
55
"strict": true

discord/bot.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { sanitizeChannelName } from "./utils.ts";
1919
import { handlePaginationInteraction } from "./pagination.ts";
2020
import { checkCommandPermission } from "../core/rbac.ts";
2121
import { SETTINGS_ACTIONS, SETTINGS_VALUES } from "../settings/unified-settings.ts";
22+
import { BOT_VERSION } from "../util/version-check.ts";
2223
import type {
2324
BotConfig,
2425
CommandHandlers,
@@ -513,7 +514,7 @@ export async function createDiscordBot(
513514
await myChannel.send(convertMessageContent({
514515
embeds: [{
515516
color: 0x00ff00,
516-
title: '🚀 Startup Complete',
517+
title: `🚀 Devonz v${BOT_VERSION}Startup Complete`,
517518
description: `Claude Code bot for branch ${branchName} has started`,
518519
fields: [
519520
{ name: 'Category', value: actualCategoryName, inline: true },

docker-compose.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Claude Code Discord Bot - Docker Compose Configuration
1+
# Devonz - Docker Compose Configuration
22
# Quick start: docker compose up -d
33
#
44
# To use the pre-built image from GitHub Container Registry (recommended):
@@ -13,8 +13,8 @@ services:
1313
context: .
1414
dockerfile: Dockerfile
1515
# Option B: Use pre-built image from GHCR (uncomment and remove build above)
16-
# image: ghcr.io/zebbern/claude-code-discord:latest
17-
container_name: claude-code-discord
16+
# image: ghcr.io/zebbern/devonz:latest
17+
container_name: devonz
1818
restart: unless-stopped
1919

2020
# Environment variables (use .env file or set here)

docs/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Project Structure
44

55
```
6-
claude-code-discord/
6+
Devonz/
77
├── index.ts # Entry point, Discord client setup
88
├── deno.json # Deno configuration
99
├── .env # Environment variables (not committed)

docs/docker.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The included `docker-compose.yml` supports two modes:
1616

1717
```yaml
1818
services:
19-
claude-code-discord:
19+
devonz:
2020
build: .
2121
env_file: .env
2222
environment:
@@ -36,8 +36,8 @@ Pre-built images are published to GitHub Container Registry on every push to `ma
3636

3737
```yaml
3838
services:
39-
claude-code-discord:
40-
image: ghcr.io/zebbern/claude-code-discord:latest
39+
devonz:
40+
image: ghcr.io/zebbern/devonz:latest
4141
env_file: .env
4242
environment:
4343
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
@@ -72,7 +72,7 @@ services:
7272
image: containrrr/watchtower
7373
volumes:
7474
- /var/run/docker.sock:/var/run/docker.sock
75-
command: --interval 300 claude-code-discord
75+
command: --interval 300 devonz
7676
restart: unless-stopped
7777
```
7878
@@ -82,8 +82,7 @@ This checks for new images every 5 minutes and restarts the bot automatically.
8282
8383
The Dockerfile builds on `denoland/deno:latest` and adds:
8484

85-
- **Node.js 20** (required for Claude CLI)
86-
- **`@anthropic-ai/claude-code`** CLI (installed globally via npm)
85+
- **Git** (required for branch tracking and version checks)
8786
- **Deno cached dependencies** from `deno.json`
8887

8988
## Resource Limits
@@ -92,7 +91,7 @@ For production, consider setting resource limits:
9291

9392
```yaml
9493
services:
95-
claude-code-discord:
94+
devonz:
9695
# ...
9796
deploy:
9897
resources:

docs/installation.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
Works on all platforms with Docker installed.
66

77
```bash
8-
git clone https://github.com/zebbern/claude-code-discord.git
9-
cd claude-code-discord
8+
git clone https://github.com/zebbern/Devonz.git
9+
cd Devonz
1010
cp .env.example .env
1111
# Edit .env with your DISCORD_TOKEN and APPLICATION_ID
1212
docker compose up -d
@@ -21,16 +21,16 @@ See [Docker Guide](docker.md) for full Docker usage, GHCR images, and auto-updat
2121
### Linux / macOS
2222

2323
```bash
24-
git clone https://github.com/zebbern/claude-code-discord.git
25-
cd claude-code-discord
24+
git clone https://github.com/zebbern/Devonz.git
25+
cd Devonz
2626
chmod +x setup.sh && ./setup.sh
2727
```
2828

2929
### Windows (PowerShell)
3030

3131
```powershell
32-
git clone https://github.com/zebbern/claude-code-discord.git
33-
cd claude-code-discord
32+
git clone https://github.com/zebbern/Devonz.git
33+
cd Devonz
3434
.\setup.ps1
3535
```
3636

@@ -74,8 +74,8 @@ claude /login
7474
### Clone and Configure
7575

7676
```bash
77-
git clone https://github.com/zebbern/claude-code-discord.git
78-
cd claude-code-discord
77+
git clone https://github.com/zebbern/Devonz.git
78+
cd Devonz
7979
cp .env.example .env
8080
```
8181

@@ -146,5 +146,5 @@ Environment variables override `.env` file settings. CLI flags override environm
146146
### Docker (all platforms)
147147

148148
- Docker Desktop required on Windows/macOS, Docker Engine on Linux
149-
- The image bundles Deno, Node.js, and Claude CLI so no local installs needed
149+
- The image bundles Deno and Claude CLI so no local installs needed
150150
- See [Docker Guide](docker.md) for volumes, GHCR, and Watchtower

0 commit comments

Comments
 (0)