12777914ab
Main Release / hadolint (push) Successful in 7s
Main Release / build (push) Successful in 2m34s
Main Release / tag (push) Successful in 9s
Tag Release / hadolint (push) Successful in 12s
Tag Release / build (push) Successful in 2m53s
Tag Release / build-push (push) Successful in 3m29s
2.8 KiB
2.8 KiB
AGENTS.md
1. Overview
Container image for Hermes Agent WebUI with a bundled Hermes Agent runtime, distributed via Docker Hub as jcabillot/hermes-agent-webui.
2. Folder Structure
Dockerfile: Multi-stage image build — clonesnousresearch/hermes-agentandnesquena/hermes-webui, installs both in a shared venv, copies to a slim runtime stage. Exposes port8787..gitea/workflows/docker-build.yaml: Gitea Actions pipeline — builds and pushes the image to Docker Hub on push tomainand on a daily cron schedule.renovate.json: Regex-based custom manager tracking upstreamnousresearch/hermes-agentandnesquena/hermes-webuiDocker tag updates.README.md: Public-facing documentation.AGENTS.md: This file — contributor guide for AI agents.
3. Core Behaviors & Patterns
- Build & Release: The Dockerfile pins two upstream repos via
ARG HERMES_AGENT_VERSIONandARG HERMES_WEBUI_VERSION. On push tomain, the CI pipeline builds the image, bumps the git tag (patch), which triggers a tag release that pushes tojcabillot/hermes-agent-webui. A daily cron rebuild pushes<latest-tag>-latest. - Dependency Tracking: Renovate scans
Dockerfilefor bothARGversion pins and opens PRs when either upstream publishes a new tag. - Multi-stage Build: Build stage clones repos and creates a venv; runtime stage is a clean
python:3.12-slimwith only the venv and source trees copied over. - Health Check: The container exposes port
8787with a/healthendpoint polled every 30s.
4. Conventions
- Version Pinning: Both upstream versions (
HERMES_AGENT_VERSION,HERMES_WEBUI_VERSION) are pinned viaARGat the top of the builder stage, managed by renovate. - CI Secrets:
DOCKERHUB_USERNAME,DOCKERHUB_TOKEN,SA_TOKEN_ACTION_PUSH_TAGSrequired. Login skipped on PR events. - Dockerfile Style: Multi-stage with
AS builder/ runtime split.apt-getin a singleRUNwith cleanup.COPY --from=builderfor artifacts. Comments annotate stage boundaries. - Pin Hashing: All GitHub Action versions pinned to commit SHA hashes with semantic version in trailing comment.
5. Working Agreements
- Respond in the user's preferred language (French or English); keep technical terms in English, never translate code blocks
- Create tests/lint only when explicitly requested
- Build context by reviewing related usages and patterns before editing
- Prefer simple solutions; avoid unnecessary abstraction
- Ask for clarification when requirements are ambiguous
- Make minimal changes; preserve public APIs and behavior
- Run type-check after code changes (no type-checker in this project — skip)
- New files: single-purpose, colocated with related concerns
- External dependencies: only when necessary, explain why