Skip to content

Releases: adynrisy/agentqon

v21.4.4 — rate-limit survival

Choose a tag to compare

@adynrisy adynrisy released this 23 Oct 08:22

Install / update

agentqon stop

npm install -g agentqon@latest

agentqon setup

agentqon

What changed

Missions survive rate limits instead of dying on them

  • 429-specific retry: up to 8 attempts, and the provider's own Retry-After instruction is honored (up to 120 seconds) instead of guessing a wait.
  • Per-connection pacing: once a connection is throttled, the harness spaces its calls out for that connection; pacing decays after 2 quiet minutes. Healthy connections are never paced.
  • Visible waiting: the mission emits ProviderRateLimited events and its steps show "Provider rate-limited — waiting Ns" while it waits, so a slowed mission never looks like a hung one.

The honest tradeoff: on a free-tier model, missions now run slower through tight minutes rather than failing at the first throttled call. This release came from a live session where a mission died at the researcher step because the free-tier provider answered HTTP 429 on every retry — the panel fires dozens of calls and starved against a per-minute quota.

Test evidence

  • Unit suite: 292/292.
  • CLI (node) suite: 30/30.
  • Pack gate: PASS.
  • Verified end-to-end against a throttling stub provider before staging.

AgentQon for Android — v1.0 (first build)

Choose a tag to compare

@adynrisy adynrisy released this 23 Oct 15:22

The full AgentQon harness running on the phone itself — no computer needed at runtime.

What this is:

  • A debug-signed APK (77 MB) for modern 64-bit Android phones (Android 8.0+).
  • Contains the complete AgentQon server + web interface, served on-device.
  • Built by GitHub Actions; the harness payload inside is the published 22.1.3 release.

Status: first build, currently in phone testing. The APK attaches here once the phone test passes.

v21.4.3 — conversation, and a composer that never locks

Choose a tag to compare

@adynrisy adynrisy released this 13 Oct 09:31

Install / update

agentqon stop

npm install -g agentqon@latest

agentqon setup

agentqon

What changed

The chat understands conversation now

  • A dedicated conversation endpoint (POST /v1/chat) answers normal
    chat with a single call to your connected model — no mission, no
    panel, no research run. Greetings, thanks, small talk, questions
    about the product, and short questions that don't ask for a work
    product are conversation.
  • The routing is deliberate about edge cases: "Can you write me a
    poem?" is a mission (a deliverable was requested); "How do I make
    tea?" is a chat. Anything with a production verb — write, research,
    compare, build, plan, audit… — or a detailed brief goes to a mission,
    exactly as before.
  • Conversation carries its own short history (reset by New chat), and
    with no model connected it says so honestly, inline in the thread.

The composer never locks

  • The old busy-lock is gone entirely. Sending a mission returns
    immediately; the mission runs in its own progress box in the thread
    ("Mission running — ask me anything meanwhile, or start another
    task"), and completion is tracked by polling until the mission
    reaches its final state, rendering the same result — or the same
    persistent failure message — as before.
  • You can chat, or start a second mission, while one is running. A
    send attempted while a conversation reply is still generating shows
    a visible note — never silence — and a hung call times out and
    releases the composer on its own.

Test evidence

  • Unit suite: 286 passed (incl. a 21-case classifier suite and
    behavioral tests proving a conversation creates zero missions and
    the composer unlocks at kickoff).
  • Integration: 5/5 for the conversation endpoint (BYOK reply, platform
    reply, honest no-model 503, history handling, back-to-back missions).
  • CLI (node) suite: 30/30. Pack gate: PASS (9,446 files, identity
    agentqon, payload Python 3.12).

v21.4.2 — truth, speed, and the full audit

Choose a tag to compare

@adynrisy adynrisy released this 13 Oct 08:16

Install / update

agentqon stop

npm install -g agentqon@latest

agentqon setup

agentqon

What changed

From the live session (the nine)

  • Honest model state: a new tenant-aware model-state endpoint feeds
    the header chip and agentqon doctor, so both stop reporting "no
    model connected" for BYOK / workspace connections that are Active.
  • The agent roster is saved on the user's device (browser local
    database): it downloads once, browsing/filtering is instant and
    offline-fast, and it only re-downloads on a version check when the
    roster actually changed.
  • UI performance overhaul: chat actions no longer trigger full
    refreshes, server responses are gzip-compressed, and pollers pause
    when the tab is not visible.
  • Chat failures now stay visible in the thread with the real reason,
    instead of a banner that auto-dismisses after ~6 seconds.
  • The chatbox Privacy dropdown is replaced by a model picker ("Auto"
    by default, or pin any synced model per mission).
  • Terminal runs reuse the already-running verified server instead of
    re-decrypting the payload over its locked Windows runtime folder
    (the EPERM failure).
  • Provider transient errors (429/500/502/503/504 and timeouts) retry
    automatically with backoff — a single provider 503 no longer kills
    a mission at the researcher step.
  • Local installs show the real error detail again; only hosted
    multi-user mode keeps the sanitized INTERNAL_ERROR surface.
  • The CLI's "of $1000.00 budget" wording is removed from run output.

From the full audit

  • Pausing then resuming a mission no longer strands it in "running"
    forever; re-planning no longer leaves ghost tasks; finished
    missions no longer leave their tasks dangling open.
  • A model answering in its own persona-schema format no longer kills
    code missions with "no deliverable" (was failing 3/3).
  • The CLI's silent $10-per-run cap is removed — it contradicted the
    simplification law (user-facing budgets removed entirely).
  • The CLI can no longer spawn a duplicate server over a live-but-slow
    one and orphan the first beyond agentqon stop's reach.
  • Failed terminal runs now exit non-zero instead of reporting success
    to scripts.
  • Dashboard lists no longer freeze at whatever they showed at boot
    (refresh sequencing fixed); the roster count is no longer
    hardcoded.
  • Installers now require exactly Python 3.12 (the payload's version)
    instead of accepting 3.11.
  • Redaction proof: provider error bodies and API keys never reach
    error surfaces.

Test evidence (final gates on the staged tarball)

  • Backend unit: 278/278.
  • Integration: 67/67.
  • CLI (node): 30/30.
  • UI: 48/48.
  • Pack-gate: PASS on the exact staged tarball — 9,446 files, package
    identity and Python 3.12 verified.

Honest limit

The every-machine checks ran as an automated matrix; a real Windows PC
remains the final proof surface for install behaviour.

v21.4.1 — Windows library-check hotfix

Choose a tag to compare

@adynrisy adynrisy released this 13 Oct 08:15

Install / update

Stop AgentQon first, then:

npm install -g agentqon@latest

agentqon setup

agentqon

What changed

  • Library verification no longer demands uvloop and exceptiongroup on
    Windows. Root cause: 21.4.0's checker read its rules from the
    hash-locked requirements file, and the file's security hashes bled
    into the extracted platform markers (e.g. sys_platform != "win32"
    arrived with hash text glued on). The strict parser fell back to
    "demand the module", so setup stopped on Windows — while correctly
    leaving the existing install untouched.
  • The fix is verified against the real hash-locked file: markers now
    extract cleanly for all 30 packages, and a simulated-Windows run of
    the shipped checker correctly skips uvloop and exceptiongroup while
    still demanding them on Linux.

Test evidence

  • CLI (node) suite: 18/18 at build time.

v21.4.0 — the hardening release

Choose a tag to compare

@adynrisy adynrisy released this 13 Oct 08:15

Install / update

Stop AgentQon first, then:

npm install -g agentqon@latest

agentqon setup --repair

agentqon

What changed

Backend — isolation and reliability

  • Per-run isolation: concurrent runs can no longer cross model routing or
    share per-run state (the audit's top critical).
  • Custom-agent instructions are tenant-scoped — no more leaking across
    accounts.
  • Queue claiming is atomic, with real heartbeats and owner fencing; the
    inline runner claims the correct job.
  • Vault configuration parsing fixed and now fails loudly instead of
    silently; the kill switch works in the default mode; approval state
    cannot be flipped after the fact; API errors no longer leak tracebacks.

CLI — the terminal hang is dead

  • Fixed the Progress timer leak that hung the terminal after "ready"
    (16/16 new regression tests pass).
  • Repair is staged-and-swapped, so it cannot brick an install, and it
    refuses to run while a server is live.
  • Python detection now tries every interpreter on the machine.
  • Server identity + version check on launch: a stale server left over
    from an older install is restarted, never silently reused. This was
    the root cause of the lingering ::1 loopback error in 21.2.x — the fix
    shipped in 21.2.1, but an old running server kept serving the bug.

Web UI

  • Export downloads work again, including in Shield mode.
  • Custom-agent registry capped at 100 rows with debounced filtering.
  • An expired session now shows a clear "session expired — relaunch with
    agentqon" banner instead of failing silently.
  • Run statuses are honest, and counts corrected to the verified 6,799
    agent roster.

Release pipeline

  • The pack-gate now scans the compiled payload, asserts the package
    identity and the Python 3.12 build, and uses wider secret patterns.
  • The package rename is a verified script (11 replacements, gate PASS
    with identity verified for this staging).

Test evidence

  • Backend unit: 240 passed (the one sandbox queue-timing failure is
    environmental and proven as such).
  • Integration: 149 passed.
  • CLI (node): 16/16.
  • UI: 25/25.

Note on dependencies

Three pins an early audit draft called "dead" (opentelemetry-api, PyYAML,
python-dotenv) are in fact required by FastAPI / uvicorn[standard] under
the hash-locked requirements — proven in a clean venv. They stay.

v21.3.0 — the simplification release

Choose a tag to compare

@adynrisy adynrisy released this 12 Oct 14:17

AgentQon gets out of your way.

Two connection kinds, total

The Connections form now offers exactly two kinds: a local model server (your machine, no API key) or an API key (BYOK) connection to any provider or gateway. Either kind can use any address — a local address like 127.0.0.1 is accepted for both. The old kind-based rejections (URL_POLICY: private_endpoint when a gateway-kind connection pointed at your own machine) are gone: locality is derived from the address itself. The protections that matter are unchanged — cloud-metadata addresses are always blocked, public endpoints still require https, credentials never travel inside URLs.

Budgets leave the interface

No budget pickers in chat, no budget field on the mission form, and no mission can fail with a budget error. You describe the job; it runs. Spend is still recorded as plain accounting. (One fixed, generous internal ceiling remains — invisible and not user-settable — purely so a stuck loop cannot drain an API key.)

Forms fold away

The custom-agent form stays collapsed until you add or edit an agent, and folds back after saving. The mission form leads with just the task and Run; secondary fields live under a collapsed "More options".

Verification

Full suites before staging: unit 204 passed, integration 143 passed, pack gate PASS.

v21.2.1 — IPv6 loopback parity

Choose a tag to compare

@adynrisy adynrisy released this 12 Oct 14:17

A one-line policy fix with an outsized blast radius.

The endpoint validator classified IPv6 loopback (::1) as a reserved address and blocked it, while IPv4 loopback (127.0.0.1) was allowed — so a local model server addressed as http://[::1]:11434 was refused with URL_POLICY: reserved_range even when correctly declared as a local endpoint. Loopback is now governed by the caller's local-endpoint rule for both families, with a parity test pinning it.

Found by the owner connecting a local model on Windows; the same fix pattern (audit the invisible platform assumption, pin it with a test) drives the whole 21.x line.

v21.2.0 — a brain for your agent, a registry for your own

Choose a tag to compare

@adynrisy adynrisy released this 12 Oct 11:14

Two doors open in this release: bring your own agent in, and build your own agents here.

AgentQon as a brain for your agent

  • agentqon brain key mints a scoped brain key (aqb_…, shown once, stored hashed, revocable via agentqon brain revoke). The key works ONLY for the brain endpoint — it is refused on account and admin routes, and Shield's host/origin protections are unchanged.
  • POST /v1/brain — one synchronous call; the full AgentQon pipeline answers (panel, critic, memory — sessions remember prior exchanges). No model connected still returns the honest 503; nothing is ever faked.
  • agentqon brain prints the endpoint, key status, and copy-paste curl / Python / Node snippets with your key filled in.
  • MCP bridge included — a one-file stdio MCP server exposing ask_agentqon, so MCP-native agents plug in directly.
  • Guide: Use AgentQon as your agent's brain.

Custom Agent Registry (web UI)

  • Add / Edit / Delete your own agents from the registry card: name, role, description, expertise (task types), instructions.
  • Custom agents are full citizens, not a cosmetic list: they appear in the registry with a custom marker, are ranked by the suitability layer for their declared expertise, sit on live mission panels with their instructions driving their drafts, and accrue performance-ledger entries when they run.
  • Human-readable validation everywhere (no raw 500s); mutations are admin-guarded and tenant-scoped.

Named buttons

Every one of the UI's 70 buttons now carries a stable name (e.g. mission-send, custom-agent-add), with aria-labels on icon-only controls — pinned by a contract test so no unnamed button ships again.

Also inside

Everything from the 21.1.x line: terminal progress bars, the boot watchdog, the error-surface pass, and the every-machine dependency fixes (Windows Intel/ARM, Intel + Apple-Silicon Macs, Linux).

v21.1.3 — every machine fixes

Choose a tag to compare

@adynrisy adynrisy released this 12 Oct 11:05

The 21.1.x line, cumulative. AgentQon now installs cleanly on every mainstream machine:

  • v21.1.0 — terminal UX: progress bars for downloads and long phases (setup shows real percentages for dependency installs and payload encryption), a server-start readiness gate before the browser opens, a web-UI boot watchdog with a recovery panel instead of a blank page, and a full error-surface pass — every failure ends with the exact fix command. agentqon update points at the real package.
  • v21.1.1 — Windows: uvloop (a Unix-only library pulled in by the web server) is skipped on Windows via a platform marker; it had no Windows build and broke every Windows setup.
  • v21.1.2 — the checker learns the rule: the install-time library verification now understands != platform markers, so it no longer demands a library Windows deliberately skipped.
  • v21.1.3 — every machine: a full audit of all 30 pinned dependencies against 8 platform classes. cryptography is pinned to 46.0.3 — the newest release shipping wheels for Intel Macs AND Windows-on-ARM (verified against the vault, payload cipher, password hashing and release signing). psycopg-binary is gated to platforms that have wheels, and the library checker learned platform_machine rules.

Machine matrix after this line: Windows Intel/AMD ✓ · Windows ARM ✓ · Intel Mac ✓ · Apple Silicon ✓ · Linux Intel/ARM/Alpine ✓.