Generate frontend icons from the shared source artwork during each build. Keep the locked icon dependencies out of the application runtime. Nix needs setuptools and CFFI to build the locked python-olm source. Its offline npm manifest must omit semver overrides because direct package specs become local tarball paths. Preserve the repository manifest and lockfile. Docker must use the PM interpreter rather than a second Python under /root. Install the application into its venv explicitly, use the image compiler, and make package facts readable by the runtime user. Verified: - nix build .#desktop and frontend-icons/package-contents/cli-commands - Packaged Electron PTY spawn and libolm encryption roundtrip - ARM Linux and macOS desktop evaluation, not native builds - Docker linux/amd64 build and 8 focused runtime tests The full test suite was not run. Leave llama integration unchanged.
124 lines
2.4 KiB
Plaintext
124 lines
2.4 KiB
Plaintext
# Git
|
|
.git
|
|
.gitignore
|
|
.gitmodules
|
|
|
|
# Python
|
|
__pycache__
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
|
|
# Virtual environments
|
|
venv/
|
|
env/
|
|
ENV/
|
|
|
|
# Dependencies
|
|
node_modules
|
|
**/node_modules
|
|
.venv
|
|
**/.venv
|
|
.notebooklm-cli-venv/
|
|
.notebooklm-playwright/
|
|
.pip-cache/
|
|
.uv-cache/
|
|
|
|
# Built artifacts that are regenerated inside the image. Excluded so local
|
|
# rebuilds on the developer's machine don't invalidate the npm-install layer
|
|
# that now depends on the full ui-tui/packages/hermes-ink/ tree being present.
|
|
ui-tui/dist/
|
|
ui-tui/packages/hermes-ink/dist/
|
|
|
|
# CI/CD
|
|
.github
|
|
|
|
# Environment files
|
|
.env
|
|
.env.*
|
|
# ...but keep the template: docker/stage2-hook.sh seeds $HERMES_HOME/.env from
|
|
# /opt/hermes/.env.example on first boot (OOF-285 — excluding it silently broke
|
|
# first-boot .env seeding and the API_SERVER_KEY generation that depends on it).
|
|
!.env.example
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Testing
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
|
|
# Documentation
|
|
*.md
|
|
|
|
# Runtime data (bind-mounted at /opt/data; must not leak into build context)
|
|
data/
|
|
.hermes-docker/
|
|
.notebooklm-home/
|
|
|
|
# Compose/profile runtime state (bind-mounted; avoid ownership/secret issues)
|
|
hermes-config/
|
|
runtime/
|
|
|
|
# ---------- Not needed inside the Docker image ----------
|
|
|
|
# Desktop app source (Tauri/Electron); never installed in the container.
|
|
# apps/shared is the dashboard↔desktop websocket helper and is linked from
|
|
# web/package.json as a file: workspace dep — keep it in the build context.
|
|
apps/
|
|
!apps/shared/
|
|
!apps/shared/**
|
|
|
|
# Test suite — not shipped in production images
|
|
tests/
|
|
|
|
# Documentation site (Docusaurus) and supplementary docs
|
|
website/
|
|
docs/
|
|
|
|
# Keep the source artwork needed by web's icon-generation prebuild.
|
|
assets/
|
|
!assets/
|
|
assets/*
|
|
!assets/nous-girl-black.svg
|
|
!assets/nous-girl-white.svg
|
|
!assets/backgrounds/
|
|
assets/backgrounds/*
|
|
!assets/backgrounds/squircle-light.svg
|
|
!assets/backgrounds/squircle-dark.svg
|
|
infographic/
|
|
|
|
# Plugin-level docs (hermes-achievements ships docs/ but the runtime doesn't read them)
|
|
plugins/hermes-achievements/docs/
|
|
|
|
# Nix / Homebrew / AUR packaging metadata — irrelevant to Docker
|
|
nix/
|
|
flake.nix
|
|
flake.lock
|
|
packaging/
|
|
|
|
# Design and planning documents
|
|
plans/
|
|
.plans/
|
|
|
|
# Repo-level dotfiles that are git-only or dev-tooling config
|
|
.envrc
|
|
.gitattributes
|
|
.hadolint.yaml
|
|
.mailmap
|
|
|
|
# Debug/export artifacts — must never reach image layers (COPY . .)
|
|
/log.txt
|
|
/sqlite_leak_fix.png
|
|
/*.png.bak
|
|
*.tar.gz
|
|
*.tgz
|