promptfoo icon indicating copy to clipboard operation
promptfoo copied to clipboard

feat: custom policy generation

Open typpo opened this issue 1 month ago • 1 comments

image

typpo avatar Nov 12 '25 02:11 typpo

[!NOTE]

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'ignore_draft_pr', 'focus_on_security_issues'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
📝 Walkthrough

Walkthrough

This pull request adds an auto-generation feature to the CustomPoliciesSection component for suggesting and adding policies. The implementation introduces state management for tracking generation status, suggested policies, and generation attempts. A new API endpoint is called to generate policies based on the application definition, with deduplication logic against existing policies. The UI expands to display a responsive two-column layout with a sidebar showing suggested policies when available. Auto-generation is triggered on component mount when conditions are met, and users can click suggested policies to add them to the main configuration. New UI components and icons are imported to support the suggestion interface.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • API integration: Verify the /v1/redteam/generate-policies endpoint contract, error handling, and request payload construction
  • Deduplication logic: Ensure suggested policies are correctly filtered against both existing policies and previously suggested policies
  • State management: Review coordination between isGeneratingPolicies, suggestedPolicies, and hasAttemptedGeneration states, especially around the auto-generation trigger and reset logic
  • useEffect dependencies and cleanup: Confirm the auto-generation effect has correct dependencies tied to canGeneratePolicies and shouldAutoGenerate, and verify no memory leaks or unintended side effects
  • UI layout responsiveness: Test that the two-column grid correctly appears/disappears and that Paper/Card component rendering performs as expected
  • handleAddSuggestedPolicy logic: Validate that suggested policies are properly converted to full policy objects, removed from suggestions after adding, and that toasts display correctly

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive No pull request description was provided by the author, making it impossible to assess whether any description relates to the changeset. Add a pull request description explaining the feature, its purpose, and any relevant implementation details or testing considerations.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding automatic policy generation capability to the custom policies component.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch ian/20251111-181722

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

coderabbitai[bot] avatar Nov 12 '25 02:11 coderabbitai[bot]

✅ Generated 8 tests - 8 passed (34e496dfb9dfe9c6a9c39b75d027099c194642fa) View tests ↗

⚠️ Failed to create separate pull request with 8 tests - See comment for details.

Test Summary

  • CustomPoliciesSection - 3 ✅
  • PolicySuggestionsSidebar - 5 ✅

Results

All Tusk tests for the custom policy generation feature are passing. The tests validate critical user flows in the new policy suggestion UI components. They confirm that users can generate AI-powered policy suggestions based on application definitions, interact with suggested policies (add/dismiss), and receive appropriate feedback during loading states and errors. The error handling for network failures is properly tested, ensuring users get clear notifications when policy generation fails.

Key points:

  • Tests cover the main CustomPoliciesSection component and the new PolicySuggestionsSidebar component
  • Critical user paths verified: generating suggestions, adding/dismissing policies, and handling network errors
  • UI state transitions are thoroughly tested (empty → loading → populated states)
  • Both components handle their responsibilities correctly - the section manages overall policy state while the sidebar handles suggestion display and interactions
  • The tests confirm that clicking on policy cards or icons triggers the expected callbacks with the correct policy objects

View check history

Commit Status Output Created (UTC)
b13d1e6c81b2c0b1ff79427e633bad1c06e302c8 🔄 Running Tusk Tester Output Nov 19, 2025 4:43PM
5eb6fb79216a51ac0af1061ba6ce203652324656 ⏩ Skipped due to new commit on branch Output Nov 19, 2025 9:40PM
1a3e4e8e425f0f5382bc7e4514aa8302918716fb ⏩ Skipped due to new commit on branch Output Nov 19, 2025 9:44PM
ae911ee001fda2cc7db28e4e1ad1adc2c1b27dc5 ⏩ Skipped due to new commit on branch Output Nov 19, 2025 9:51PM
1364480807b950793e5b91d7a6aec48964e79c88 ✅ Generated 8 tests - 8 passed Tests Nov 19, 2025 10:06PM
b694b0a4664dbd15b94744a61bdbb3e838f98ee3 ✅ Generated 8 tests - 8 passed Tests Nov 20, 2025 6:46PM
077c045328f99cabf96b9e6a6d4095b200dd70ef ✅ Generated 8 tests - 8 passed Tests Nov 20, 2025 6:47PM
34e496dfb9dfe9c6a9c39b75d027099c194642fa ✅ Generated 8 tests - 8 passed Tests Nov 20, 2025 7:48PM

View output in GitHub ↗

Was Tusk helpful? Give feedback by reacting with 👍 or 👎

use-tusk[bot] avatar Nov 19 '25 23:11 use-tusk[bot]

⚠️ Failed to create pull request for 8 tests @typpo

There was an unexpected error when trying to create a pull request for the selected tests, go to Tusk to retry creating another pull request.

Please contact Support if you have any questions.

use-tusk[bot] avatar Nov 23 '25 07:11 use-tusk[bot]