134 Commits

Author SHA1 Message Date
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
EugeneTes
f2fa755caa Bound shutdown and print single-line startup failures
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:37:51 +02:00
EugeneTes
6995685419 Wire daemon startup, shutdown, and polling
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:31:11 +02:00
EugeneTes
2aa3ef56f0 Add Telegram bridge with owner guard, commands, and event rendering
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:22:25 +02:00
EugeneTes
fcd07f418a Add Telegram outbound with progress message and HTML fallback
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:11:55 +02:00
EugeneTes
e0add6578e Make inbox saves race-safe and cap file name length
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:08:26 +02:00
EugeneTes
e91e0f24c5 Add Telegram inbound normalization for text, photos, voice, documents
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 17:01:08 +02:00
EugeneTes
52785df229 Add Pi backend, secretary system prompt, and workspace templates
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:54:56 +02:00
EugeneTes
4b7348a704 Settle in-flight run when the session is replaced or disposed
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:46:46 +02:00
EugeneTes
1e5b1b6f3e Add AgentHost with run event mapping
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:38:22 +02:00
EugeneTes
7e7fd473a5 Truncate tool summaries by code point
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:34:35 +02:00
EugeneTes
f1474e50c9 Add agent host event types and tool call summaries
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:29:37 +02:00
EugeneTes
887742282c Wrap transcription response parsing in a readable error
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:26:57 +02:00
EugeneTes
f7dc672e3c Add OpenAI transcription client
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:22:54 +02:00
EugeneTes
793c40e39f Reject timeoutSec on text jobs and add schedule tool prompt snippet
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:19:56 +02:00
EugeneTes
99af73b685 Add schedule tool for the agent
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:14:41 +02:00
EugeneTes
060786de6d Serialize job persistence and bound scheduler drain
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 16:07:56 +02:00
EugeneTes
cf0fdbd625 Add scheduler with firing rules and failure dedupe
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:53:16 +02:00
EugeneTes
c1914a650b Make script timeout resolve promptly and kill the process tree
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:47:53 +02:00
EugeneTes
5f100a330a Add script runner with stdout condition rule
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:40:48 +02:00
EugeneTes
2b76a18267 Add scheduler job types and JSON job store
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:35:51 +02:00
EugeneTes
d45f32a9e6 Rewrite chunker split loop to guarantee termination and restore fence tests
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:29:41 +02:00
EugeneTes
cb9f2f1eb9 Remove length cap from fence detection in chunker
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:19:30 +02:00
EugeneTes
8cb30e9361 Always reopen split fences with the original opener
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 15:12:54 +02:00
EugeneTes
3b879fe1bb Fix separator stripping, fence closer length, and guards in Markdown chunker
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:58:41 +02:00
EugeneTes
7d18c6be87 Add Markdown chunking with fence reopening
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:45:27 +02:00
EugeneTes
2e03203e00 Restore NUL placeholder sentinel in Markdown converter
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:39:47 +02:00
EugeneTes
23bd63b2c6 Fix link URL formatting and fence blank-line collapse in Markdown converter
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:34:35 +02:00
EugeneTes
9affcc1c03 Add Markdown to Telegram HTML converter
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:24:58 +02:00
EugeneTes
7373c51995 Scaffold project with logger and config
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:19:31 +02:00
EugeneTes
794580ee3a Ignore SDD scratch directory
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:17:09 +02:00
EugeneTes
9c44020252 Add implementation plan and align spec with it
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:14:22 +02:00
EugeneTes
0aacbcc4f7 Spec self-review: single terminal event per run, reuse PI_CODING_AGENT_DIR
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 13:39:55 +02:00
EugeneTes
20b84d7fdd Add Volcanic Secretary design spec
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 13:38:46 +02:00