Fix HOME volume mount, genericize topic, add progress statuses, extract lexicon

- Volume was mounted at ~/.claude only, but claude-code writes auth to
  ~/.claude.json too — that file lived on the ephemeral container layer and
  was lost on every recreate. Now the whole $HOME is on the named volume,
  and claude-config moved outside HOME (/app) so it isn't shadowed by it.
- Default /news topic was hardcoded to AI; now it's a configurable
  DEFAULT_TOPIC (plain "главные новости дня"), topic is fully free-form.
- Prompt now instructs Claude to send interim " ..." progress updates via
  send_to_telegram while researching, not just the final digest — a bare
  request like "call this tool" was already taking 3+ minutes end-to-end,
  so silence read as broken.
- All user-facing/prompt text moved into bot/lib/lexicon.dart.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 21:53:38 +03:00
parent cb2041fc56
commit 7bfe0dfe0c
8 changed files with 93 additions and 52 deletions

View File

@@ -33,10 +33,13 @@ COPY --from=mcp-build /build/agent-news-mcp /usr/local/bin/agent-news-mcp
RUN chmod +x /usr/local/bin/agent-news-bot /usr/local/bin/agent-news-mcp
RUN useradd -m -u 10001 agent
COPY --chown=agent:agent runner/claude-config /home/agent/claude-config
# claude-config живёт ВНЕ /home/agent: логин claude-code пишет не только в
# ~/.claude/, но и в файл ~/.claude.json — весь $HOME монтируется как volume
# (см. docker-compose.yml), и если положить конфиг внутрь home, он потеряется
# под пустым volume при первом старте.
COPY --chown=agent:agent runner/claude-config /app/claude-config
USER agent
WORKDIR /home/agent
ENV MCP_CONFIG_PATH=/home/agent/claude-config/mcp.json
ENV MCP_CONFIG_PATH=/app/claude-config/mcp.json
# ~/.claude (OAuth-логин claude-code) монтируется сюда через PVC — см. deploy/agent-news.
CMD ["agent-news-bot"]