10 Commits

Author SHA1 Message Date
EugeneTes
bdf7aa6b3e Unpin Claude Code CLI and auto-update pi-claude-code-provider on start 2026-09-25 06:33:29 +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
2d74f8860e Install tilion-mcp and prefetch the Fortress engine in the Docker image 2026-09-23 19:39:55 +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
d69d01124d Install Chromium + deps in image for Playwright MCP 2026-09-08 10:55:34 +00:00
EugeneTes
f876d1cfdf Set container timezone to Europe/Warsaw
Install tzdata so TZ resolves, default SECRETARY_TIMEZONE to
Europe/Warsaw, and pass it through as the container-wide TZ so OS
timestamps (logs, date, cron) match the app's scheduling zone.
2026-09-07 06:34:37 +00:00
EugeneTes
fe70fa10e1 Put pi on PATH and install Claude Code CLI in the image
Two additions:
- ENV PATH prepends /app/node_modules/.bin so `pi` is on PATH inside
  the container (previously `docker exec ... pi ...` failed with
  "command not found").
- `npm install -g @anthropic-ai/claude-code` so the `claude` CLI is
  available — pi-claude-code-provider shells out to it.
2026-09-06 17:43:30 +00:00
EugeneTes
4296157689 Make docker-entrypoint pass through command args
The node:24 base image sets ENTRYPOINT ["docker-entrypoint.sh"]. We
override that script but the ENTRYPOINT still runs on every start, so
compose's `command:` was being handed to our script as args (and
silently ignored — we always exec'd `node dist/main.js`). That made the
`sleep infinity` override useless: the crash-looping app kept running.

Fix by execing "$@" when args are present so compose overrides work,
and set CMD to ["node","dist/main.js"] so normal (no-override) starts
still boot the app.
2026-09-06 17:38:54 +00:00
EugeneTes
8c6b4c1a54 Install pi-claude-code-provider on first container start
The Pi coding agent stores installed packages under $PI_CODING_AGENT_DIR
(=/pi-agent in the image), which is a volume — so anything installed at
build time is masked at runtime. Wrap the CMD in an entrypoint that runs
`pi install npm:pi-claude-code-provider` the first time the volume is
seen and drops a marker so subsequent starts are a no-op.
2026-09-06 17:21:03 +00: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