Never present a guess as exact

Point & Fix has to find the source of whatever you click. Sometimes it knows; sometimes it guesses. Saying which is which is the whole design.

Point & Fix starts with a click: you select a button, a heading or a card in your running app, and PaneScale has to find where that element lives in your source code. Get it right and the fix is fast. Get it wrong and the agent edits the wrong component — confidently.

The most important decision we made was not how to find the source. It was to always say how sure we are.

When we know

Development builds of modern frameworks leave breadcrumbs. React, Vue and Svelte attach debug information to rendered elements that point back to the component and, often, the file and line. When that information is present, PaneScale uses it, and the location is shown as exact.

When we guess

Production builds, plain HTML, server-rendered templates and some build setups don’t carry that information. Then PaneScale falls back to a text search across the workspace — looking for the element’s text, classes and attributes — and ranks what it finds:

  1. component files first,
  2. then other source code,
  3. then documentation,
  4. then tests.

The search is bounded — at most 3,000 files and 12 MB, skipping .git, node_modules and dist — so it stays fast on large repositories.

A location found this way is labeled a candidate. Always. Even if there is only one match, even if it is almost certainly right. The label is not modesty; it is information you need before you let an agent edit a file.

Why it matters

An exact location and a good guess look identical in an interface that doesn’t distinguish them. You would trust both the same way — until the guess is wrong, the agent changes a similar-looking component somewhere else, and the bug you clicked is still there.

When you see “candidate”, you know to glance at the file before applying. When you see “exact”, you don’t have to.

Safe by construction

The rest of Point & Fix follows the same idea of making mistakes cheap:

  • The browser pane only talks to your local dev server — localhost, 127.0.0.1 or [::1] — through a proxy that allows only GET requests.
  • The fix runs in an isolated worktree that includes your uncommitted work, so the agent sees exactly what you see without touching it.
  • A quick check runs before you see the diff.
  • Applying goes through the approval-protected merge, with a checkpoint first.

If the agent picked the wrong file after all, Undo is one click.

More articles

Checkpoints that never touch your branch

How PaneScale snapshots a working copy byte for byte without moving HEAD, the index or any branch — and why rewinding refuses to overwrite your edits.

Why the second pane opens instantly

Starting a coding CLI takes seconds. Pre-warmed sessions hide that wait — here is how we do it without eating your memory.

Measured, not estimated

Why the Token Guardian shows “not reported” instead of a guess — and how real budgets stop runs instead of turning numbers red.