Skip to content

Update warp_parser.py - #164

Merged
v314b0i merged 1 commit into
uber:mainfrom
MaddipatlaChetan24:patch-5
Oct 11, 2026
Merged

v314b0i merged 1 commit into
uber:mainfrom
MaddipatlaChetan24:patch-5

Conversation

@MaddipatlaChetan24

@MaddipatlaChetan24 MaddipatlaChetan24 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Related issue: N/A

What changed?
WarpParser.init and parse_all() now guard Path.exists() calls against OSError. Previously an inaccessible candidate path (e.g. the sandboxed macOS Group Container entry in DB_PATHS) could raise PermissionError uncaught, crashing parser construction or the entire parse_all() run.

Why?
ClineParser in this same codebase already handles this exact case (per-candidate try/except OSError), but WarpParser didn’t, leaving an inconsistent and unguarded failure path for a realistic scenario (restricted sandbox container access).

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update

How did you test it?
py_compile for syntax validation; manually traced both call sites to confirm the new try/except blocks catch OSError and fall back to record_diagnostic/default path instead of propagating.

Potential risks
Low — the change only adds exception handling around existing exists() checks; no change to SQL, parsing, or data-extraction logic.

@v314b0i

v314b0i commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator

LGTM

@v314b0i
v314b0i merged commit 930e5cb into uber:main Oct 11, 2026
14 checks passed
atovkes added a commit that referenced this pull request Oct 15, 2026
…pture (#176)

Brings main's 49 commits (Rohan's #170 and #176, plus #161, #162, #164) on
top of stage A, so main is an ancestor of desktop-dev again.

Conflict resolutions:
- Discovery lives in Sensor/adr_discovery since split_stage 02. Main's new
  modules and tests go there; its policy example moves to Sensor/examples and
  its GenAI mapping test to Sensor/tests/sensor.
- Walk budget: main's stage-ceiling reserve (reserved_walk_entries, 10% by
  default) replaces desktop-dev's walk-level reserve. Desktop-dev's coverage
  records stay in main's fair-share walk: scope_excluded, symlink_not_followed,
  the walk-stop boundary, and swept only when the root was listed.
- Hooks: main's digest identity, with desktop-dev's shlex-aware scrubbing
  (applied before hashing) and readable names.
- Schema 1.2 carries both sides' additions; identifier/verify.py stays deleted.
- Common/sync.py writes the Discovery copy under Sensor/. Main's Discovery CI
  job becomes a lint step in Sensor tests, which already run Discovery's tests.
- Desktop's import contracts list the new adr_discovery.archive module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants