From 4f288982ed27bd1f5dc28bd861f868eec7332255 Mon Sep 17 00:00:00 2001 From: panda Date: Sun, 27 Jul 2025 22:47:34 +0800 Subject: [PATCH] Rebrand from TaskPing to Claude Code Remote MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename main file: taskping.js → claude-remote.js - Create .env.example template file with proper Claude Code Remote branding - Update all README references from taskping commands to claude-remote.js - Update email notification subject lines and service names - Replace all TaskPing references with Claude Code Remote in documentation - Standardize configuration workflow using cp .env.example .env approach - Ensure consistent project naming throughout all user-facing content This completes the rebranding effort to properly reflect the project's focus on Claude Code remote control functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .env.example | 41 ++-- README.md | 75 ++++---- taskping.js => claude-remote.js | 0 src/data/processed-messages.json | 27 ++- src/data/session-map.json | 180 ++++++++++++++++++ .../02bd4449-bdcf-464e-916e-61bc62a18dd2.json | 18 ++ .../09466a43-c495-4a30-ac08-eb425748a28c.json | 18 ++ .../0caed3af-35ae-4b42-9081-b1a959735bde.json | 18 ++ .../0f694f4c-f8a4-476a-946a-3dc057c3bc46.json | 18 ++ .../117a1097-dd97-41ab-a276-e4820adc8da8.json | 18 ++ .../633a2687-81e7-456e-9995-3321ce3f3b2b.json | 18 ++ .../772628f1-414b-4242-bc8f-660ad53b6c23.json | 18 ++ .../7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e.json | 18 ++ .../99132172-7a97-46f7-b282-b22054d6e599.json | 18 ++ .../a3f2b4f9-811e-4721-914f-f025919c2530.json | 18 ++ .../b2408839-8a64-4a07-8ceb-4a7a82ea5b25.json | 18 ++ .../b8dac307-8b4b-4286-aa73-324b9b659e60.json | 18 ++ .../c7c5c95d-4541-47f6-b27a-35c0fd563413.json | 18 ++ .../d33e49aa-a58f-46b0-8829-dfef7f474600.json | 18 ++ .../da40ba76-7047-41e0-95f2-081db87c1b3b.json | 18 ++ .../e6e973b6-20dd-497f-a988-02482af63336.json | 18 ++ .../e844d2ae-9098-4528-9e05-e77904a35be3.json | 18 ++ .../f0d0635b-59f2-45eb-acfc-d649b12fd2d6.json | 18 ++ .../f8f915ee-ab64-471c-b3d2-71cb84d2b5fe.json | 18 ++ 24 files changed, 615 insertions(+), 50 deletions(-) rename taskping.js => claude-remote.js (100%) create mode 100644 src/data/sessions/02bd4449-bdcf-464e-916e-61bc62a18dd2.json create mode 100644 src/data/sessions/09466a43-c495-4a30-ac08-eb425748a28c.json create mode 100644 src/data/sessions/0caed3af-35ae-4b42-9081-b1a959735bde.json create mode 100644 src/data/sessions/0f694f4c-f8a4-476a-946a-3dc057c3bc46.json create mode 100644 src/data/sessions/117a1097-dd97-41ab-a276-e4820adc8da8.json create mode 100644 src/data/sessions/633a2687-81e7-456e-9995-3321ce3f3b2b.json create mode 100644 src/data/sessions/772628f1-414b-4242-bc8f-660ad53b6c23.json create mode 100644 src/data/sessions/7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e.json create mode 100644 src/data/sessions/99132172-7a97-46f7-b282-b22054d6e599.json create mode 100644 src/data/sessions/a3f2b4f9-811e-4721-914f-f025919c2530.json create mode 100644 src/data/sessions/b2408839-8a64-4a07-8ceb-4a7a82ea5b25.json create mode 100644 src/data/sessions/b8dac307-8b4b-4286-aa73-324b9b659e60.json create mode 100644 src/data/sessions/c7c5c95d-4541-47f6-b27a-35c0fd563413.json create mode 100644 src/data/sessions/d33e49aa-a58f-46b0-8829-dfef7f474600.json create mode 100644 src/data/sessions/da40ba76-7047-41e0-95f2-081db87c1b3b.json create mode 100644 src/data/sessions/e6e973b6-20dd-497f-a988-02482af63336.json create mode 100644 src/data/sessions/e844d2ae-9098-4528-9e05-e77904a35be3.json create mode 100644 src/data/sessions/f0d0635b-59f2-45eb-acfc-d649b12fd2d6.json create mode 100644 src/data/sessions/f8f915ee-ab64-471c-b3d2-71cb84d2b5fe.json diff --git a/.env.example b/.env.example index 6bbaa06..95da56b 100644 --- a/.env.example +++ b/.env.example @@ -1,23 +1,38 @@ -# TaskPing Email Relay Configuration +# Claude Code Remote Email Configuration -# 邮件接收配置 +# ===== SMTP 发送邮件配置 ===== +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_SECURE=false +SMTP_USER=your-email@gmail.com +SMTP_PASS=your-app-password + +# 发件人信息 +EMAIL_FROM=your-email@gmail.com +EMAIL_FROM_NAME=Claude Code Remote 通知系统 + +# ===== IMAP 接收邮件配置 ===== IMAP_HOST=imap.gmail.com IMAP_PORT=993 IMAP_SECURE=true IMAP_USER=your-email@gmail.com IMAP_PASS=your-app-password -# 邮件安全设置 -# 允许的发件人列表(逗号分隔) -ALLOWED_SENDERS=jessy@example.com,trusted@company.com +# ===== 邮件路由配置 ===== +# 接收通知的邮箱地址 +EMAIL_TO=your-notification-email@gmail.com -# 路由与会话存储 -SESSION_MAP_PATH=/Users/jessytsui/dev/TaskPing/src/data/session-map.json +# 允许发送命令的邮箱地址(安全白名单) +ALLOWED_SENDERS=your-notification-email@gmail.com -# 模式选择:pty 或 tmux +# ===== 系统配置 ===== +# 会话映射文件路径 (请替换为你的实际路径) +SESSION_MAP_PATH=/Users/your-username/path/to/Claude-Code-Remote/src/data/session-map.json + +# 运行模式:pty 或 tmux INJECTION_MODE=pty -# Claude CLI 路径(可选,默认使用系统PATH中的claude) +# Claude CLI 路径(默认使用系统PATH中的claude) CLAUDE_CLI_PATH=claude # 日志级别:debug, info, warn, error @@ -26,5 +41,9 @@ LOG_LEVEL=info # 是否记录PTY输出(调试用) PTY_OUTPUT_LOG=false -# tmux 配置(如果使用tmux模式) -TMUX_SESSION_PREFIX=taskping \ No newline at end of file +# ===== 邮件模板配置 ===== +# 邮件检查间隔(秒) +CHECK_INTERVAL=30 + +# 会话超时时间(小时) +SESSION_TIMEOUT=24 \ No newline at end of file diff --git a/README.md b/README.md index a8503d8..0c3ed29 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ cd Claude-Code-Remote npm install # 3. 测试基本功能 -node taskping.js --help -node taskping.js status -node taskping.js test +node claude-remote.js --help +node claude-remote.js status +node claude-remote.js test ``` 如果看到桌面通知弹出,说明基础功能正常! @@ -45,38 +45,36 @@ node taskping.js test #### 2.1 创建邮件配置文件 ```bash -# 在项目根目录创建 .env 文件 -touch .env +# 复制示例配置文件 +cp .env.example .env ``` #### 2.2 编辑 .env 文件 -将以下内容复制到 `.env` 文件中,并替换为你的邮箱信息: +编辑 `.env` 文件,替换为你的邮箱信息: + +```bash +# 编辑配置文件 +nano .env +# 或者使用其他编辑器 +open .env +``` + +主要需要修改的配置项: ```env -# ===== SMTP 发送邮件配置 ===== -SMTP_HOST=smtp.gmail.com -SMTP_PORT=587 -SMTP_SECURE=false +# 你的邮箱地址和应用密码 SMTP_USER=your-email@gmail.com SMTP_PASS=your-app-password - -# ===== IMAP 接收邮件配置 ===== -IMAP_HOST=imap.gmail.com -IMAP_PORT=993 -IMAP_SECURE=true -IMAP_USER=your-email@gmail.com +IMAP_USER=your-email@gmail.com IMAP_PASS=your-app-password -# ===== 邮件路由配置 ===== +# 接收通知的邮箱(可以是同一个) EMAIL_TO=your-notification-email@gmail.com ALLOWED_SENDERS=your-notification-email@gmail.com -# ===== 系统配置 ===== +# 你的实际项目路径 SESSION_MAP_PATH=/Users/your-username/path/to/Claude-Code-Remote/src/data/session-map.json -INJECTION_MODE=pty -CLAUDE_CLI_PATH=claude -LOG_LEVEL=info ``` #### 2.3 常见邮箱配置 @@ -107,7 +105,7 @@ IMAP_PORT=993 ```bash # 测试邮件发送功能 -node taskping.js test +node claude-remote.js test ``` 如果收到测试邮件,说明邮件配置成功! @@ -132,7 +130,7 @@ node taskping.js test "matcher": "*", "hooks": [{ "type": "command", - "command": "node /Users/your-username/path/to/Claude-Code-Remote/taskping.js notify --type completed", + "command": "node /Users/your-username/path/to/Claude-Code-Remote/claude-remote.js notify --type completed", "timeout": 5 }] }], @@ -140,7 +138,7 @@ node taskping.js test "matcher": "*", "hooks": [{ "type": "command", - "command": "node /Users/your-username/path/to/Claude-Code-Remote/taskping.js notify --type waiting", + "command": "node /Users/your-username/path/to/Claude-Code-Remote/claude-remote.js notify --type waiting", "timeout": 5 }] }] @@ -151,6 +149,7 @@ node taskping.js test **🔥 重要:替换路径** - 将 `/Users/your-username/path/to/Claude-Code-Remote` 替换为你的实际项目路径 - 可以用 `pwd` 命令获取当前目录的完整路径 +- 确保文件名为 `claude-remote.js` ### 🎮 第四步:开始使用(马上开始!) @@ -163,7 +162,7 @@ npm run relay:pty 你会看到类似输出: ``` -🚀 Starting TaskPing PTY Relay service... +🚀 Starting Claude Code Remote PTY Relay service... 📧 IMAP server: imap.gmail.com 👤 Email account: your-email@gmail.com 🔒 Whitelist senders: your-email@gmail.com @@ -191,7 +190,7 @@ claude 2. **接收邮件通知**: Claude 完成任务后,你会收到邮件,内容类似: ``` - Subject: TaskPing 任务完成通知 [#ABC123] + Subject: Claude Code Remote 任务完成通知 [#ABC123] Claude has completed your task: "请帮我分析这个项目的结构" @@ -250,16 +249,16 @@ tmux send-keys -t project-b "cd /path/to/project-b && claude" Enter ```bash # 查看系统状态 -node taskping.js status +node claude-remote.js status # 查看待处理命令 -node taskping.js commands list +node claude-remote.js commands list # 查看活跃会话 tmux list-sessions # 清理命令队列 -node taskping.js commands clear +node claude-remote.js commands clear ``` ## 🎬 使用场景示例 @@ -289,13 +288,13 @@ node taskping.js commands clear npm run relay:pty # 启动邮件监听(前台运行) # 系统状态检查 -node taskping.js status # 查看整体状态 -node taskping.js test # 测试所有功能 +node claude-remote.js status # 查看整体状态 +node claude-remote.js test # 测试所有功能 # 命令队列管理 -node taskping.js commands list # 查看待处理命令 -node taskping.js commands status # 查看处理状态 -node taskping.js commands clear # 清空命令队列 +node claude-remote.js commands list # 查看待处理命令 +node claude-remote.js commands status # 查看处理状态 +node claude-remote.js commands clear # 清空命令队列 # 会话管理 tmux list-sessions # 查看所有会话 @@ -320,8 +319,8 @@ npm install **Q: 邮件发送失败** ```bash # 检查邮件配置 -node taskping.js status -node taskping.js test +node claude-remote.js status +node claude-remote.js test # 常见问题: # 1. Gmail 用户必须使用应用密码 @@ -347,7 +346,7 @@ grep ALLOWED_SENDERS .env cat ~/.claude/settings.json # 手动测试 hook -node taskping.js notify --type completed +node claude-remote.js notify --type completed # 检查文件路径是否正确 ``` @@ -355,7 +354,7 @@ node taskping.js notify --type completed **Q: 收不到邮件通知** ```bash # 检查 SMTP 配置 -node taskping.js test +node claude-remote.js test # 检查垃圾邮件文件夹 # 确认邮件地址配置正确 diff --git a/taskping.js b/claude-remote.js similarity index 100% rename from taskping.js rename to claude-remote.js diff --git a/src/data/processed-messages.json b/src/data/processed-messages.json index 0637a08..94b8102 100644 --- a/src/data/processed-messages.json +++ b/src/data/processed-messages.json @@ -1 +1,26 @@ -[] \ No newline at end of file +[ + { + "id": 1312, + "timestamp": 1753626443001 + }, + { + "id": 1315, + "timestamp": 1753626443001 + }, + { + "id": 1310, + "timestamp": 1753626443001 + }, + { + "id": 1323, + "timestamp": 1753626443001 + }, + { + "id": 1331, + "timestamp": 1753626443001 + }, + { + "id": 1334, + "timestamp": 1753626443001 + } +] \ No newline at end of file diff --git a/src/data/session-map.json b/src/data/session-map.json index b072bb0..510de36 100644 --- a/src/data/session-map.json +++ b/src/data/session-map.json @@ -34,5 +34,185 @@ "sessionId": "a966681d-5cfd-47b9-bb1b-c7ee9655b97b", "tmuxSession": "a-0", "description": "waiting - TaskPing" + }, + "G3QE3STQ": { + "type": "pty", + "createdAt": 1753622403, + "expiresAt": 1753708803, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e", + "tmuxSession": "claude-taskping", + "description": "completed - TaskPing-Test" + }, + "Z0Q98XCC": { + "type": "pty", + "createdAt": 1753624374, + "expiresAt": 1753710774, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b2408839-8a64-4a07-8ceb-4a7a82ea5b25", + "tmuxSession": "claude-taskping", + "description": "completed - TaskPing-Test" + }, + "65S5UGHZ": { + "type": "pty", + "createdAt": 1753624496, + "expiresAt": 1753710896, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "117a1097-dd97-41ab-a276-e4820adc8da8", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "N9PPKGTO": { + "type": "pty", + "createdAt": 1753624605, + "expiresAt": 1753711005, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0caed3af-35ae-4b42-9081-b1a959735bde", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "TEST12345": { + "type": "pty", + "createdAt": 1753628000, + "expiresAt": 1753714400, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "test-session-id", + "tmuxSession": "test-claude", + "description": "testing - Test Session" + }, + "YTGT6F6F": { + "type": "pty", + "createdAt": 1753625040, + "expiresAt": 1753711440, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e6e973b6-20dd-497f-a988-02482af63336", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "2XQP1N0P": { + "type": "pty", + "createdAt": 1753625361, + "expiresAt": 1753711761, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "0f694f4c-f8a4-476a-946a-3dc057c3bc46", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "GKPSGCBS": { + "type": "pty", + "createdAt": 1753625618, + "expiresAt": 1753712018, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "e844d2ae-9098-4528-9e05-e77904a35be3", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "187JDGZ0": { + "type": "pty", + "createdAt": 1753625623, + "expiresAt": 1753712023, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "633a2687-81e7-456e-9995-3321ce3f3b2b", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "NSYKTAWC": { + "type": "pty", + "createdAt": 1753625650, + "expiresAt": 1753712050, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "b8dac307-8b4b-4286-aa73-324b9b659e60", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "1NTEJPH7": { + "type": "pty", + "createdAt": 1753625743, + "expiresAt": 1753712143, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "09466a43-c495-4a30-ac08-eb425748a28c", + "tmuxSession": "claude-taskping", + "description": "completed - Claude-Code-Remote" + }, + "5XO64F9Z": { + "type": "pty", + "createdAt": 1753625846, + "expiresAt": 1753712246, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "99132172-7a97-46f7-b282-b22054d6e599", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "D8561S3A": { + "type": "pty", + "createdAt": 1753625904, + "expiresAt": 1753712304, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "772628f1-414b-4242-bc8f-660ad53b6c23", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "GR0GED2E": { + "type": "pty", + "createdAt": 1753626215, + "expiresAt": 1753712615, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "da40ba76-7047-41e0-95f2-081db87c1b3b", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "TTRQKVM9": { + "type": "pty", + "createdAt": 1753626245, + "expiresAt": 1753712645, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "c7c5c95d-4541-47f6-b27a-35c0fd563413", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "P9UBHY8L": { + "type": "pty", + "createdAt": 1753626325, + "expiresAt": 1753712725, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "a3f2b4f9-811e-4721-914f-f025919c2530", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "JQAOXCYJ": { + "type": "pty", + "createdAt": 1753626390, + "expiresAt": 1753712790, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "f0d0635b-59f2-45eb-acfc-d649b12fd2d6", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "B7R9OR3K": { + "type": "pty", + "createdAt": 1753626445, + "expiresAt": 1753712845, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "d33e49aa-a58f-46b0-8829-dfef7f474600", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "0KGM60XO": { + "type": "pty", + "createdAt": 1753626569, + "expiresAt": 1753712969, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "02bd4449-bdcf-464e-916e-61bc62a18dd2", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" + }, + "5NXM173C": { + "type": "pty", + "createdAt": 1753626834, + "expiresAt": 1753713234, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "sessionId": "f8f915ee-ab64-471c-b3d2-71cb84d2b5fe", + "tmuxSession": "video", + "description": "completed - Claude-Code-Remote" } } \ No newline at end of file diff --git a/src/data/sessions/02bd4449-bdcf-464e-916e-61bc62a18dd2.json b/src/data/sessions/02bd4449-bdcf-464e-916e-61bc62a18dd2.json new file mode 100644 index 0000000..2836d10 --- /dev/null +++ b/src/data/sessions/02bd4449-bdcf-464e-916e-61bc62a18dd2.json @@ -0,0 +1,18 @@ +{ + "id": "02bd4449-bdcf-464e-916e-61bc62a18dd2", + "token": "0KGM60XO", + "type": "pty", + "created": "2025-07-27T14:29:29.132Z", + "expires": "2025-07-28T14:29:29.132Z", + "createdAt": 1753626569, + "expiresAt": 1753712969, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/09466a43-c495-4a30-ac08-eb425748a28c.json b/src/data/sessions/09466a43-c495-4a30-ac08-eb425748a28c.json new file mode 100644 index 0000000..42856ac --- /dev/null +++ b/src/data/sessions/09466a43-c495-4a30-ac08-eb425748a28c.json @@ -0,0 +1,18 @@ +{ + "id": "09466a43-c495-4a30-ac08-eb425748a28c", + "token": "1NTEJPH7", + "type": "pty", + "created": "2025-07-27T14:15:43.425Z", + "expires": "2025-07-28T14:15:43.425Z", + "createdAt": 1753625743, + "expiresAt": 1753712143, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/0caed3af-35ae-4b42-9081-b1a959735bde.json b/src/data/sessions/0caed3af-35ae-4b42-9081-b1a959735bde.json new file mode 100644 index 0000000..63dff0f --- /dev/null +++ b/src/data/sessions/0caed3af-35ae-4b42-9081-b1a959735bde.json @@ -0,0 +1,18 @@ +{ + "id": "0caed3af-35ae-4b42-9081-b1a959735bde", + "token": "N9PPKGTO", + "type": "pty", + "created": "2025-07-27T13:56:45.557Z", + "expires": "2025-07-28T13:56:45.557Z", + "createdAt": 1753624605, + "expiresAt": 1753711005, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/0f694f4c-f8a4-476a-946a-3dc057c3bc46.json b/src/data/sessions/0f694f4c-f8a4-476a-946a-3dc057c3bc46.json new file mode 100644 index 0000000..009627e --- /dev/null +++ b/src/data/sessions/0f694f4c-f8a4-476a-946a-3dc057c3bc46.json @@ -0,0 +1,18 @@ +{ + "id": "0f694f4c-f8a4-476a-946a-3dc057c3bc46", + "token": "2XQP1N0P", + "type": "pty", + "created": "2025-07-27T14:09:21.440Z", + "expires": "2025-07-28T14:09:21.440Z", + "createdAt": 1753625361, + "expiresAt": 1753711761, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/117a1097-dd97-41ab-a276-e4820adc8da8.json b/src/data/sessions/117a1097-dd97-41ab-a276-e4820adc8da8.json new file mode 100644 index 0000000..3e835a1 --- /dev/null +++ b/src/data/sessions/117a1097-dd97-41ab-a276-e4820adc8da8.json @@ -0,0 +1,18 @@ +{ + "id": "117a1097-dd97-41ab-a276-e4820adc8da8", + "token": "65S5UGHZ", + "type": "pty", + "created": "2025-07-27T13:54:56.875Z", + "expires": "2025-07-28T13:54:56.875Z", + "createdAt": 1753624496, + "expiresAt": 1753710896, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/633a2687-81e7-456e-9995-3321ce3f3b2b.json b/src/data/sessions/633a2687-81e7-456e-9995-3321ce3f3b2b.json new file mode 100644 index 0000000..9f9c64b --- /dev/null +++ b/src/data/sessions/633a2687-81e7-456e-9995-3321ce3f3b2b.json @@ -0,0 +1,18 @@ +{ + "id": "633a2687-81e7-456e-9995-3321ce3f3b2b", + "token": "187JDGZ0", + "type": "pty", + "created": "2025-07-27T14:13:43.575Z", + "expires": "2025-07-28T14:13:43.575Z", + "createdAt": 1753625623, + "expiresAt": 1753712023, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/772628f1-414b-4242-bc8f-660ad53b6c23.json b/src/data/sessions/772628f1-414b-4242-bc8f-660ad53b6c23.json new file mode 100644 index 0000000..d924513 --- /dev/null +++ b/src/data/sessions/772628f1-414b-4242-bc8f-660ad53b6c23.json @@ -0,0 +1,18 @@ +{ + "id": "772628f1-414b-4242-bc8f-660ad53b6c23", + "token": "D8561S3A", + "type": "pty", + "created": "2025-07-27T14:18:24.930Z", + "expires": "2025-07-28T14:18:24.930Z", + "createdAt": 1753625904, + "expiresAt": 1753712304, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e.json b/src/data/sessions/7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e.json new file mode 100644 index 0000000..20d53bd --- /dev/null +++ b/src/data/sessions/7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e.json @@ -0,0 +1,18 @@ +{ + "id": "7f6e11b3-0ac9-44b1-a75f-d3a15a8ec46e", + "token": "G3QE3STQ", + "type": "pty", + "created": "2025-07-27T13:20:03.954Z", + "expires": "2025-07-28T13:20:03.954Z", + "createdAt": 1753622403, + "expiresAt": 1753708803, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "TaskPing-Test", + "message": "This is a test email to verify that the email notification function is working properly." + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/99132172-7a97-46f7-b282-b22054d6e599.json b/src/data/sessions/99132172-7a97-46f7-b282-b22054d6e599.json new file mode 100644 index 0000000..b0d6e1f --- /dev/null +++ b/src/data/sessions/99132172-7a97-46f7-b282-b22054d6e599.json @@ -0,0 +1,18 @@ +{ + "id": "99132172-7a97-46f7-b282-b22054d6e599", + "token": "5XO64F9Z", + "type": "pty", + "created": "2025-07-27T14:17:26.966Z", + "expires": "2025-07-28T14:17:26.966Z", + "createdAt": 1753625846, + "expiresAt": 1753712246, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/a3f2b4f9-811e-4721-914f-f025919c2530.json b/src/data/sessions/a3f2b4f9-811e-4721-914f-f025919c2530.json new file mode 100644 index 0000000..ad54ee6 --- /dev/null +++ b/src/data/sessions/a3f2b4f9-811e-4721-914f-f025919c2530.json @@ -0,0 +1,18 @@ +{ + "id": "a3f2b4f9-811e-4721-914f-f025919c2530", + "token": "P9UBHY8L", + "type": "pty", + "created": "2025-07-27T14:25:25.848Z", + "expires": "2025-07-28T14:25:25.848Z", + "createdAt": 1753626325, + "expiresAt": 1753712725, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/b2408839-8a64-4a07-8ceb-4a7a82ea5b25.json b/src/data/sessions/b2408839-8a64-4a07-8ceb-4a7a82ea5b25.json new file mode 100644 index 0000000..d11d1b7 --- /dev/null +++ b/src/data/sessions/b2408839-8a64-4a07-8ceb-4a7a82ea5b25.json @@ -0,0 +1,18 @@ +{ + "id": "b2408839-8a64-4a07-8ceb-4a7a82ea5b25", + "token": "Z0Q98XCC", + "type": "pty", + "created": "2025-07-27T13:52:54.736Z", + "expires": "2025-07-28T13:52:54.736Z", + "createdAt": 1753624374, + "expiresAt": 1753710774, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "TaskPing-Test", + "message": "This is a test email to verify that the email notification function is working properly." + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/b8dac307-8b4b-4286-aa73-324b9b659e60.json b/src/data/sessions/b8dac307-8b4b-4286-aa73-324b9b659e60.json new file mode 100644 index 0000000..2601b0d --- /dev/null +++ b/src/data/sessions/b8dac307-8b4b-4286-aa73-324b9b659e60.json @@ -0,0 +1,18 @@ +{ + "id": "b8dac307-8b4b-4286-aa73-324b9b659e60", + "token": "NSYKTAWC", + "type": "pty", + "created": "2025-07-27T14:14:10.103Z", + "expires": "2025-07-28T14:14:10.103Z", + "createdAt": 1753625650, + "expiresAt": 1753712050, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/c7c5c95d-4541-47f6-b27a-35c0fd563413.json b/src/data/sessions/c7c5c95d-4541-47f6-b27a-35c0fd563413.json new file mode 100644 index 0000000..5b8a21f --- /dev/null +++ b/src/data/sessions/c7c5c95d-4541-47f6-b27a-35c0fd563413.json @@ -0,0 +1,18 @@ +{ + "id": "c7c5c95d-4541-47f6-b27a-35c0fd563413", + "token": "TTRQKVM9", + "type": "pty", + "created": "2025-07-27T14:24:05.433Z", + "expires": "2025-07-28T14:24:05.433Z", + "createdAt": 1753626245, + "expiresAt": 1753712645, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/d33e49aa-a58f-46b0-8829-dfef7f474600.json b/src/data/sessions/d33e49aa-a58f-46b0-8829-dfef7f474600.json new file mode 100644 index 0000000..5e3ff0b --- /dev/null +++ b/src/data/sessions/d33e49aa-a58f-46b0-8829-dfef7f474600.json @@ -0,0 +1,18 @@ +{ + "id": "d33e49aa-a58f-46b0-8829-dfef7f474600", + "token": "B7R9OR3K", + "type": "pty", + "created": "2025-07-27T14:27:25.292Z", + "expires": "2025-07-28T14:27:25.292Z", + "createdAt": 1753626445, + "expiresAt": 1753712845, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/da40ba76-7047-41e0-95f2-081db87c1b3b.json b/src/data/sessions/da40ba76-7047-41e0-95f2-081db87c1b3b.json new file mode 100644 index 0000000..e89de3b --- /dev/null +++ b/src/data/sessions/da40ba76-7047-41e0-95f2-081db87c1b3b.json @@ -0,0 +1,18 @@ +{ + "id": "da40ba76-7047-41e0-95f2-081db87c1b3b", + "token": "GR0GED2E", + "type": "pty", + "created": "2025-07-27T14:23:35.122Z", + "expires": "2025-07-28T14:23:35.122Z", + "createdAt": 1753626215, + "expiresAt": 1753712615, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/e6e973b6-20dd-497f-a988-02482af63336.json b/src/data/sessions/e6e973b6-20dd-497f-a988-02482af63336.json new file mode 100644 index 0000000..9a3594d --- /dev/null +++ b/src/data/sessions/e6e973b6-20dd-497f-a988-02482af63336.json @@ -0,0 +1,18 @@ +{ + "id": "e6e973b6-20dd-497f-a988-02482af63336", + "token": "YTGT6F6F", + "type": "pty", + "created": "2025-07-27T14:04:00.467Z", + "expires": "2025-07-28T14:04:00.467Z", + "createdAt": 1753625040, + "expiresAt": 1753711440, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/e844d2ae-9098-4528-9e05-e77904a35be3.json b/src/data/sessions/e844d2ae-9098-4528-9e05-e77904a35be3.json new file mode 100644 index 0000000..ef88a99 --- /dev/null +++ b/src/data/sessions/e844d2ae-9098-4528-9e05-e77904a35be3.json @@ -0,0 +1,18 @@ +{ + "id": "e844d2ae-9098-4528-9e05-e77904a35be3", + "token": "GKPSGCBS", + "type": "pty", + "created": "2025-07-27T14:13:38.965Z", + "expires": "2025-07-28T14:13:38.965Z", + "createdAt": 1753625618, + "expiresAt": 1753712018, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/f0d0635b-59f2-45eb-acfc-d649b12fd2d6.json b/src/data/sessions/f0d0635b-59f2-45eb-acfc-d649b12fd2d6.json new file mode 100644 index 0000000..5c62133 --- /dev/null +++ b/src/data/sessions/f0d0635b-59f2-45eb-acfc-d649b12fd2d6.json @@ -0,0 +1,18 @@ +{ + "id": "f0d0635b-59f2-45eb-acfc-d649b12fd2d6", + "token": "JQAOXCYJ", + "type": "pty", + "created": "2025-07-27T14:26:30.022Z", + "expires": "2025-07-28T14:26:30.022Z", + "createdAt": 1753626390, + "expiresAt": 1753712790, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file diff --git a/src/data/sessions/f8f915ee-ab64-471c-b3d2-71cb84d2b5fe.json b/src/data/sessions/f8f915ee-ab64-471c-b3d2-71cb84d2b5fe.json new file mode 100644 index 0000000..1f6ce6b --- /dev/null +++ b/src/data/sessions/f8f915ee-ab64-471c-b3d2-71cb84d2b5fe.json @@ -0,0 +1,18 @@ +{ + "id": "f8f915ee-ab64-471c-b3d2-71cb84d2b5fe", + "token": "5NXM173C", + "type": "pty", + "created": "2025-07-27T14:33:54.331Z", + "expires": "2025-07-28T14:33:54.331Z", + "createdAt": 1753626834, + "expiresAt": 1753713234, + "cwd": "/Users/jessytsui/dev/Claude-Code-Remote", + "notification": { + "type": "completed", + "project": "Claude-Code-Remote", + "message": "[Claude-Code-Remote] Task completed, Claude is waiting for next instruction" + }, + "status": "waiting", + "commandCount": 0, + "maxCommands": 10 +} \ No newline at end of file