Skip to content

Releases: hamanakam1/panther-intent-capture

Panther Intent Capture 1.7.0 — friction in the ticket, a replay plan, and a GitHub destination

Choose a tag to compare

@hamanakam1 hamanakam1 released this 22 Oct 13:44
72d10ad

Panther Intent Capture v1.7.0

Local-first browser intent capture with visible controls, evidence-linked
proposals, portable JSON, and opt-in verified ticket delivery.

Creates tickets; does not execute work.

What it is

Panther records what you are actually doing in the browser — the pages you
visit, the interactions you have, and what the page itself said went wrong —
and turns that into structured evidence. Everything stays on your machine:
the extension talks to a local backend, and the local backend talks to a
local model. Nothing is uploaded.

Added in 1.7.0

  • Possible-friction signals in the ticket. Repeated clicks on one control,
    and clicks on an element the page never marked as a control, now reach the
    draft, the export and the review page — not only the live status window.
    A non-control click is captured only when the element declares a role, is
    focusable, or is styled as a pointer, so an ordinary click on empty space
    stays out of the capture.
  • Replay plans. A capture can be exported as a versioned,
    destination-neutral plan of the path that was taken, with the most stable
    handle available for each control, the recorded failures and the friction
    signals. It can be rendered as a Playwright script. Panther never runs a
    plan, and a plan never carries a typed value, because Panther never
    captured one.
  • A GitHub issues destination. A reviewed draft can be delivered to a
    named repository as an issue, with its own credential, a stable identity
    per draft, an independent readback, a durable receipt, and the same
    preview-and-confirm contract as the local ticket service.
  • One destination contract. Both destinations sit behind a registry and
    share the preview, confirmation, idempotency, receipt and verification
    contract. A destination is chosen explicitly and its target is frozen for
    the session when consent is given.

Changed in 1.7.0

  • The portable intent bundle moves to schema version 1.2, adding the
    optional friction array on a ticket. A consumer that only understands an
    earlier version must select the schema it understands and quarantine an
    unknown version, exactly as it would for any other unknown version.
  • The automatic-delivery policy now names its destination and moves to
    policy version 2. A version 1 policy predates more than one destination
    and names the local ticket service implicitly, so it keeps working.

Privacy model

  • Capture only runs after an explicit, visible On.
  • Off is available at every point, including during capture, generation,
    delivery, status waits and startup.
  • A page failure is an observation of what the page said, and a friction
    signal is a hypothesis about the recorded actions. Neither is ever a
    verified defect, a reproduction, or permission to act.
  • A GitHub credential is read only by the adapter. It never appears in a
    preview, a receipt, an export, a status report or a log, and a credential
    readable by anyone else is ignored.
  • The local ticket service adapter stays loopback-only. Its host checks
    are not relaxed.
  • No new permission, no new host permission, and no new startup behaviour.

Verification

  • 251 JavaScript tests and 225 Python tests pass; the extension ZIP builds.
  • A full end-to-end run against the real backend: upload, diagnostics,
    friction, draft, replay plan, Playwright script, export — with the
    authority flags intact.
  • The GitHub adapter is covered by a synthetic GitHub API: creation,
    verification, reuse of an existing issue, conflict on different content, an
    unverifiable readback, a refused creation, and the credential never leaving
    the adapter.

Not established

  • No live delivery to github.com was performed. The adapter's behaviour
    is covered by a synthetic API, not by a real repository.
  • The GitHub review fence is text in the body plus a label. It is not a
    GitHub permission.

Install

Load the unpacked extension from extension/, or see the README for the
packaged release path.

Panther Intent Capture 1.6.0 — the page's own failures, recorded locally

Choose a tag to compare

@hamanakam1 hamanakam1 released this 22 Oct 08:26
5880b1c

Panther Intent Capture v1.6.0

Local-first browser intent capture with visible controls, evidence-linked
proposals, portable JSON, and opt-in verified ticket delivery.

Creates tickets; does not execute work.

What it is

Panther records what you are actually doing in the browser — the pages you
visit, the interactions you have — and turns that into structured evidence.
Everything stays on your machine: the extension talks to a local backend, and
the local backend talks to a local model. Nothing is uploaded.

