Repository navigation
Releases: adynrisy/agentqon
Release list
v21.4.4 — rate-limit survival
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)
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
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
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 andagentqon 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 beyondagentqon 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
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
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
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
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
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 keymints a scoped brain key (aqb_…, shown once, stored hashed, revocable viaagentqon 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 brainprints 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
custommarker, 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
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 updatepoints 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.
cryptographyis 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-binaryis gated to platforms that have wheels, and the library checker learnedplatform_machinerules.
Machine matrix after this line: Windows Intel/AMD ✓ · Windows ARM ✓ · Intel Mac ✓ · Apple Silicon ✓ · Linux Intel/ARM/Alpine ✓.