Skip to content

refactor: optimize sketch order workflow#4

Open
DHINESH00 wants to merge 1 commit intodevelop_aerelefrom
refactor_sketch_order_v1
Open

refactor: optimize sketch order workflow#4
DHINESH00 wants to merge 1 commit intodevelop_aerelefrom
refactor_sketch_order_v1

Conversation

@DHINESH00
Copy link

@DHINESH00 DHINESH00 commented Jan 9, 2026

PR Type

Enhancement


Description

  • Refactored sketch order workflow with improved code formatting and structure

  • Removed unused functions (create_item_from_sketch_order, create_system_notification, update_item_variant)

  • Optimized database queries by consolidating multiple frappe.db.get_value() calls

  • Simplified item creation logic with cleaner post-processing using target.update()

  • Removed extensive commented-out code and dead code paths


Diagram Walkthrough

flowchart LR
  SO["Sketch Order"] -->|on_submit| MI["make_items()"]
  MI -->|order_type != Purchase| CIT["create_item_template_from_sketch_order()"]
  MI -->|order_type == Purchase| CIP["create_item_for_po()"]
  CIT -->|post_process| UIT["update_item_template()"]
  CIP -->|post_process| UIT
  UIT -->|db.set_value| Item["Item Created"]
Loading

File Walkthrough

Relevant files
Enhancement
sketch_order.py
Code cleanup and database query optimization                         

jewellery_erpnext/gurukrupa_exports/doctype/sketch_order/sketch_order.py

  • Reformatted code with consistent indentation (tabs to spaces)
  • Removed create_item_from_sketch_order() function and related item
    variant creation logic
  • Removed create_system_notification() function entirely
  • Removed update_item_variant() function
  • Optimized create_item_template_from_sketch_order() by consolidating
    two separate frappe.db.get_value() calls into one
  • Simplified create_item_for_po() post-processing using target.update()
    dictionary approach
  • Renamed updatet_item_template() to update_item_template() (typo fix)
  • Removed extensive commented-out code blocks and dead code paths from
    populate_child_table()
+225/-379


🛠️ Relevant configurations:


These are the relevant configurations for this tool:

[config]

is_auto_command: True
is_new_pr: True
model_reasoning: vertex_ai/gemini-2.5-pro
model: gpt-5.2-2025-12-11
model_turbo: anthropic/claude-haiku-4-5-20251001
fallback_models: ['anthropic/claude-sonnet-4-5-20250929', 'bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0']
second_model_for_exhaustive_mode: o4-mini
git_provider: github
publish_output: True
publish_output_no_suggestions: True
publish_output_progress: True
verbosity_level: 0
publish_logs: False
debug_mode: False
use_wiki_settings_file: True
use_repo_settings_file: True
use_global_settings_file: True
use_global_wiki_settings_file: False
disable_auto_feedback: False
ai_timeout: 150
response_language: en-US
clone_repo_instead_of_fetch: True
always_clone: False
add_repo_metadata: True
clone_repo_time_limit: 300
publish_inline_comments_fallback_batch_size: 5
publish_inline_comments_fallback_sleep_time: 2
max_model_tokens: 32000
custom_model_max_tokens: -1
patch_extension_skip_types: ['.md', '.txt']
extra_allowed_extensions: []
allow_dynamic_context: True
allow_forward_dynamic_context: True
max_extra_lines_before_dynamic_context: 12
patch_extra_lines_before: 5
patch_extra_lines_after: 1
ai_handler: litellm
cli_mode: False
TRIAL_GIT_ORG_MAX_INVOKES_PER_MONTH: 75
TRIAL_RATIO_CLOSE_TO_LIMIT: 0.8
invite_only_mode: False
enable_request_access_msg_on_new_pr: False
check_also_invites_field: False
calculate_context: True
disable_checkboxes: False
output_relevant_configurations: True
large_patch_policy: clip
seed: -1
temperature: 0.2
allow_dynamic_context_ab_testing: False
choose_dynamic_context_ab_testing_ratio: 0.5
ignore_pr_title: ['^\\[Auto\\]', '^Auto', '^\\[Bump\\]']
ignore_pr_target_branches: []
ignore_pr_source_branches: []
ignore_pr_labels: ['do-not-merge', 'skip-qodo']
ignore_ticket_labels: []
allow_only_specific_folders: []
ignore_pr_authors: []
ignore_repositories: []
ignore_language_framework: []
enable_ai_metadata: True
present_reasoning: True
max_tickets: 10
max_tickets_chars: 8000
prevent_any_approval: False
enable_comment_approval: False
enable_auto_approval: False
auto_approve_for_low_review_effort: -1
auto_approve_for_no_suggestions: False
ensure_ticket_compliance: False
new_diff_format: True
new_diff_format_add_external_references: True
enable_custom_labels: False

