Skip to content

FROM feat/787-migrate-memories-seeder TO development#800

Merged
ryaneggz merged 7 commits intodevelopmentfrom
feat/787-migrate-memories-seeder
Feb 19, 2026
Merged

FROM feat/787-migrate-memories-seeder TO development#800
ryaneggz merged 7 commits intodevelopmentfrom
feat/787-migrate-memories-seeder

Conversation

@im-an-ai-agent
Copy link
Collaborator

@im-an-ai-agent im-an-ai-agent commented Feb 18, 2026

Summary

Resolves #787

Include the seeds/ directory in the Docker container build so the memory seeder can be run from deployed environments.

Status

Pipeline in progress — this PR will be marked ready for review when Ralph completes.

Generated by /feature-dev skill.

Summary by CodeRabbit

  • Chores
    • Updated Docker build process to include memory seeder data in production-deployed containers.
    • Modified backend build configuration and exclusion rules to ensure seed files are properly preserved in production images.
    • Updated project metadata, progress tracking, and changelog documentation to reflect infrastructure migration changes.

Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 18, 2026

Warning

Rate limit exceeded

@ryaneggz has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 23 minutes and 5 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

The pull request updates the project to include the seeds directory in Docker container builds. Changes involve modifying .dockerignore and Dockerfile to preserve seeds during the build process, updating project metadata to reflect the feat/787-migrate-memories-seeder branch focus, and adding documentation of the new build approach.

Changes

Cohort / File(s) Summary
Docker Build Configuration
backend/.dockerignore, backend/Dockerfile
Modified Docker build process to include seeds directory: removed seeds from .dockerignore exclusion and updated Dockerfile find-delete command to preserve .py files in seeds while excluding migrations.
Project Metadata & Tracking
.ralph/prd.json, .ralph/progress.txt, Changelog.md
Updated project metadata (branchName, description, userStories), progress notes reflecting Docker build improvements and US-001/US-002 implementation, and added v0.0.2-rc142 changelog entry for feat/787-migrate-memories-seeder.
Task Documentation
tasks/prd-migrate-memories-seeder.md
New PRD document outlining the plan to include seeds/ directory in Docker builds with two user stories and acceptance criteria for build verification and workspace cleanup.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 Seeds now travel in Docker's embrace,
No longer left behind in this race,
From .dockerignore, they flee,
Into builds where they'll be,
A seeder's sweet production-bound place! 🌱

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title describes the branch being merged (feat/787-migrate-memories-seeder) into the target branch (development), which directly relates to the main objective of including seeds/ in the Docker build as described in issue #787.
Linked Issues check ✅ Passed All coding objectives from issue #787 are met: seeds/ is removed from .dockerignore, Dockerfile is updated to preserve seeds in the final container build, enabling manual seeder execution from deployed environments.
Out of Scope Changes check ✅ Passed All changes are directly aligned with issue #787's objective. Changes include PRD/progress documentation, .dockerignore and Dockerfile modifications, and changelog updates—all supporting the core goal of including seeds in the Docker build.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/787-migrate-memories-seeder

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
im-an-ai-agent and others added 3 commits February 18, 2026 06:41
…file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: im-an-ai-agent <im.an.ai.agent@gmail.com>
@im-an-ai-agent im-an-ai-agent marked this pull request as ready for review February 18, 2026 06:42
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@backend/Dockerfile`:
- Around line 35-36: The Dockerfile currently copies seeds into the final image
(see COPY --from=builder /app /app) while the RUN find command only excludes
/app/seeds/* from deletion, leaving seed .py files (e.g., user_seeder.py) as
source in production; open a follow-up issue pinned to the upcoming version
milestone requiring either removal of /app/seeds/* during the final image build
or converting seed sources to compiled .pyc (or sealed data) in the builder
stage, add a CI check that verifies no .py files remain under /app/seeds in the
final image, and update the Dockerfile to implement the chosen fix (adjust the
RUN find or add a cleanup step) so the final image matches the .pyc-only policy.

Comment on lines +35 to +36
# Exclude migrations/ (Alembic requires .py) and seeds/ (seeders need .py source)
RUN find /app -type f -name "*.py" ! -path "/app/migrations/*" ! -path "/app/seeds/*" -delete
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, locate and examine seed files
find backend/seeds -type f -name "*.py" 2>/dev/null | head -20

Repository: ruska-ai/orchestra

Length of output: 121


🏁 Script executed:

# Search for common secret/credential patterns in seed files
if [ -d "backend/seeds" ]; then
  echo "=== Searching for credential patterns in seed files ==="
  rg -nH -i \
    -e 'password\s*=' \
    -e 'secret\s*=' \
    -e 'token\s*=' \
    -e 'api_key\s*=' \
    -e 'passw[a-z]*\s*=' \
    -e 'default.*pass' \
    -e 'hardcoded' \
    -e '\bPII\b' \
    backend/seeds
else
  echo "backend/seeds directory not found"
fi

Repository: ruska-ai/orchestra

Length of output: 317


🏁 Script executed:

# Check the Dockerfile to confirm the COPY logic mentioned in review
if [ -f "backend/Dockerfile" ]; then
  echo "=== Checking COPY commands in Dockerfile ==="
  grep -n "COPY.*builder" backend/Dockerfile
  echo ""
  echo "=== Full Dockerfile for context ==="
  cat -n backend/Dockerfile
fi

Repository: ruska-ai/orchestra

Length of output: 2645


🏁 Script executed:

# Search for any GitHub issues, TODOs, or tracking for seed removal
echo "=== Searching for seed removal tracking ==="
rg -i -n 'seed.*remov|remov.*seed|tech.*debt.*seed|seed.*deprecat' \
  --type md --type txt --type py --type yaml --type yml \
  . 2>/dev/null | head -20

Repository: ruska-ai/orchestra

Length of output: 105


Seeds .py in production image — lacks removal tracking, but risk is lower than initially framed.

The find pattern is correct and seeds are confirmed in the final image via COPY --from=builder /app /app (line 57). However, the security risk is less severe than stated:

  • Actual contents: user_seeder.py contains test user credentials with hashed passwords (test1234), not plaintext secrets or API keys. The hashing mitigates direct exposure.
  • Real concern: Seeds remain as readable .py source in production, inconsistent with the .pyc-only approach for the rest of the app. While test data is acceptable, this breaks the obfuscation model.
  • Tracking gap confirmed: No issue, CI gate, or milestone target for seed removal. This drift risk is valid and should be addressed.

Open a follow-up issue pinned to a specific version milestone to enforce seeds removal (or conversion to .pyc + sealed data) before this becomes permanent.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@backend/Dockerfile` around lines 35 - 36, The Dockerfile currently copies
seeds into the final image (see COPY --from=builder /app /app) while the RUN
find command only excludes /app/seeds/* from deletion, leaving seed .py files
(e.g., user_seeder.py) as source in production; open a follow-up issue pinned to
the upcoming version milestone requiring either removal of /app/seeds/* during
the final image build or converting seed sources to compiled .pyc (or sealed
data) in the builder stage, add a CI check that verifies no .py files remain
under /app/seeds in the final image, and update the Dockerfile to implement the
chosen fix (adjust the RUN find or add a cleanup step) so the final image
matches the .pyc-only policy.

@ryaneggz ryaneggz merged commit 8b423b1 into development Feb 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(backend): Migrate memories

2 participants