Skip to content

feat(skills): add /skill_update + /skill_verify, group /listskill by … #10

feat(skills): add /skill_update + /skill_verify, group /listskill by …

feat(skills): add /skill_update + /skill_verify, group /listskill by … #10

Triggered via push May 4, 2026 08:02
Status Failure
Total duration 50s
Artifacts

ci.yml

on: push
Lint, Build, Test
46s
Lint, Build, Test
Fit to window
Zoom out
Zoom in

Annotations

3 errors and 1 warning
Lint, Build, Test
Process completed with exit code 1.
tests/runtime/bootstrap.test.ts > runtime/bootstrap > keeps optional template placeholders when wizard clears previous optional values: tests/runtime/bootstrap.test.ts#L157
AssertionError: expected '# ===================================…' to contain '# OPENCODE_API_URL=http://localhost:4…' - Expected + Received - # OPENCODE_API_URL=http://localhost:4096 + # ============================================================= + # Opencode Personal Assistant — Environment Configuration + # ============================================================= + # Copy this file to .env and fill in the values. + # Run ./setup.sh for a guided interactive setup. + + # ------------------------------------------------------------- + # REQUIRED — Telegram + # ------------------------------------------------------------- + # Get your bot token from @Botfather on Telegram + TELEGRAM_BOT_TOKEN=token:value + + # Get your user ID from @userinfobot on Telegram + TELEGRAM_ALLOWED_USER_ID=42 + + # Optional: SOCKS5 or HTTP proxy for Telegram API + # TELEGRAM_PROXY_URL=***host:port + + # ------------------------------------------------------------- + # OPENCODE SERVER + # Internal compose-network address of the OpenCode container. + # Should normally not be changed. + # ------------------------------------------------------------- + OPENCODE_API_URL=http://opencode:4096 + + # Optional: server auth (if configured in OpenCode) + OPENCODE_SERVER_USERNAME=opencode + # OPENCODE_SERVER_PASSWORD= + + # Auto-restart OpenCode if health checks fail (useful for VPS) + OPENCODE_AUTO_RESTART_ENABLED=false + + # ------------------------------------------------------------- + # AI MODEL + # big-pickle = Claude Sonnet — completely FREE, no API key needed + # ------------------------------------------------------------- + OPENCODE_MODEL_PROVIDER=opencode + OPENCODE_MODEL_ID=big-pickle + + # ------------------------------------------------------------- + # BOT SETTINGS + # ------------------------------------------------------------- + # Language: en, es, de, fr, ru, zh + BOT_LOCALE=en + + # Message format: markdown (default) or raw + MESSAGE_FORMAT_MODE=markdown + + # Hide intermediate tool messages (💻 bash, 📖 read, etc.) + HIDE_TOOL_CALL_MESSAGES=false + # Thinking message "💭 Thinking..." — default: true (hidden for cleaner UX) + HIDE_THINKING_MESSAGES=true + # Run footer "🛠️ Build · 🤖 model · 🕒 Xs" — default: true (hidden) + HIDE_ASSISTANT_FOOTER=true + + # ------------------------------------------------------------- + # MEMORY + # ------------------------------------------------------------- + # Path to the memory directory (relative to working directory) + MEMORY_DIR=./memory + + # Inject soul/memory/context into every prompt + MEMORY_INJECT_ENABLED=true + + # ------------------------------------------------------------- + # TTS — Text to Speech (optional) + # Choose one provider: + # ------------------------------------------------------------- + # Provider options: speechify | openai | google | (empty = disabled) + TTS_PROVIDER= + + # --- Speechify (recommended — 50,000 chars/month FREE) --- + # Get your free API key at https://api.speechify.ai + SPEECHIFY_API_KEY= + TTS_VOICE=henry + # Spanish voices: es-ES-elena, es-MX-camila, es-ES-diego + + # --- OpenAI-compatible TTS --- + # TTS_API_URL=https://api.openai.com/v1 + # TTS_API_KEY= + # TTS_MODEL=tts-1 + # TTS_VOICE=alloy + + # --- Google Cloud TTS --- + # TTS_PROVIDER=google + # TTS_VOICE=en-US-Studio-O + # GOOGLE_APPLICATION_CREDENTIALS=/app/gcloud-key.json + + # Send a single audio at the end of the full response (recommended) + TTS_WAIT_FOR_IDLE=true + + # How the audio is delivered to Telegram: + # voice - voice note with circular waveform UI (default). The synthesized + # MP3 is passed directly to Telegram's sendVoice endpoint, which + # transcodes server-side. No ffmpeg or other dependency is needed. + # audio - audio file with music-player UI. Sends the MP3 via sendAudio. + # If voice mode is configured but Telegram rejects the MP3 (rare), the bot + # automatically falls back to sendAudio so you always get audio. + TTS_DELIVERY_MODE=voice + + # -------------------------------------------------------------
tests/runtime/bootstrap.test.ts > runtime/bootstrap > builds env from template and keeps comments and section order: tests/runtime/bootstrap.test.ts#L90
AssertionError: expected '# ===================================…' to contain '# Telegram Bot Token (from @Botfather)' - Expected + Received - # Telegram Bot Token (from @Botfather) + # ============================================================= + # Opencode Personal Assistant — Environment Configuration + # ============================================================= + # Copy this file to .env and fill in the values. + # Run ./setup.sh for a guided interactive setup. + + # ------------------------------------------------------------- + # REQUIRED — Telegram + # ------------------------------------------------------------- + # Get your bot token from @Botfather on Telegram + TELEGRAM_BOT_TOKEN=token:value + + # Get your user ID from @userinfobot on Telegram + TELEGRAM_ALLOWED_USER_ID=42 + + # Optional: SOCKS5 or HTTP proxy for Telegram API + # TELEGRAM_PROXY_URL=***host:port + + # ------------------------------------------------------------- + # OPENCODE SERVER + # Internal compose-network address of the OpenCode container. + # Should normally not be changed. + # ------------------------------------------------------------- + OPENCODE_API_URL=http://opencode:4096 + + # Optional: server auth (if configured in OpenCode) + OPENCODE_SERVER_USERNAME=opencode + # OPENCODE_SERVER_PASSWORD= + + # Auto-restart OpenCode if health checks fail (useful for VPS) + OPENCODE_AUTO_RESTART_ENABLED=false + + # ------------------------------------------------------------- + # AI MODEL + # big-pickle = Claude Sonnet — completely FREE, no API key needed + # ------------------------------------------------------------- + OPENCODE_MODEL_PROVIDER=opencode + OPENCODE_MODEL_ID=big-pickle + + # ------------------------------------------------------------- + # BOT SETTINGS + # ------------------------------------------------------------- + # Language: en, es, de, fr, ru, zh + BOT_LOCALE=ru + + # Message format: markdown (default) or raw + MESSAGE_FORMAT_MODE=markdown + + # Hide intermediate tool messages (💻 bash, 📖 read, etc.) + HIDE_TOOL_CALL_MESSAGES=false + # Thinking message "💭 Thinking..." — default: true (hidden for cleaner UX) + HIDE_THINKING_MESSAGES=true + # Run footer "🛠️ Build · 🤖 model · 🕒 Xs" — default: true (hidden) + HIDE_ASSISTANT_FOOTER=true + + # ------------------------------------------------------------- + # MEMORY + # ------------------------------------------------------------- + # Path to the memory directory (relative to working directory) + MEMORY_DIR=./memory + + # Inject soul/memory/context into every prompt + MEMORY_INJECT_ENABLED=true + + # ------------------------------------------------------------- + # TTS — Text to Speech (optional) + # Choose one provider: + # ------------------------------------------------------------- + # Provider options: speechify | openai | google | (empty = disabled) + TTS_PROVIDER= + + # --- Speechify (recommended — 50,000 chars/month FREE) --- + # Get your free API key at https://api.speechify.ai + SPEECHIFY_API_KEY= + TTS_VOICE=henry + # Spanish voices: es-ES-elena, es-MX-camila, es-ES-diego + + # --- OpenAI-compatible TTS --- + # TTS_API_URL=https://api.openai.com/v1 + # TTS_API_KEY= + # TTS_MODEL=tts-1 + # TTS_VOICE=alloy + + # --- Google Cloud TTS --- + # TTS_PROVIDER=google + # TTS_VOICE=en-US-Studio-O + # GOOGLE_APPLICATION_CREDENTIALS=/app/gcloud-key.json + + # Send a single audio at the end of the full response (recommended) + TTS_WAIT_FOR_IDLE=true + + # How the audio is delivered to Telegram: + # voice - voice note with circular waveform UI (default). The synthesized + # MP3 is passed directly to Telegram's sendVoice endpoint, which + # transcodes server-side. No ffmpeg or other dependency is needed. + # audio - audio file with music-player UI. Sends the MP3 via sendAudio. + # If voice mode is configured but Telegram rejects the MP3 (rare), the bot + # automatically falls back to sendAudio so you always get audio. + TTS_DELIVERY_MODE=voice + + # ------------------------------------------------------------- + #
Lint, Build, Test
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/