[pr_description]

final_update_message: False
publish_labels: False
add_original_user_description: True
generate_ai_title: False
extra_instructions: Highlight any database schema changes (Doctype/child table modifications), new background jobs (frappe.enqueue / scheduler events),
and any changes that could increase DB queries or write amplification.

enable_pr_type: True
enable_help_text: False
enable_help_comment: False
bring_latest_tag: False
enable_pr_diagram: True
publish_description_as_comment: False
publish_description_as_comment_persistent: True
enable_semantic_files_types: True
collapsible_file_list: adaptive
collapsible_file_list_threshold: 8
inline_file_summary: False
use_description_markers: False
include_generated_by_header: True
enable_large_pr_handling: True
max_ai_calls: 4
auto_create_ticket: False

@qodo-free-for-open-source-projects

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🏅 Score: 62
🧪 No relevant tests
✅ No TODO sections
🔒 No security concerns identified
🔀 No multiple PR themes
⚡ Recommended focus areas for review

N+1 Query

Loop at lines 76-82 calls create_item_template_from_sketch_order() which internally calls frappe.db.get_value() (line 176) for each row in final_sketch_approval_cmo. This creates 1 + N queries. Pre-fetch all needed sub_category and designer values in one frappe.get_all() call before the loop, build a dict keyed by name, then pass values to avoid repeated DB hits.

for row in self.final_sketch_approval_cmo:
    item_template = create_item_template_from_sketch_order(self, row.name)
    update_item_template(self, item_template)
    frappe.db.set_value(row.doctype, row.name, "item", item_template)
    frappe.msgprint(
        _("New Item Created: {0}").format(get_link_to_form("Item", item_template))
    )
Heavy Write

Lines 79 and 86 call frappe.db.set_value() inside loops or after doc.save(). While set_value is lighter than doc.save(), verify if update_item_template() (line 78/85) already saves the item. If so, consider batching these updates or using a single doc.update() + doc.save() to reduce write overhead.

        frappe.db.set_value(row.doctype, row.name, "item", item_template)
        frappe.msgprint(
            _("New Item Created: {0}").format(get_link_to_form("Item", item_template))
        )
if self.order_type == "Purchase":
    item_template = create_item_for_po(self, self.name)
    update_item_template(self, item_template)
    frappe.db.set_value("Sketch Order", self.name, "item_code", item_template)
Possible Issue

Lines 26 and 54 duplicate the assignment diamond_wt_approx twice in the same dict. This is likely a copy-paste error. One should probably be a different field (e.g., gold_wt_approx or another attribute). Verify the intended field and remove the duplicate.

"diamond_wt_approx": r.diamond_wt_approx,
"setting_type": r.setting_type,

🛠️ Relevant configurations:


These are the relevant configurations for this tool:

[config]

