From b3541d573788ada9d0ddc68f7fe0e9da135e808f Mon Sep 17 00:00:00 2001 From: ciregenz Date: Fri, 5 Jun 2026 16:24:04 -0700 Subject: [PATCH] [eric] browser: possessive apostrophes no longer break skill sig matching --- backend/apps/agents/browser/browser_skills.py | 5 ++++- backend/tests/test_browser_skills.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/backend/apps/agents/browser/browser_skills.py b/backend/apps/agents/browser/browser_skills.py index c4058b0c..06e86328 100644 --- a/backend/apps/agents/browser/browser_skills.py +++ b/backend/apps/agents/browser/browser_skills.py @@ -160,7 +160,10 @@ def normalize_task(task: str) -> str: # value is filled from the LIVE task at replay (so the value is never stored on # disk, a redaction win, and the skill generalizes). Quoting is the explicit, # high-precision signal that this token is a parameter; we never guess. -_QUOTE_RE = re.compile(r'["“”‘’\']([^"“”‘’\']{1,200})["“”‘’\']') +# Lookarounds keep word-internal apostrophes (chen's, don't) from opening a +# span; without them every possessive made each task wording a unique sig and +# silently disabled skill matching for those tasks. +_QUOTE_RE = re.compile(r'(?