fix(EVO-976): fix avatar storage — shared volumes, AUTH_SERVICE_URL, storage docs#80
Merged
DavidsonGomes merged 7 commits intomainfrom May 4, 2026
Merged
Conversation
… permission denied on storage Named Docker volumes are created with root ownership, causing Errno::EACCES when the Rails process (running as user rails:1000) tries to create subdirs under /rails/storage. Bind mount gives the container process write access. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…cleanup - evo-ai-crm-community: bump submodule to fix(EVO-975) — remove :account from fetch_pipeline eager loading (AssociationNotFoundError broke set_as_default, preventing Pipeline.default.first from ever returning a pipeline) - docker-compose.yml: add rm -f server.pid to evo-auth startup command to prevent stale PID file from blocking restarts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- evo-ai-crm-community: fix(EVO-975) messages eager loading + auth service stale connection retry + evolution health endpoint + attachment url expiry - evo-ai-core-service-community: refactor EvoAuthAccount json.RawMessage + ActivePlan optional - evo-ai-frontend-community: fix(EVO-979) audio OGG/Opus + Profile i18n + SLA types + setup locale - evo-ai-processor-community: fix run_seeders.py argparse help text - evo-auth-service-community: onboarding survey backend (token, endpoint, user associations) - evolution-api: v2.3.7 release - evolution-go: updated binary with latest changes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rage docs - docker-compose.yml: add crm_storage volume to evo-crm and evo-crm-sidekiq so web and Sidekiq containers share the same local storage (fixes ActiveStorage blobs written by Sidekiq not being visible to the web container) - .env.example: add AUTH_SERVICE_URL var (needed by avatarable.rb to generate absolute avatar URLs accessible from the browser) - .env.example: expand cloud storage section with Cloudflare R2 / S3 setup guide and CORS bucket configuration note (acceptance criterion from EVO-976) - evo-auth-service-community: bump to fix/EVO-976-avatar-url (PR #10) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🧙 Sourcery has finished reviewing your pull request! Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Consider using a named volume for
evo-auth-service-communitystorage instead of a host bind (./evo-auth-service-community/storage:/rails/storage) to keep storage handling consistent with the CRM services and avoid path-related discrepancies across environments. - Since storage is now shared via
crm_storage, it might be worth explicitly calling out any expected cleanup or migration for existing local blobs to avoid unexpected behavior for developers who already have non-shared storage data.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider using a named volume for `evo-auth-service-community` storage instead of a host bind (`./evo-auth-service-community/storage:/rails/storage`) to keep storage handling consistent with the CRM services and avoid path-related discrepancies across environments.
- Since storage is now shared via `crm_storage`, it might be worth explicitly calling out any expected cleanup or migration for existing local blobs to avoid unexpected behavior for developers who already have non-shared storage data.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
…bmodules) - docker-compose.yml: drop crm_storage named volume from evo-crm and evo-crm-sidekiq (C2). The project bind ./evo-ai-crm-community:/app:delegated already shares /app/storage between the two containers — the named volume was masking the bind, which (a) hides ActiveStorage blobs from the host and (b) reintroduces the same root-ownership pitfall fixed for auth_storage in commit d29cf49. - evo-ai-crm-community → 87a81660 (C1): bumps to fix/EVO-976-attachment-processor-spec which adds the AttachmentProcessor specs round-1 review flagged as missing (round-2 reply claimed they existed but they did not). - evo-auth-service-community → 623b5b9d: bumps to fix/EVO-976-avatar-url HEAD with H3/H4/L1 fixes (1.hour TTL, nil instead of '', URI scheme validation). - evo-ai-frontend-community → 36544f5: PR #35 (EVO-979) merged to main — previous pointer 5206b1fd was an orphan SHA (not our ref). - evo-ai-processor-community → 2b329c6c (main HEAD): previous pointer aa7fbf3 was orphan. - evo-ai-core-service-community → 33230bb (main HEAD): previous pointer ba04dc8b was orphan. - evolution-go → 9f0eb34b: refreshed to clean tree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
Corrige os critérios de aceite pendentes do EVO-976 não endereçados no PR #41:
foto de perfil com 404, volumes de storage não compartilhados e documentação ausente.
Mudanças
docker-compose.ymlcrm_storagevolume declarado aoevo-crmeevo-crm-sidekiqACTIVE_STORAGE_SERVICE=local).env.exampleAUTH_SERVICE_URL=http://localhost:3001— variável lida pelo auth service para montar URLs absolutas de avatar (ver PR chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.0 #10 emevo-auth-service-community)evo-auth-service-community(bump para PR #10)avatarable.rb:rails_service_blob_proxy_path→ URL absoluta comapp_urlenvironment_config.rb: lêAUTH_SERVICE_URL, configuraroutes.default_url_optionsdevelopment.rb: corrigeaction_mailerporta3000→3001Critérios de aceite × este PR
.env.exampleexpandidoTest plan
docker-compose up→ upload de imagem via WhatsApp → imagem visível na conversa após reloadACTIVE_STORAGE_SERVICE=s3_compatiblecom R2 → avatar carrega direto do bucket.env.examplecópia →AUTH_SERVICE_URLpresente por padrão🤖 Generated with Claude Code
Summary by Sourcery
Ensure avatar and storage behavior works correctly across services and environments
Enhancements:
Documentation: