Skip to content

Releases: niawjunior/aipass-bridge

Release list

v0.2.0

Choose a tag to compare

@niawjunior niawjunior released this 03 Sep 04:40
f13ab47

The first tagged release. Everything before this was untagged main, so there
was no way to say "upgrade past X" — this is that X.

⚠️ If you cloned or forked before 2 Sep 2026, update

Copies taken before 8cad676
(2026-09-02 21:55 +07) have a bridge that any website you visit can drive —
send messages on your account, read the replies, list your conversation titles,
traverse /logs, kill the browser. It answered every request with
access-control-allow-origin: * and access-control-allow-private-network: true,
unauthenticated. Binding to 127.0.0.1 did not help: the path in was the browser,
not the network.

git pull    # then restart the bridge and reload the extension

Full detail in SECURITY.md.

Security

  • CORS off by default, Host header validated (closes DNS rebinding), process-control
    routes behind AIPASS_ADMIN=1, /logs name allowlisted instead of interpolated.
  • MIT license added — there wasn't one, which left nobody with clear rights to use or fork this.

Features

  • Every model the account has — 34 of them, including image, video and music
    generators, grouped the way the web UI groups them. npm run models, ?kind=image.
  • Image generation — npm run chat -- "แมวน่ารัก" --model gpt-image-2 --ratio 3:4
    saves a PNG. Aspect ratio is configurable per request, via /config, or AIPASS_ASPECT_RATIO.
  • Credit visibility — npm run credits, a meter in the popup, and the cost of
    each agent run. Previously the number lived only in the web UI.
  • npm run doctor — walks bridge → extension → login → credits → conversation →
    round trip and names the one thing to fix. Exits 0/1, so it works as a readiness probe.
  • The agent asks before writing instead of demanding a second full run with --apply.
    One run, one cost, and what you approved is what lands.
  • --help on every CLI.

Fixes

  • Pasting a block into npm run chat is one message, not one billed request per
    line. A 13-line prompt used to become 13 messages, with the model seeing only line 1.
  • Windows: test harness paths (thanks @meatasit), SEARCH separators, chat.mjs exit code.
  • The MV3 service worker survives with no tab open, via an offscreen document
    (thanks @astrathezero) — so the extension stops flapping between attached and gone.

Known gaps

Named rather than hidden: video and music generation are listed but unproven, style
presets are unwired, no test reaches the extension, and the agent's WAF encoding is
not round-trip lossless. See the README.