is_auto_command: True
is_new_pr: True
model_reasoning: vertex_ai/gemini-2.5-pro
model: gpt-5.2-2025-12-11
model_turbo: anthropic/claude-haiku-4-5-20251001
fallback_models: ['anthropic/claude-sonnet-4-5-20250929', 'bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0']
second_model_for_exhaustive_mode: o4-mini
git_provider: github
publish_output: True
publish_output_no_suggestions: True
publish_output_progress: True
verbosity_level: 0
publish_logs: False
debug_mode: False
use_wiki_settings_file: True
use_repo_settings_file: True
use_global_settings_file: True
use_global_wiki_settings_file: False
disable_auto_feedback: False
ai_timeout: 150
response_language: en-US
clone_repo_instead_of_fetch: True
always_clone: False
add_repo_metadata: True
clone_repo_time_limit: 300
publish_inline_comments_fallback_batch_size: 5
publish_inline_comments_fallback_sleep_time: 2
max_model_tokens: 32000
custom_model_max_tokens: -1
patch_extension_skip_types: ['.md', '.txt']
extra_allowed_extensions: []
allow_dynamic_context: True
allow_forward_dynamic_context: True
max_extra_lines_before_dynamic_context: 12
patch_extra_lines_before: 5
patch_extra_lines_after: 1
ai_handler: litellm
cli_mode: False
TRIAL_GIT_ORG_MAX_INVOKES_PER_MONTH: 75
TRIAL_RATIO_CLOSE_TO_LIMIT: 0.8
invite_only_mode: False
enable_request_access_msg_on_new_pr: False
check_also_invites_field: False
calculate_context: True
disable_checkboxes: False
output_relevant_configurations: True
large_patch_policy: clip
seed: -1
temperature: 0.2
allow_dynamic_context_ab_testing: False
choose_dynamic_context_ab_testing_ratio: 0.5
ignore_pr_title: ['^\\[Auto\\]', '^Auto', '^\\[Bump\\]']
ignore_pr_target_branches: []
ignore_pr_source_branches: []
ignore_pr_labels: ['do-not-merge', 'skip-qodo']
ignore_ticket_labels: []
allow_only_specific_folders: []
ignore_pr_authors: []
ignore_repositories: []
ignore_language_framework: []
enable_ai_metadata: True
present_reasoning: True
max_tickets: 10
max_tickets_chars: 8000
prevent_any_approval: False
enable_comment_approval: False
enable_auto_approval: False
auto_approve_for_low_review_effort: -1
auto_approve_for_no_suggestions: False
ensure_ticket_compliance: False
new_diff_format: True
new_diff_format_add_external_references: True
enable_custom_labels: False

[pr_reviewer]

require_score_review: True
require_tests_review: True
require_estimate_effort_to_review: True
require_can_be_split_review: True
require_security_review: True
require_todo_scan: True
require_ticket_analysis_review: True
require_ticket_labels: False
require_no_ticket_labels: False
check_pr_additional_content: False
persistent_comment: True
extra_instructions: You are a Senior Technical Architect specializing in the Frappe Framework, Python, and MariaDB optimization.
Be concise but strict about performance and security. Provide code snippets (or pseudocode) for fixes.

========================
1) 🚨 FRAPPE PERFORMANCE KILLERS (High Priority)
========================
A) N+1 Query Detection (must flag):
- Flag ANY loop that contains `frappe.get_doc`, `frappe.db.get_value`, `frappe.db.get_all/get_list`, or `frappe.db.sql`.
- Explain the query multiplier (e.g., “1 + N queries”) and propose a bulk-fetch refactor:
  - pre-fetch with `frappe.get_all/get_list` (with fields + filters) or one SQL query with IN,
  - build a dict/map keyed by name, then iterate without DB calls.

B) Heavy Writes / Controller chain (must flag):
- If `doc.save()` is used to update just 1–2 fields, aggressively suggest replacing with:
  - `frappe.db.set_value(doctype, name, field, value)`
  - or `frappe.db.set_value(doctype, name, {field1: v1, field2: v2})`
- Explain it avoids triggering heavy validations / hooks / controller logic unnecessarily.
- Exception: if controller validations are required for correctness, require justification.

C) ORM abuse / wrong API choice:
- Warn against `frappe.db.sql()` if the same can be achieved by permission-safe ORM (`frappe.get_list/get_all`)
  unless it is a complex join/aggregation needing SQL.
- Also warn when `frappe.db.*` is used in user-facing endpoints where permission checks matter.

D) Redundant commits (must flag):
- `frappe.db.commit()` inside loops is forbidden unless there is a carefully justified transactional reason.
- Suggest moving commit outside loop, batching, or using background jobs.

E) Unbounded reads:
- Flag `get_all/get_list` without strong filters or without pagination on potentially large tables.
- Recommend adding filters, indexed ordering, `limit/page_length`, or background processing.

F) Hot hooks:
- Flag heavy work (bulk queries, file IO, network calls) inside validate/on_update/after_insert hooks.
- Recommend `frappe.enqueue` and async jobs.

========================
2) 🛡️ SECURITY & SQL SAFETY (must be strict)
========================
A) SQL injection:
- Strictly forbid f-strings / concatenation inside `frappe.db.sql()`.
- REQUIRE parameter passing: `frappe.db.sql("... %s", (val,))`.

