fix: address Copilot review comments on PR #739

- query_sanitizer: require matching quote pair in _strip_wrapping_quotes
- query_sanitizer: re-check MIN_QUERY_LENGTH after trim in tail_sentence path
- migrate: neutral confirmation message accurate for both migrate and repair
- cli: os.path.normpath instead of rstrip to handle '/' root edge case
This commit is contained in:
Igor Lins e Silva
2026-04-12 23:07:46 -03:00
parent 22328540e1
commit c68370609d
3 changed files with 5 additions and 3 deletions
+1 -1
View File
@@ -225,7 +225,7 @@ def cmd_repair(args):
print(f" Extracted {len(all_ids)} drawers")
# Backup and rebuild
palace_path = palace_path.rstrip(os.sep)
palace_path = os.path.normpath(palace_path)
backup_path = palace_path + ".backup"
if os.path.exists(backup_path):
if not contains_palace_database(backup_path):
+1 -1
View File
@@ -117,7 +117,7 @@ def confirm_destructive_action(
return True
print(f"\n {operation_name} will replace data in: {palace_path}")
print(" A backup will be created first, but the original directory will be deleted.")
print(" A backup will be created first, then the palace will be rebuilt.")
try:
answer = input(" Continue? [y/N]: ").strip().lower()
except EOFError:
+3 -1
View File
@@ -71,7 +71,7 @@ def sanitize_query(raw_query: str) -> dict:
def _strip_wrapping_quotes(candidate: str) -> str:
candidate = candidate.strip()
while (
len(candidate) >= 2 and candidate[:1] in QUOTE_CHARS and candidate[-1:] in QUOTE_CHARS
len(candidate) >= 2 and candidate[:1] in QUOTE_CHARS and candidate[:1] == candidate[-1:]
):
candidate = candidate[1:-1].strip()
if not candidate:
@@ -158,6 +158,8 @@ def sanitize_query(raw_query: str) -> dict:
seg = seg.strip()
if len(seg) >= MIN_QUERY_LENGTH:
candidate = _trim_candidate(seg)
if len(candidate) < MIN_QUERY_LENGTH:
continue
logger.warning(
"Query sanitized: %d%d chars (method=tail_sentence)",
original_length,