Commit Graph
34 Commits
Author SHA1 Message Date
0xK eb1bdd5683 fix: auto-install git (brew/apt-get) if missing before OTA check 2026-03-24 12:00:07 +01:00
0xK e12a9bf784 fix: skip OTA update gracefully when git is not installed 2026-03-24 11:58:30 +01:00
0xK ebef198131 feat: add OTA update logic to start.sh (git pull + requirements.txt check) 2026-03-24 11:46:32 +01:00
0xK 581dd0b89a fix: optional MCP_API_KEY in tunnel mode + address Copilot review issues
- start.sh: detect POKE_TUNNEL env var; skip MCP_API_KEY requirement and
  auth when running via poke tunnel (server.py reads the same var)
- start.sh: pass POKE_TOKEN into Python via env var + use json.dumps to
  safely escape quotes/backslashes in YAML (fixes shell-interpolation
  injection risk, Copilot issue #5 / start.sh:72)
- start.sh: anchor MCP_API_KEY guard to non-commented line-start
  assignments and also detect empty value (Copilot issues #1, #8 /
  start.sh:104)
- start.sh: anchor re.sub pattern with re.MULTILINE so only the actual
  assignment line is rewritten, not mid-line occurrences (Copilot
  issue #2)
- start.sh: check re.sub replacement count, warn when poke_api_key key
  is missing from config.yml (Copilot issue #6)
- start.sh: guard npm/npx usage with command -v check; fall back to npx
  poke instead of hard-failing (Copilot issue #3)
- start.sh: use python3 consistently for server.py (Copilot issue #9 /
  start.sh:134)
- start.sh: prefer npx poke tunnel; check command -v poke and fall back
  gracefully (Copilot issue #10 / start.sh:135)
- server.py: honour POKE_TUNNEL=1 — skip bearer-token auth so the poke
  tunnel handles identity; MCP_API_KEY becomes optional in that mode
- README.md: add Node.js/npm prerequisite note (Copilot issue #4)
- README.md: clarify server starts on first run; update AI agent prompt
  (Copilot issue #11 / README.md:48)
2026-03-24 11:40:26 +01:00
0xK 7e94e91753 remove setup.sh — logic moved into start.sh 2026-03-24 10:02:52 +01:00
0xK 37f73e3a9f refactor: merge setup logic into start.sh, remove setup.sh 2026-03-24 10:02:44 +01:00
0xK 45f75d9e12 feat: add setup.sh with Poke login SDK token automation 2026-03-24 09:43:44 +01:00
Kacper Kwapisz 9fe13e5e97 Add update check on start.sh launch
Compares local HEAD against latest main on GitHub and prints a notice
if a newer version is available.
2026-03-23 19:35:05 +01:00
Kacper Kwapisz fef9157c4a Fix GET /mcp 405 log spam and resolve_account email matching
Add a custom GET /mcp health route so health checks and client polling
return 200 instead of flooding logs with 405. Also allow resolve_account
to match by email address (from_address, imap_username, smtp_username)
in addition to account ID.
2026-03-23 19:33:51 +01:00
Kacper Kwapisz bbee0acb13 Move AI agent setup to Quick Start as the primary onboarding path 2026-03-23 19:16:20 +01:00
Kacper Kwapisz 420428e513 Remove one-click deploy buttons, Deployment section, and render.yaml
Non-technical users are covered by the AI agent setup prompt.
Technical users can follow Setup or Docker sections directly.
2026-03-23 19:11:24 +01:00
Kacper Kwapisz 6e1a487676 Use fenced code block for AI agent prompt so GitHub shows copy button 2026-03-23 19:09:48 +01:00
Kacper Kwapisz 2950e5d82c Add AI agent setup prompt, start.sh launcher, and container resource limits
Adds a copy-pasteable prompt for non-technical users to set up poke-mail
via their AI coding agent, a start.sh script that loads .env, activates
the virtualenv, starts the server, and tunnels to Poke, and recommended
container resource limits for orchestrators.
2026-03-23 19:08:31 +01:00
Kacper Kwapisz b3a5cd4c5b Switch webhook endpoint to Poke SDK's /inbound/api-message 2026-03-23 16:38:53 +01:00
Kacper Kwapisz df2dc57600 Fix GHCR image URL to use actual repo owner 2026-03-23 16:29:23 +01:00
Kacper Kwapisz 81945732d1 Update config examples to show iCloud and custom SMTP instead of Gmail 2026-03-23 14:24:29 +01:00
Kacper Kwapisz 2f7853f2bf Add one-click deploy buttons for Render and Railway
Update render.yaml to use Docker runtime with IMAP env vars so the
deploy button prompts users for credentials. Add Railway deploy link.
2026-03-23 14:06:32 +01:00
Kacper Kwapisz a02b558654 Add from_address to README config example 2026-03-23 13:51:12 +01:00
Kacper Kwapisz 4ca7032e30 Add from_address override per account for custom domain sending
Useful for iCloud SMTP where login is @icloud.com but you send as a
custom domain. Falls back to smtp_username when not set.
2026-03-23 13:47:29 +01:00
Kacper Kwapisz 4a14d33e22 Default allow_send to false — sending must be explicitly enabled 2026-03-23 08:55:17 +01:00
Kacper Kwapisz 518aeda901 Add blocked_recipients per account to prevent sending to specific addresses 2026-03-23 08:52:59 +01:00
Kacper Kwapisz 0323eb1f7f Fix log spam: skip existing unseen on startup, silence httpx logs 2026-03-23 00:21:21 +01:00
Kacper Kwapisz 8a2d6ac8ed Add debug logging for Poke webhook auth to diagnose 401s 2026-03-23 00:20:23 +01:00
Kacper Kwapisz 9c84ea1a91 Add create_draft tool and allow_send toggle per account
- create_draft: saves email as draft in IMAP Drafts folder
- allow_send: global config toggle (default true), overridable per account
- When sending disabled, send_email returns error suggesting create_draft
2026-03-23 00:13:35 +01:00
Kacper Kwapisz 6e9f1ca617 Fix NoneType encode error in search_emails address formatting 2026-03-23 00:00:47 +01:00
Kacper Kwapisz dc7d379334 Fix healthcheck: expect 405 from GET /mcp (MCP is POST-only) 2026-03-22 22:11:27 +01:00
Kacper Kwapisz 8a0abba80c Make SMTP config optional, falls back to IMAP host/credentials 2026-03-22 22:06:48 +01:00
Kacper Kwapisz d5e80f164e Quote YAML values containing colons in config example 2026-03-22 22:00:28 +01:00
Kacper Kwapisz 48b3f3816f Change default port to 3000 2026-03-22 21:55:49 +01:00
Kacper Kwapisz fc9a2bb8f8 Fix lint: remove unused imports, apply ruff formatting 2026-03-22 21:52:37 +01:00
Kacper Kwapisz 96d5e7d4e3 Use semver-only tags for Docker images, drop branch/sha tags 2026-03-22 21:50:36 +01:00
Kacper Kwapisz 385202022e Add :latest tag to Docker image on main branch pushes 2026-03-22 21:49:44 +01:00
Kacper Kwapisz c034589666 Fix CI workflow YAML syntax: escape curly braces in python command 2026-03-22 21:47:40 +01:00
Kacper Kwapisz eb76dbb489 Initial release: IMAP/SMTP email bridge MCP server
- 11 MCP tools: search, read, send, archive, move, mark emails + folder management
- IMAP IDLE watcher with polling fallback, forwards new emails to Poke webhook
- Bearer token auth (MCP_API_KEY) for securing the server
- Multi-account support via config.yml
- Docker + GitHub Actions CI/CD (lint, build, push to GHCR)
2026-03-22 21:46:14 +01:00