B) Whitelisting:
- If functions are intended to be called from client (JS / REST), ensure `@frappe.whitelist()` exists.
- Confirm sensitive functions are NOT accidentally exposed.

C) Permission checks:
- For new `get_list/get_all`/SQL calls, ensure strict permissions are not bypassed.
- If `ignore_permissions=True` or `frappe.db.*` is used, REQUIRE explicit justification + risk assessment.

D) Unsafe patterns:
- Flag `eval/exec`, insecure deserialization, and unsafe file path usage.

========================
3) 🐍 PYTHONIC & LOGIC OPTIMIZATIONS
========================
A) Mutable defaults (must flag):
- `def f(x=[])` / `def f(x={})` etc. Require `None` + initialization.

B) Data structure choices:
- If code does `if item in big_list`, suggest `set(big_list)` for O(1) lookups.

C) Inefficient loops:
- Reduce nested loops; pull invariants out; memoize expensive computations.

D) List building:
- Suggest list comprehensions ONLY when readability remains good.
- Avoid creating large intermediate lists when generators/chunking is better.

E) String + datetime churn:
- Flag repeated parsing/formatting/conversions inside loops.

========================
4) 📉 MARIADB / DATABASE OPTIMIZATION CHECKS
========================
A) Wildcards / over-fetching:
- Warn against `SELECT *`. Require selecting specific columns.

B) Indexing:
- If a field is used in WHERE / JOIN / ORDER BY patterns frequently, ask if it needs an index.
- If appropriate, suggest composite index order aligned with query filters (e.g., company + docstatus + posting_date).

C) Sorting + limiting:
- Flag ORDER BY on large sets without indexed order; recommend index or reduce rows first.

D) Aggregations:
- If Python loops compute SUM/COUNT over many rows, suggest SQL aggregation where safe.

========================
5) OUTPUT REQUIREMENTS
========================
- Provide concrete refactor steps and code snippets.
- Quantify impact when possible: “reduces from N queries to 1”.
- If table sizes/indexes are unknown, recommend checking EXPLAIN and adding indexes if confirmed.

final_update_message: False
enable_review_labels_security: True
enable_review_labels_effort: True
enable_help_text: False
num_max_findings: 8

@qodo-free-for-open-source-projects

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Refactor the validate method logic

The validate method's logic for moving items between child tables should be
moved to a separate method. This new method should be triggered by a custom
button to improve clarity and prevent unexpected behavior on document save.

Examples:

