Repository navigation
Releases
v2.1.1
v2.1.1
Added
- Transcripts are indexed into Cortex.
media transcriptstores the full text under the video
URL with its title, source and caption-language metadata, somemory recallcan answer from a
video later. Indexing runs once per URL and language;index:falseopts out, and an indexing
failure never fails the transcript. - A live check (
HB_MEDIA_CORTEX_CHECK=1) recalls from an indexed transcript through thememory
tool.
Changed
- Settings navigation is a left rail. The wrapping top tab strip is replaced by a fixed-width,
independently scrolling rail like VS Code's settings, with the active panel scrolling on the
right. Narrow windows collapse the rail into a compact horizontal strip. Every
data-settings-tab/data-settings-panelhook and thetab-activeclass are unchanged.
Full changelog: https://github.com/hyperbolictonic/hypagon/blob/main/CHANGELOG.md
v2.1.0
v2.1.0
The media download integration release. Hypagon Gateway can inspect, transcribe and download
media from pages the browser can already reach, without a second MCP server.
Added
- A
mediatool group inhb-browser:status,info,preview,transcript,download,
jobs,cancelandlist. media previewreturns title, duration, uploader, a transcript excerpt and the poster image
without downloading the media. The MCP layer returns the image as image content, so a vision
model can look at it before committing to a download.media transcriptreturns captions as plain text, paged withmax_chars/cursor. Language
defaults to English, then the first manual track, then the first automatic track. Captions are
cached for ten minutes per URL and language.- Download jobs: one at a time, FIFO, with percent/bytes/speed/ETA, a 50-job persisted history,
per-job temp directories, tree-kill on cancel, and a 2 GB/file cap. - Settings → Media: save-folder picker, automatic downloader updates with an interval
(default 60 minutes, clamped 15–1440), optional browser-session cookies, and ffmpeg mode. - ffmpeg in three modes:
auto(configured path → managed copy →PATH),path, and
managed(checksum-verified download, licence saved beside it, not shipped in the installer). - A self-updating downloader: pinned and SHA-256-verified in the build, hourly checks with jitter,
rollback on a failed--version,HB_MEDIA_AUTOUPDATE=0to disable. media statusreports capability flags, job counts, ffmpeg source/version and updater state.
Changed
- The downloader runs on Electron's own Node runtime (
ELECTRON_RUN_AS_NODE), so no Deno or system
Node is required for full YouTube support. - Downloads write to a per-job subfolder under the configured save folder, so cancelling one job
never touches another.
Compatibility
- Signed-in downloads are off by default. A site that needs a session returns
LOGIN_REQUIRED
and raises a desktop notification; a human enables the browser session in Settings, then retries.
Cookies are scoped to the requested host, written to a 0600 file, and deleted after the run.
Full changelog: https://github.com/hyperbolictonic/hypagon/blob/main/CHANGELOG.md
v2.0.1
v2.0.1
The wrapper-core release. hb-rest runs on anyapi-to-mcp
by default: the package owns the outbound policy and the request, while the wrapper surface
stays exactly where it was.
Changed
- Wrapper transport is the
anyapi-to-mcpcore unlessHB_WRAP_CORE=legacy(or
KUANG_WRAP_CORE) is set. IPC channels, bridge routes, MCP tool names, the
WrapRunResultshape and the<userData>/wraplayout are unchanged. - A wrapper that uses a feature the core cannot reproduce exactly stays on the original
executor for that call, so one process serves old and new wrappers with no file migration. - Recipe rendering and credential redaction live in one shared module
(src/main/wrap/render.ts), so a fix cannot land in one core and miss the other. - An oversized response on the core is refused as
RESPONSE_TOO_LARGEinstead of being
truncated, and a core dry run reports header names only — every value is<redacted>.
Added
HB_USER_DATA_DIR(with theKUANG_USER_DATA_DIRfallback) points a build at a different
profile, so a dev run and an installed build no longer fight over the single-instance lock.npm run dev:isolatedstarts a second instance with its own profile and bridge port and
prints the matching MCP client config.
Fixed
- A dry-run preview now includes the query string. The core keeps the query out of the plan's
URL, so previews were showing a request without its parameters. - A policy refusal keeps the code the wrapper surface publishes: a private or literal address
isBLOCKED_ADDRESSand an unresolvable host isDNS_LOOKUP_FAILED, rather than every
case collapsing intoBLOCKED_HOST.
Full changelog: https://github.com/hyperbolictonic/hypagon/blob/main/CHANGELOG.md
v2.0.0
v2.0.0
The rebrand release. The project is now Hypagon Gateway, with Hypagon Browser
(hb-browser) and Hypagon REST (hb-rest) as its two MCP surfaces. The name no longer
collides with Hyperbolic.Ai.
Changed
- Product, UI, notification, installer and documentation branding now use Hypagon Gateway,
Hypagon Browser, and Hypagon REST. - Brand strings live in one module (
src/shared/brand.ts), so the next rename is a single-file
change instead of a repository sweep. package.json#nameishypagon-gateway;APP_VERSIONand the package version are2.0.0.
Compatibility
- Your data moves with you. Electron derives
userDatafrom the product name, so
src/main/migrate-user-data.tsimportsHyperbolic Gateway(and olderKuang Grade Mark Eleven) profiles on first launch. The copy is additive and never overwrites an existing
install. - Environment variables are unchanged.
HB_*remains the canonical prefix, with the
KUANG_*fallbacks still honoured. Nothing to update in MCP client configs. - Server labels and skill IDs are unchanged —
hb-browser/hb-restremain the MCP server
names, andhb-browser/hb-wrapkeep their skill directories. appIdis unchanged (com.hyperbolictonic.kuang-grade-mark-eleven) so an in-place
upgrade still replaces the previous install instead of installing alongside it.- The repository moved to
hyperbolictonic/hypagon.
GitHub redirects the old URLs, and the documentation now lives at
hyperbolictonic.github.io/hypagon; the previous
Pages address forwards there. The updater feed, skill install URLs and changelog links all point
at the new name. - The installer removes the pre-rename
Hyperbolic Gatewayshortcuts.
Full changelog: https://github.com/hyperbolictonic/hypagon/blob/main/CHANGELOG.md
v1.7.1
v1.7.1
The human collaboration + JEV release. The deck gains a gated collaboration
mode for anchoring notes and questions on the live page, and the browser MCP
gains an optional Just-Enough-View reading path for large pages.
Added
- Human–LLM collaboration (experimental, default off). Humans and agents
share a thread on a page element instead of trading screenshots:- page-anchored notes and questions with a highlight overlay, inline add-note
control, anchored drawer and composer; - an element picker and action toolbar over the live browser view;
- a thread panel with agent replies, resolve and a concise note list;
- notes stay anchored through document scroll, human notes preview in amber,
and an unsaved draft survives a failed save.
- page-anchored notes and questions with a highlight overlay, inline add-note
collaborateMCP tool:highlight,ask,read,list,replyand
resolveover the collaboration store.- Command Deck: the deck collapses to a free-floating orb with a radial petal
menu, status lights and drag docking; themed menus and Escape-to-exit. The
standalone NOTE petal retired — notes now live in collaboration. - JEV (Just-Enough-View) page compaction. Optional, not experimental:
jev_index,read_sectionandsearch_pagebuild a compact section index
(headings, token weights, one-line digests) over an in-memory depth store;- a master switch plus
prefer/enforceread modes, persisted tojev.json
over IPC; enforcerefuses unscopedobserve(as:"markdown"|"text")andGET /markdown
withJEV_REQUIRED(HTTP 409); region-scoped, budgeted/cursor,full: true
and pages under 1,500 tokens remain available;- a cheap precheck refuses oversized reads before the harvest (~15 ms), a
60-second loop breaker serves the read after two refusals, and harvest
errors fail open; - fold hints, a navigate nudge,
GET /jev/stats, andGET /tools/config
reportingjev: { available, mode }.
- Installable agent skills:
hb-browserandhb-wrap, with Hermes and
Skills CLI install commands.
Changed
- Settings layout: every tab now shares one centred
56rempane (72rem
for Tools/Wrappers), with reusablesettings-gridrows andsettings-card
blocks. Helper text wraps instead of overflowing, and the scrollbar gutter
keeps the pane position stable. - Tool surface: 16 grouped tools —
collaborateis the addition — plus
drive/decidewhen a decision model is configured and the three JEV tools
only when JEV is on. With JEV off the three schemas (~1k tokens) are not
advertised at all. - Documentation: new
docs/JEV.mdanddocs/SETTINGS_LAYOUT.md, a README
feature section, and both pages published in the GitHub Pages build. The
hb-browserskill teachesjev_index → read_section;hb-wrapdocuments
wrap_testdry-runs and the recipe limits that replace JEV on REST results.
Fixed
- Collaboration: the card Resolve control works; the picker returns its target
over IPC; highlights and the composer stay anchored on scroll; the action menu
renders above the browser view; Escape cancels note mode, the picker and element
toolbar; a kept draft is offered after a failed save. - JEV: the index reports the rendered index size rather than the page size.
Compatibility
- Collaboration is off by default and only appears after enabling it in
Settings → EXPERIMENTAL. Thecollaboratetool is additive. - JEV is off by default. A legacy
{ enabled: true }file migrates to
power: true, mode: "prefer"— never silently to enforce. - Settings storage, tool names and the bridge port are unchanged.
Full changelog: https://github.com/hyperbolictonic/hyperbolic-gateway/blob/main/CHANGELOG.md
v1.7.0
v1.7.0
The consolidated tool surface release. The browser MCP now advertises 15
grouped tools instead of the flat catalog, cutting the tools/list payload from
roughly 62 KB to 24 KB.
Added
- Consolidated tools:
navigate,capture,devtools,human_in_loop,
browser_workspace,shadow_iframes,researchandmemory. - Settings → Tools now supports Core / Research / Automation / Full presets.
- Per-action instruction overrides for grouped tools, alongside per-tool
instructions. act({ action: "fill", fields })for multi-field form filling.navigate({ action: "recipe", recipe_action: ... })for recipe save, list,
replay and delete.
Changed
extractabsorbscollect_allthroughkind: "collect".captureabsorbs viewport screenshots and rendered snapshots.navigateabsorbs history, consent and scroll actions.devtoolsis the read-only deep-browser console: page state, diff, console,
network, streams, HAR, JSON payloads, fingerprint and bridge health.- The default advertised order is
navigate→observe→act→wait_for→
find→extract;driveanddecidelead when a decision model is active.
Compatibility
- Old flat tool names remain callable through
tools/callbut are hidden from
tools/list. fill_formandreciperemain callable compatibility aliases; the grouped
forms are the advertised path.- App identity,
appId, bundle identity, userData path, wrapper storage and
update feed are unchanged.
Full changelog: https://github.com/hyperbolictonic/hyperbolic-gateway/blob/main/CHANGELOG.md
v1.6.2
v1.6.2
The experimental remote access release. It exposes the browser MCP surface
through a loopback Streamable HTTP gateway and an optional named Cloudflare
Tunnel, with bearer or OAuth authentication.
Remote MCP is explicitly experimental: the protocol path is implemented and
tested, but third-party client behaviour varies. Gemini Connected Apps in
particular can lose its connector context or fail to re-inject tools between
turns. Keep remote access off unless you are actively testing it, and never
expose it unattended.
Added
- Remote MCP gateway at
127.0.0.1:4112/mcp/browser, with bearer-token or
OAuth 2.0 authentication. The gateway has no route to the raw local bridge. - Named Cloudflare Tunnel support in Settings → Remote, including managed
cloudflareddownload/update and a public-hostname handoff. Quick Tunnels are
not supported. - OAuth 2.0 discovery, PKCE authorization-code flow, explicit consent,
access/refresh tokens, refresh rotation, and revocation using app-generated
client credentials. - Stateless MCP transport by default for remote clients. This avoids stale
Mcp-Session-Idvalues and session-cap failures; stateful sessions remain
available withHB_REMOTE_STATEFUL=1. - Human-takeover controls for remote agents:
get_human_activityreports the
passive pause,resume_agentclears it after confirmation, and a
RESUME AGENT button appears in the header during a takeover. - Local development log MCP (
hb-devlogs) with allowlisted, redacted,
read-only access. It is local stdio only and is not part of the remote gateway.
Changed
- The Remote panel now saves the tunnel hostname/token before starting the
tunnel and can auto-start the gateway. - OAuth clients use pre-registered client credentials; dynamic client
registration is deliberately not advertised. - A remote startup/restart invalidates in-memory OAuth tokens, so clients must
reconnect after the gateway restarts.
Fixed
- Session-cap failures no longer return a hard
429in stateful mode; the
least-recently-used idle session is reclaimed. - Unknown/expired session IDs are logged with their MCP method, making client
reconnect failures diagnosable.
Known limitations
- Gemini Connected Apps is flaky. It may show the custom app as connected
without injecting its tools into a conversation, and may reuse a stale
session. Reconnect the app and start a new chat after a gateway restart. - Cloudflare Bot Fight Mode / WAF can block the server-to-server OAuth token
exchange. A skip rule for/oauth/tokenis required on some zones. - Remote access is not a hosted service. The app, tunnel and machine must stay
running, and the bearer token/OAuth client secret must remain private.
Compatibility
- The app identity,
appId, macOS bundle identity, package directory, userData
path, wrapper storage, and update feed remain unchanged for in-place upgrades. - The legacy
kuang/kuang-wrapMCP labels andKUANG_*environment aliases
remain available.
Full changelog: https://github.com/hyperbolictonic/hyperbolic-gateway/blob/main/CHANGELOG.md
v1.6.1
v1.6.1
The documentation and presentation release. It carries the refreshed in-app
start page, the new icon, and the first developer/API guide published in the
standard Open Knowledge Format.
Added
- Developer documentation as a standard OKF v0.2 bundle under
developer/:
MCP setup, runtime architecture, security model, browser and REST APIs,
bridge routes, wrapper and recipe formats, error codes, and worked examples. - Developer and Docs links in the in-app start page navigation.
- The Pages site now publishes both readable HTML and the raw OKF Markdown.
- The transparent HyperGateway3 mark is wired into the app and installer
icon configuration.
Changed
- The public documentation set is curated to actual documentation. Internal
field notes, plans, handoffs, and TODO documents are no longer published as
manual pages; links to them go back to the repository. - The in-app manual is the concise one-page start page, with developer details
and the legacy Kuang section kept at the bottom.
Compatibility
- The app identity,
appId, macOS bundle identity, package directory, userData
path, wrapper storage, and update feed remain unchanged for in-place upgrades. - The legacy
kuang/kuang-wrapMCP labels andKUANG_*environment aliases
remain available.
Full changelog: https://github.com/hyperbolictonic/hyperbolic-gateway/blob/main/CHANGELOG.md
v1.6.0
v1.6.0
The rebrand release. The desktop application is now Hyperbolic Gateway, with
Hyperbolic Browser (hb-browser) and Hyperbolic Rest (hb-rest) as its two MCP
surfaces.
Changed
- Product and UI branding now use Hyperbolic Gateway, Hyperbolic Browser, and
Hyperbolic Rest. - New MCP client snippets generated by Settings → MCP Clients use
hb-browser/hb-rest,
HB_BRIDGE_URL, andHB_WRAP_TOKEN_FILE. - Documentation now uses the new names, with compatibility stubs for old links.
Compatibility
- The old MCP labels
kuangandkuang-wrapremain available in the MCP Clients tab. - The server binaries accept both
HB_*and legacyKUANG_*environment variables. - The Windows
appId, macOS bundle identity, package directory, userData path, wrapper token
path, and update feed are intentionally unchanged in this release so existing installs upgrade
in place. The old technical identifiers are retained as compatibility aliases.
Full changelog: https://github.com/hyperbolictonic/hyperbolic-gateway/blob/main/CHANGELOG.md
v1.5.9
v1.5.9
Fixed
- Auto-update installs now use electron-updater's silent + force-run path. The update applies
without a separate installer window and relaunches the app, including when installation starts
from the quit handler. The header badge and Restart action remain the manual path.
Full changelog: https://github.com/hyperbolictonic/kuang-grade-mark-eleven/blob/main/CHANGELOG.md