Added in 1.6.0

  • Page-reported failures. Panther now also records what the page itself
    said went wrong — an uncaught exception, an unhandled promise rejection, an
    HTTP error response, or a subresource that failed to load — in the same
    ordered timeline as your interactions. A capture of interactions alone can
    only say "the person clicked Save and nothing happened next". With the
    failure, a draft can name a cause instead of only a symptom.
  • A bounded main-world relay. An isolated content script cannot observe
    the page's uncaught exceptions; only the page's own world can. Panther
    installs a small relay there for the duration of the capture. It forwards a
    message and a location only, holds no extension privilege, and reads no
    page text, input values or typed keys.
  • A "Page-reported failures" section in the review UI, per-draft failure
    summaries, and a GET /api/extension/recordings/<id>/diagnostics route.
  • diagnostics on each exported ticket and diagnostic_count on the
    exported recording.

Changed in 1.6.0

  • The portable intent bundle moves to schema version 1.1. The addition is
    compatible and optional; a 1.0 consumer must select the schema it
    understands and quarantine an unknown version, exactly as it would for any
    other unknown version.
  • A failure keeps the time it actually happened, so the recorded timeline
    stays truthful. Failures from before the capture began stay outside the
    consented window.
  • A regenerated draft keeps the fields a reviewer already changed, instead of
    discarding that decision.

Privacy model

  • Capture only runs after an explicit, visible On.
  • Off is available at every point, including during capture, generation,
    delivery, status waits and startup.
  • A page failure is an observation of what the page said. It is never a
    verified defect, a reproduction, or permission to act, and it can only ever
    reach a draft.
  • Console output, stack traces, page text, typed values and keystrokes are
    never captured, including as part of a failure.
  • No new permission, no new host permission, and no new startup behaviour.
    The relay is installed only while a consented capture is active.

Verification

  • 192 Python tests and 248 JavaScript tests pass; the extension ZIP builds.
  • A real browser, a real extension, and the repository's own shipped code
    unmodified: four real diagnostics were captured, including an HTTP 500
    carrying the resource's own timestamp and an uncaught exception carrying its
    message, script URL, line and column. The isolated-world behaviour that
    motivated the relay was measured rather than assumed.
  • A full end-to-end run against the real backend: upload, diagnostics, draft,
    export — with the authority flags intact and no secret leakage.

Install

Load the unpacked extension from extension/, or see the README for the
packaged release path.

Panther Intent Capture 1.5.0 — live action feed and opt-in local interpretation

Choose a tag to compare

@hamanakam1 hamanakam1 released this 22 Oct 07:49
45a4064

Panther Intent Capture v1.5.0

Local-first browser intent capture with visible controls, evidence-linked
proposals, portable JSON, and opt-in verified ticket delivery.

Creates tickets; does not execute work.

What it is

Panther records what you are actually doing in the browser — the pages you
visit, the interactions you have — and turns that into structured evidence.
Everything stays on your machine: the extension talks to a local backend, and
the local backend talks to a local model. Nothing is uploaded.

Added in 1.5.0

  • Live, numbered action feed and bounded rules-based interpretation in the
    status window, with stated goals, last-observed freshness, and
    evidence-linked possible-friction hypotheses.
  • Separately opted-in local AI interpretation of new observations, with
    model/evidence coverage, request throttling, no remote fallback, and no
    ticket or execution side effects.
  • Scoped cancellation and late-response fences for Off, Stop, consent
    withdrawal, stale status, session changes, and hidden or closed windows.

Changed in 1.5.0

  • Captured-page status excludes the live projection; only the trusted monitor
    receives it. Saved results retain a bounded rules summary explicitly labeled
    as history.

Privacy model

  • Capture only runs after an explicit, visible On.
  • Off is available at every point, including during capture, generation,
    delivery, status waits and startup.
  • Status-window messages cannot grant capture consent, select a page, start
    recording, or retry abandoned work.
  • The backend is opt-in and local; the extension ships no startup service and
    requests no new browser permissions.

Install

Load the unpacked extension from extension/, or see the README for the
packaged release path.