jewellery_erpnext/gurukrupa_exports/doctype/sketch_order/sketch_order.py [12-69]
    def validate(self):
        populate_child_table(self)
        rows_remove = []
        for r in self.final_sketch_hold:
            if r.is_approved:
                self.append(
                    "final_sketch_approval_cmo",
                    {
                        "designer": r.designer,
                        "sketch_image": r.sketch_image,

 ... (clipped 48 lines)

Solution Walkthrough:

Before:

class SketchOrder(Document):
    def validate(self):
        # Logic to move items runs on every save
        rows_remove = []
        for r in self.final_sketch_hold:
            if r.is_approved:
                self.append("final_sketch_approval_cmo", {...})
                rows_remove.append(r)
        for r in rows_remove:
            self.final_sketch_hold.remove(r)
        
        # Similar logic for 'final_sketch_rejected'
        ...

After:

class SketchOrder(Document):
    def validate(self):
        # Validation logic only (if any)
        pass

    @frappe.whitelist()
    def approve_and_move_sketches(self):
        # Logic to move items is now in a dedicated method
        rows_remove = []
        for r in self.final_sketch_hold:
            if r.is_approved:
                self.append("final_sketch_approval_cmo", {...})
                rows_remove.append(r)
        for r in rows_remove:
            self.final_sketch_hold.remove(r)
        
        # Similar logic for 'final_sketch_rejected'
        ...
        self.save()
Suggestion importance[1-10]: 9

__

Why: This is a critical design suggestion that correctly identifies a misuse of the validate hook for business logic, which can cause unexpected side effects; the proposed change significantly improves usability and aligns with framework best practices.

High
General
Avoid database calls inside a loop

Avoid making a database call inside the loop by fetching the designer_name once
per designer using frappe.get_cached_value before the inner loop begins.

jewellery_erpnext/gurukrupa_exports/doctype/sketch_order/sketch_order.py [143-160]

 for j in designer_with_approved_qty:
     if j["designer"] in designer:
         continue
+    
+    designer_name = frappe.get_cached_value("Employee", j["designer"], "employee_name")
     for k in range(j["qty"]):
         count = check_count(self, j["designer"])
         if count == j["qty"]:
-            continue
+            # This break is an optimization. If we've already added enough,
+            # no need to check again for this designer.
+            break
         self.append(
             "final_sketch_approval_cmo",
             {
                 "designer": j["designer"],
-                "designer_name": frappe.db.get_value(
-                    "Employee", j["designer"], "employee_name"
-                ),
+                "designer_name": designer_name,
                 "category": self.category,
             },
         )
     designer.append(j["designer"])
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies a performance issue with a database call inside a loop and proposes a valid optimization by using frappe.get_cached_value, which improves efficiency.

Medium
Use cached database calls for performance

Replace frappe.db.get_value with frappe.get_cached_value when fetching the
employee name to improve performance by caching the database query result.

jewellery_erpnext/gurukrupa_exports/doctype/sketch_order/sketch_order.py [212-232]

 def create_item_for_po(self, source_name, target_doc=None):
     def post_process(source, target):
         target.update(
             {
                 "is_design_code": 1,
                 "has_variants": 1,
                 "india": self.india,
                 "india_states": self.india_states,
                 "usa": self.usa,
                 "usa_states": self.usa_states,
-                "designer": frappe.db.get_value(
+                "designer": frappe.get_cached_value(
                     "Employee", {"user_id": frappe.session.user}, "name"
                 )
                 or frappe.session.user,
                 "custom_sketch_order_id": self.name,
                 "custom_sketch_order_form_id": self.sketch_order_form,
                 "item_group": f"{self.subcategory} - T",
                 "item_category": self.category,
                 "item_subcategory": self.subcategory,
             }
         )
 
     doc = get_mapped_doc(
 ...

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why: The suggestion correctly proposes using frappe.get_cached_value to improve performance by caching a database query for a value that is unlikely to change frequently within a request, which is a good optimization.

Low
Optimize database calls during document mapping

To optimize database calls, move the fetching of sub_category and designer from
frappe.db.get_value into the field_map of the get_mapped_doc function.

jewellery_erpnext/gurukrupa_exports/doctype/sketch_order/sketch_order.py [173-209]

 def create_item_template_from_sketch_order(self, source_name, target_doc=None):
     def post_process(source, target):
-        sub_category, designer = frappe.db.get_value(
-            "Final Sketch Approval CMO", source_name, ["sub_category", "designer"]
-        )
-
         target.update(
             {
                 "is_design_code": 1,
                 "has_variants": 1,
                 "india": self.india,
                 "india_states": self.india_states,
                 "usa": self.usa,
                 "usa_states": self.usa_states,
                 "custom_sketch_order_id": self.name,
                 "custom_sketch_order_form_id": self.sketch_order_form,
-                "item_group": f"{sub_category} - T",
-                "designer": designer,
-                "subcategory": sub_category,
-                "item_subcategory": sub_category,
+                "item_group": f"{source.sub_category} - T",
+                "designer": source.designer,
+                "subcategory": source.sub_category,
+                "item_subcategory": source.sub_category,
             }
         )
 
     doc = get_mapped_doc(
         "Final Sketch Approval CMO",
         source_name,
         {
             "Final Sketch Approval CMO": {
                 "doctype": "Item",
-                "field_map": {"category": "item_category", "sub_category": "item_subcategory"},
+                "field_map": {
+                    "category": "item_category",
+                    "sub_category": "item_subcategory",
+                    "designer": "designer",
+                },
             }
         },
         target_doc,
         post_process,
     )
     doc.save()
     return doc.name
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies an opportunity to further optimize database access by integrating the data fetch into the get_mapped_doc call, which is a good practice for both performance and code clarity.

Low
  • More
  • Author self-review: I have reviewed the PR code suggestions, and addressed the relevant ones.

🛠️ Relevant configurations:


These are the relevant configurations for this tool:

[config]

is_auto_command: True
is_new_pr: True
model_reasoning: vertex_ai/gemini-2.5-pro
model: gpt-5.2-2025-12-11
model_turbo: anthropic/claude-haiku-4-5-20251001
fallback_models: ['anthropic/claude-sonnet-4-5-20250929', 'bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0']
second_model_for_exhaustive_mode: o4-mini
git_provider: github
publish_output: True
publish_output_no_suggestions: True
publish_output_progress: True
verbosity_level: 0
publish_logs: False
debug_mode: False
use_wiki_settings_file: True
use_repo_settings_file: True
use_global_settings_file: True
use_global_wiki_settings_file: False
disable_auto_feedback: False
ai_timeout: 150
response_language: en-US
clone_repo_instead_of_fetch: True
always_clone: False
add_repo_metadata: True
clone_repo_time_limit: 300
publish_inline_comments_fallback_batch_size: 5
publish_inline_comments_fallback_sleep_time: 2
max_model_tokens: 32000
custom_model_max_tokens: -1
patch_extension_skip_types: ['.md', '.txt']
extra_allowed_extensions: []
allow_dynamic_context: True
allow_forward_dynamic_context: True
max_extra_lines_before_dynamic_context: 12
patch_extra_lines_before: 5
patch_extra_lines_after: 1
ai_handler: litellm
cli_mode: False
TRIAL_GIT_ORG_MAX_INVOKES_PER_MONTH: 75
TRIAL_RATIO_CLOSE_TO_LIMIT: 0.8
invite_only_mode: False
enable_request_access_msg_on_new_pr: False
check_also_invites_field: False
calculate_context: True
disable_checkboxes: False
output_relevant_configurations: True
large_patch_policy: clip
seed: -1
temperature: 0.2
allow_dynamic_context_ab_testing: False
choose_dynamic_context_ab_testing_ratio: 0.5
ignore_pr_title: ['^\\[Auto\\]', '^Auto', '^\\[Bump\\]']
ignore_pr_target_branches: []
ignore_pr_source_branches: []
ignore_pr_labels: ['do-not-merge', 'skip-qodo']
ignore_ticket_labels: []
allow_only_specific_folders: []
ignore_pr_authors: []
ignore_repositories: []
ignore_language_framework: []
enable_ai_metadata: True
present_reasoning: True
max_tickets: 10
max_tickets_chars: 8000
prevent_any_approval: False
enable_comment_approval: False
enable_auto_approval: False
auto_approve_for_low_review_effort: -1
auto_approve_for_no_suggestions: False
ensure_ticket_compliance: False
new_diff_format: True
new_diff_format_add_external_references: True
enable_custom_labels: False
extra_statistics: {'suggestion_statistics': [{'score': 5, 'label': 'general'}, {'score': 6, 'label': 'general'}, {'score': 7, 'label': 'general'}]}

[pr_code_suggestions]

suggestions_depth: exhaustive
commitable_code_suggestions: False
decouple_hunks: False
dual_publishing_score_threshold: -1
focus_only_on_problems: True
allow_thumbs_up_down: False
enable_suggestion_type_reuse: False
enable_more_suggestions_checkbox: True
high_level_suggestions_enabled: True
extra_instructions: Focus suggestions on PERFORMANCE + SECURITY:
- Reduce DB roundtrips (bulk fetch, IN queries, joins/aggregates).
- Prefer set_value over save for small field updates unless validations are required.
- Ensure parameterized SQL only.
- Ensure endpoints are whitelisted intentionally and respect permissions.
- Prefer chunking/generators for big datasets.
Return copy-paste ready snippets when feasible.

enable_help_text: False
show_extra_context: False
persistent_comment: True
max_history_len: 5
apply_suggestions_checkbox: True
enable_chat_in_code_suggestions: True
apply_limit_scope: True
suggestions_score_threshold: 0
new_score_mechanism: True
new_score_mechanism_th_high: 9
new_score_mechanism_th_medium: 7
discard_unappliable_suggestions: False
num_code_suggestions_per_chunk: 6
num_best_practice_suggestions: 2
max_number_of_calls: 3
final_clip_factor: 0.8
demand_code_suggestions_self_review: True
code_suggestions_self_review_text: **Author self-review**: I have reviewed the PR code suggestions, and addressed the relevant ones.
approve_pr_on_self_review: False
fold_suggestions_on_self_review: True
publish_post_process_suggestion_impact: True
wiki_page_accepted_suggestions: True
enable_local_self_reflect_in_large_prs: False
simplify_response: True

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants