Skip to content

Add optional Jev web decision handoff to Python client - #80

Merged
AetherAI3 merged 3 commits into
mainfrom
feat/jev-web-decision-handoff
Sep 23, 2026
Merged

AetherAI3 merged 3 commits into
mainfrom
feat/jev-web-decision-handoff

Conversation

@AetherAI3

@AetherAI3 AetherAI3 commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Purpose

Add an optional Jev → selected-model decision handoff for the Python client. Jev makes bounded navigation choices over caller-approved URLs; the host application's chosen model handles reasoning and generation. Explain the split and privacy boundary in the root README and Python README.

Exact scope

  • Base commit: 9981040b2e873b4120d0bc57850cbbb917603708
  • Exact head commit: 9b2e1aa2a3bae38ca01c9f306278e02f7dfd3434
  • Allowed paths: README.md, clients/python/README.md, clients/python/src/aether_browser/jev.py, clients/python/tests/test_jev.py, docs/JEV.md
  • Non-goals: browser-server authority changes, npm parity, MCP tools, autonomous clicking/forms, bundled generative model, releases, deployment
  • Contract references: OpenRouter Jev System One/Decisions Choice envelope and TypeSafe text-only model documentation (linked in docs/JEV.md)
  • Dependency PRs: none

Verification

  • PYTHONPATH=clients/python/src python -m unittest discover -s clients/python/tests -v — 53 passed, including 8 Jev tests.
  • python -m compileall -q clients/python/src/aether_browser/jev.py — passed.
  • git diff --cached --check — passed before commit.
  • Live provider integration was not run (no provider key in this environment); provider contract is exercised with a fake transport. Repository CI for this exact head passed all six jobs: change-map, quality, unit, security, node-client, and python-client.

Security and privacy

No browser-server security-boundary change. The optional Python client sends caller-selected text, goal, URL/title, and up to three candidate URLs to OpenRouter using a caller-owned key. It sends no screenshots, follows no provider redirects, accepts only the pinned Choice schema/model, and cannot invent a destination. The existing browser server still enforces navigation policy. Common login/payment signals cause human takeover before sending page text; callers must also filter sensitive text and signed URLs because this detector is necessarily incomplete. There are no new dependencies, listeners, containers, or CI permissions.

Rollback

Revert this commit; no server or persisted state migrates. Any already-sent provider requests remain in the provider's records according to the caller's account settings.

Confidence and unknowns

  • Confidence: client behavior and bounded failure paths are covered by unit tests.
  • Known limitations: no visual interpretation or safe click selectors from the current browser response, Python-only opt-in module, caller supplies the reasoning model.
  • Follow-up: live provider smoke test with an authorized key and measured decision latency/cost before a hosted product rollout.

Checklist

  • The branch is based on the declared commit and the exact head is recorded above.
  • Public behavior and documentation agree.
  • Tests cover the changed contract and its denial or cleanup path.
  • No secrets, private host details, personal data, or private page content are included.
  • No dependency or hash-lock change.
  • The change does not publish the repository, Pages, a release, or a hosted service.
  • CI evidence belongs to this exact head and no valid review finding is unresolved.

@AetherAI3
AetherAI3 merged commit 5689318 into main Sep 23, 2026
10 checks passed
@AetherAI3
AetherAI3 deleted the feat/jev-web-decision-handoff branch September 23, 2026 13:57
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.

1 participant