12 Commits

Author SHA1 Message Date
EugeneTes
a5e5796d18 Drop GOOGLE_REFRESH_TOKEN env seeding; link Calendar only via /connect_calendar 2026-09-24 20:10:03 +00:00
EugeneTes
b3fc87a2f5 Document Fortress stealth-browser tools 2026-09-23 19:40:58 +00:00
EugeneTes
8d663685b3 Document the /connect_calendar flow in README and .env.example 2026-09-23 10:33:20 +00:00
EugeneTes
288506a390 Add manual E2E entry for forward-with-audio-comment merge 2026-09-23 07:18:26 +00:00
EugeneTes
c35d0434ff Document reply / reply-with-quote support in the README 2026-09-22 08:53:01 +00:00
EugeneTes
311bdb2eed Document the send tool in the README 2026-09-08 12:32:59 +00:00
EugeneTes
3a43391eb0 Document Playwright MCP env vars and manual E2E steps 2026-09-08 10:56:54 +00:00
EugeneTes
ae6485d3f4 Document recurring-event manual E2E check 2026-09-08 08:50:14 +00:00
EugeneTes
0eed2fa36d List usable model ids when PI_MODEL points at a provider without credentials
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 18:38:43 +02:00
EugeneTes
59b11eda14 Add Windows launcher script and Telegram setup guide
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 18:30:13 +02:00
EugeneTes
bf35eee736 Log crash stacks, warmer /start, correct command detection, and stricter fallbacks (Group D)
- main.ts: unhandledRejection/uncaughtException also print the stack (or
  message) via console.error so it is not lost when the logger only prints a
  single line; bot.start(...) is no longer fire-and-forget -- a polling
  failure is logged and exits the process instead of failing silently.
- bridge.ts: /start now greets before showing the same status block as
  /status (split back into two command handlers). Command detection now
  checks for a bot_command entity at offset 0 instead of a leading "/", so a
  message that merely starts with a slash (e.g. a path) reaches the agent
  instead of getting "Unknown command.". An unsupported media message with
  no text and no other notes (sticker, location, video note, ...) now gets
  an explicit "I can handle text, photos, voice notes, and files." reply
  instead of silently doing nothing.
- outbound.ts sendMarkdown: only falls back to plain text for Telegram's
  400 "can't parse entities" style errors; any other error (network, etc.)
  propagates instead of being masked as a silent plain-text resend.
- runner.ts resolveShell: added the per-user Git for Windows bash.exe under
  %LOCALAPPDATA% as a third candidate; README's Windows section now
  mentions SECRETARY_SHELL for that case.
- docker-compose.yml: added init: true, since Node does not reap zombies
  left by killed script process groups.

Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 18:09:21 +02:00
EugeneTes
d8561748a7 Add README, Docker packaging, and workspace templates
Docker build verified locally (docker build -t volcanic-secretary .
succeeded on this machine). Step 6's manual end-to-end checklist
against a real Telegram bot was not run in this environment (no bot
token or owner id available); the checklist is kept in the README's
Tests section for the owner to run before relying on this in
production.

Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:43:58 +02:00