134 Commits

Author SHA1 Message Date
EugeneTes
a1b1d12da2 Wait for the debouncer in the leading-slash bridge test 2026-09-25 07:29:56 +00:00
EugeneTes
4fbb5a83a5 Install exact latest pi-claude-code-provider so npm doesn't keep the old ^range 2026-09-25 07:23:58 +00:00
EugeneTes
876b0820a4 Unpin pi-coding-agent (now 0.87.1) 2026-09-25 07:10:50 +00:00
EugeneTes
bdf7aa6b3e Unpin Claude Code CLI and auto-update pi-claude-code-provider on start 2026-09-25 06:33:29 +00:00
EugeneTes
a5e5796d18 Drop GOOGLE_REFRESH_TOKEN env seeding; link Calendar only via /connect_calendar 2026-09-24 20:10:03 +00:00
EugeneTes
4a14148d05 Pin Claude Code CLI to 2.1.278, the version pi-claude-code-provider is tested against 2026-09-23 20:04:15 +00:00
EugeneTes
81015ea4cd Pass Fortress env vars through docker-compose 2026-09-23 19:45:30 +00:00
EugeneTes
b2f13def40 Ignore workspace/fortress and record implementation notes in the spec 2026-09-23 19:41:21 +00:00
EugeneTes
b3fc87a2f5 Document Fortress stealth-browser tools 2026-09-23 19:40:58 +00:00
EugeneTes
2d74f8860e Install tilion-mcp and prefetch the Fortress engine in the Docker image 2026-09-23 19:39:55 +00:00
EugeneTes
5ee7df294c Harden MCP bridge for Fortress: call timeout, abort signal, stderr level and startup tail, stable-channel workaround, screenshot path guidance 2026-09-23 19:36:41 +00:00
EugeneTes
f3f057359a Start the Fortress MCP bridge when FORTRESS_ENABLED=true 2026-09-23 19:30:33 +00:00
EugeneTes
f5bdf84e73 Add Fortress section to the system prompt when enabled 2026-09-23 19:30:19 +00:00
EugeneTes
7f059a77cb Add FORTRESS_* config 2026-09-23 19:29:40 +00:00
EugeneTes
4dc4b5b557 Add Fortress MCP bridge with fortress_ tool prefix and workspace write dir 2026-09-23 19:29:10 +00:00
EugeneTes
3d4ffde3c9 Build Playwright MCP bridge on the generic bridge 2026-09-23 19:29:10 +00:00
EugeneTes
52c4e13d5c Extract generic stdio MCP bridge with optional tool-name prefix 2026-09-23 19:29:10 +00:00
EugeneTes
231740b32d Add implementation plan for Fortress MCP bridge 2026-09-23 19:28:23 +00:00
EugeneTes
c078ce8add Add design spec for Fortress stealth-browser MCP bridge 2026-09-23 19:23:00 +00:00
EugeneTes
f9d84cccac Truncate voice-transcript echo so Telegram doesn't reject long messages
The bot re-emits the transcript back to the owner as a preview
(`🎤 …`). Telegram's sendMessage caps at 4096 chars, so a long audio
message crashed the handler with a 400. Trim the echo to 200 chars
with an ellipsis; the agent still receives the full transcript via
result.input.text.
2026-09-23 14:26:07 +00:00
EugeneTes
a8f838cb61 Wrap device user code in <code> so Telegram taps to copy 2026-09-23 11:00:40 +00:00
EugeneTes
8d663685b3 Document the /connect_calendar flow in README and .env.example 2026-09-23 10:33:20 +00:00
EugeneTes
ee38bd02d5 Wire GoogleTokenStore and DeviceFlowClient into main 2026-09-23 10:29:43 +00:00
EugeneTes
f3c4025b38 Handle thrown exceptions from device-flow complete() in /calendar_done 2026-09-23 10:28:11 +00:00
EugeneTes
279134a305 Add /connect_calendar and /calendar_done bot commands 2026-09-23 10:20:48 +00:00
EugeneTes
2d294995fa Fix runTool helper in calendar tests to match execute() arity 2026-09-23 10:16:13 +00:00
EugeneTes
ecf61c34e1 Calendar tool reads refresh token from GoogleTokenStore per call 2026-09-23 10:07:50 +00:00
EugeneTes
f765784acb Make GOOGLE_REFRESH_TOKEN optional in config 2026-09-23 10:03:09 +00:00
EugeneTes
1a4960e5bb Add Google device-authorization flow client 2026-09-23 09:59:11 +00:00
EugeneTes
e776c32ca3 Add GoogleTokenStore for workspace-local refresh token 2026-09-23 09:55:09 +00:00
EugeneTes
e9c39c5f87 Add implementation plan for Google Calendar connect flow 2026-09-23 09:49:17 +00:00
EugeneTes
6d430b8c0c Add spec for in-bot Google Calendar connect flow 2026-09-23 09:21:30 +00:00
EugeneTes
288506a390 Add manual E2E entry for forward-with-audio-comment merge 2026-09-23 07:18:26 +00:00
EugeneTes
2004572e5e Hold debouncer flush while a Telegram message handler is transcribing 2026-09-23 07:13:24 +00:00
EugeneTes
98e1ed2613 Add pending-token API to InputDebouncer 2026-09-23 07:05:09 +00:00
EugeneTes
76bbac2df9 Add implementation plan for forwarded audio + comment merge
Three TDD tasks: pending-token API on the debouncer, bracket the
bridge message handler, and one manual E2E line in the README.
2026-09-23 07:02:09 +00:00
EugeneTes
483df6f528 Add spec for merging forwarded audio with its comment
Fixes the debouncer race where a fast comment message flushes on its
own before slow audio transcription completes, splitting a single
user turn into two.
2026-09-23 06:58:54 +00:00
EugeneTes
c35d0434ff Document reply / reply-with-quote support in the README 2026-09-22 08:53:01 +00:00
EugeneTes
bbc8c41118 Pass bot user id into normalizeMessage for reply labelling 2026-09-22 08:51:19 +00:00
EugeneTes
7a53ce379a Prepend reply header ahead of forward header in normalizeMessage 2026-09-22 08:47:37 +00:00
EugeneTes
38ca7cbfea Add buildReplyHeader helper with truncation and media descriptors 2026-09-22 08:42:59 +00:00
EugeneTes
0febacfee7 Add reply, quote, and botUserId types to inbound 2026-09-22 08:38:54 +00:00
EugeneTes
90bcb6fd1f Implementation plan for reply and reply-with-quote context 2026-09-22 08:15:37 +00:00
EugeneTes
99dc906d4e Design spec: surface reply and reply-with-quote context to the agent 2026-09-22 08:11:40 +00:00
EugeneTes
d1d8b26e22 Debounce inbound messages so forward + comment reach the agent as one turn
Telegram sends "forward with a comment" as two separate messages. Buffer
inputs for ~600ms after each arrival and flush a single merged AgentInput;
label forwarded content with its origin so the merged text is intelligible.
2026-09-22 07:51:13 +00:00
EugeneTes
4f2248e24c Default PLAYWRIGHT_BROWSER to chromium in the image
The Dockerfile installs Chromium via `playwright install chromium`, but
Playwright MCP defaults to Chrome (the branded Google build) when no
browser is specified. On a fresh container the launch fails and the
agent falls back to installing Chrome at runtime. Baking the env var
into the image keeps installed browser and default in sync.
2026-09-08 12:45:19 +00:00
EugeneTes
311bdb2eed Document the send tool in the README 2026-09-08 12:32:59 +00:00
EugeneTes
0a40a6b5fa Wire send tool into main.ts 2026-09-08 12:29:19 +00:00
EugeneTes
1bda8a2f16 Document the send tool in the system prompt 2026-09-08 12:26:12 +00:00
EugeneTes
f687c1b9a3 Test Pi tool wrapper for send 2026-09-08 12:23:43 +00:00