diff --git a/.wolf/cerebrum.md b/.wolf/cerebrum.md index 32b877a..148b8d5 100644 --- a/.wolf/cerebrum.md +++ b/.wolf/cerebrum.md @@ -6,18 +6,23 @@ budget_tokens: 2000 > OpenWolf's learning memory. Updated automatically as the AI learns from interactions. > Do not edit manually unless correcting an error. -> Last updated: 2026-10-06 +> Last updated: 2026-10-30 ## User Preferences - Writes in Portuguese (pt-BR); answer in Portuguese. Wants things finished end to end: merged, released, deployed and checked in production, without being asked again (said so on 2026-10-22). - Likes a clean interface with every function reachable (Apple / Anthropic as references, Outlook over Gmail), dark theme by default with a light one. +- [2026-10-30] CI must be efficient: never redo work already done for the same content. Hash what goes into the artifact (the `inputs-` image tag, or a filtered `git ls-tree` hash), ask the registry, and skip CI and build when it exists; a version tag or a docs/workflow-only merge only re-points tags. Do not run `ci.yml` on `main` by push when `release.yml` already calls it. Use `paths-ignore` for docs and tool state (`.wolf`, `.claude`, `.superset`). The user repeated this several times and was angry when a tag was about to recompile the Next.js build. +- [2026-10-30] Keep repositories clean: after a branch is merged, delete it on Gitea and locally (`git push gitea --delete `, `git branch -d `). Never touch the user's own unmerged branches. +- [2026-10-30] Every tool gets semver tags and a Gitea Release (Releases tab, not just container images) with notes from the matching `CHANGELOG.md` section (`scripts/release-notes.sh`). Keep the changelog updated under Unreleased. A tag job that creates the release must use an explicit `if: ${{ !cancelled() && needs..result == 'success' && startsWith(gitea.ref, 'refs/tags/v') }}`. +- [2026-10-30] Source of truth is Gitea (`git.lucasrguerra.dev.br`, remote `gitea`, SSH on port 22 through the host). The GitHub account is suspended (404): never push to or depend on GitHub. Workflows live in `.gitea/workflows` and use the `gitea.*` context. ## Key Learnings - **Project:** LambdaMail - **Description:** A self-hosted mail server with an integrated webmail and admin console, built to +- [2026-10-30] Release flow: `plan` job hashes `services/ migrations/ config/` → `inputs-`; reuse takes ~1 min instead of 30. A job downstream of a skipped `build` needs explicit status checks in its `if`. Images: `git.lucasrguerra.dev.br/lucasrguerra/lambdamail/`. v1.0.0 was the first tag (no history survived from GitHub). Production deploy is blocked until the Coolify app's source is switched from Public GitHub to Gitea in the Coolify UI (API cannot); deploy only when the user is assured everything is right. Single `.env.example` + `scripts/init-env.sh` (`make env`). ## Do-Not-Repeat @@ -31,6 +36,10 @@ budget_tokens: 2000 - [2026-10-22] A `