ROB-3921 - Add user_email field to Holmes chat params#2084
Conversation
Declare user_email explicitly on HolmesChatParams and HolmesChatRequest to match the existing pattern for sibling fields like request_type and request_source. The frontend has started sending user_email; while the extra="allow" config would forward it transparently, an explicit field gives validation, IDE hints, and a documented contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
✅ Docker image ready for
Use this tag to pull the image for testing. 📋 Copy commandsgcloud auth configure-docker us-central1-docker.pkg.dev
docker pull us-central1-docker.pkg.dev/robusta-development/temporary-builds/robusta-runner:177e1f2
docker tag us-central1-docker.pkg.dev/robusta-development/temporary-builds/robusta-runner:177e1f2 me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:177e1f2
docker push me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:177e1f2Patch Helm values in one line: helm upgrade --install robusta robusta/robusta \
--reuse-values \
--set runner.image=me-west1-docker.pkg.dev/robusta-development/development/robusta-runner-dev:177e1f2 |
WalkthroughThis PR adds an optional ChangesHolmes Chat User Email Field
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
Summary
user_email: Optional[str] = NoneonHolmesChatParams(frontend → runner) andHolmesChatRequest(runner → Holmes), placed next torequest_sourceto match the sibling pattern.HolmesIssueChatParams/HolmesIssueChatRequestinherit from these, so they pick up the field automatically.Why
The frontend has started sending
user_emailon chat requests. Both models already haveclass Config: extra = "allow"and the runner forwards params viaparams.dict()→HolmesChatRequest(**params_dict), so the field would already flow through transparently to Holmes without code changes. However, every sibling field (request_type,request_source,conversation_id,source_ref, …) is declared explicitly, and addinguser_emailto that list gives:Optional[str])Test plan
user_emailand forwards it to Holmes unchangeduser_emailstill work (field is optional, defaults toNone)🤖 Generated with Claude Code