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
EugeneTes
202cb001e7
Test oversize photo/document rejection
2026-09-08 12:20:48 +00:00
EugeneTes
f98572b39e
Test explicit kind override for send
2026-09-08 12:18:06 +00:00
EugeneTes
40cb4a8061
Test document routing for non-image extensions
2026-09-08 12:15:46 +00:00
EugeneTes
a6612edc1d
Type send.test.ts mocks against SendBotApi
2026-09-08 12:05:09 +00:00
EugeneTes
c30fccb6d5
Send photos through sendPhoto with auto-detection
2026-09-08 12:03:17 +00:00
EugeneTes
7c806d2d57
Reject missing files and directory paths in send
2026-09-08 11:59:43 +00:00
EugeneTes
3db5844c86
Reject send paths that escape the workspace
2026-09-08 11:55:25 +00:00