Skip to content

Releases

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 19:45
c978b31

Compatibility

  • 0.2.0 N-1 support targets 0.1.8, the latest published patch of 0.1.x, and remains additive on API 1:
    • Plugin API: verified by a directional type bridge (old plugin values accepted by the current console; current console values satisfy old plugins; historical optional keys are retained) and the exact published 0.1.8 conformance kit against a 0.1.8-shaped provider opened by the current loader. New principal capabilities remain opt-in.
    • Routes: verified for the legacy browser session, tool listing, ping, panel snapshots, actions, confirmation-token exchange and a sample plugin asset through both tool-id and load-reference paths. Other Access/bearer and static-shell routes remain supported by policy but are not exercised by the added historical probe.
    • Space route: a producer Space reply {changed: false, cursor} without a scene now passes through unchanged instead of being projected to an empty scene. A 0.1.8 static shell treats it as a failed source for that poll instead of blanking the scene; current shells keep the last scene.
    • Manifest files: verified for unversioned and versioned API 1 plugin registrations with module/hash validation. Existing pet/asset pack manifests and static node configuration remain supported by policy but are not covered by this N-1 probe; the principal registry is an additive new surface.

Added

  • Refit Room into the remaining viewport with compact avatar/name-tag controls, hover/focus fact popovers, non-overlapping CSS billboards and the existing projected 3D overlays. Keep Scene style controls inside Room, one scene scroll region, a screen-reader summary and a visible Team text alternative. Unify Space state styling and working indicators using existing tokens (#101).

  • Add header-only snapshot versions and X-Acon-Known conditional request headers, preserving plugin cursor replies and forwarding version/freshness headers through the static transport. Adapt polling to request duration while keeping the inbox's 5-second minimum, pause hidden panel/Space polls with immediate visible refresh, progressively render inbox sources, refresh expired snoozes on unchanged rounds, and drive Room motion from the client observation clock without marking healthy SWR sources failed (#105).

  • Add the Space Board view with per-group zone columns, producer-linked cards, owner detail controls, and collapsed Done history showing the last five supplied cards. Keep horizontal scrolling within each board row, preserve focus/disclosures, and cover the responsive matrix with a Board probe (#101).

  • Coalesce identical snapshots across viewers in a bounded in-memory LRU cache with per-panel TTL overrides, stale-while-revalidate, action/reload invalidation and separate principal keys. Declared readOnly principal tools preserve the cache; other principal actions and all console actions invalidate it. Keep producer bodies and error snapshots unchanged, expose freshness only through cache/age/sample-time headers and add System cache/provider timing diagnostics, and add a private-output snapshot timing probe (#105).

  • Add the Space Flow view with per-project actors, directed 15-minute message counts, distinct relationship strokes and recent activity. Keep at most 200 public link events for 30 minutes in page memory, and show per-peer counts and the last 10 events in agent detail. Suspend the minute refresh while Flow is hidden (#101).

  • Make Team the default Space view while honoring a saved view choice in acon.space.section; the Space header now scrolls with the page. Add per-group attention and active-agent summaries, collapsed idle/away rows, and namespaced actor detail routes with responsive presentation and focus restoration; keep the roster in Room. Extend the browser probe for Team/detail navigation and persistence, including a reload with view removed (#101).

  • Add optional public Space groups, actor roles and state-change timestamps, with a group filter and Room as the default view. Raise caps to 96 actors and 128 links; save the Flat/Room/3D sub-toggle separately as acon.space.roomView. These API 1 fields are additive: N-1 compatibility is unaffected because older consoles ignore unknown optional fields.

  • Add synthetic H1/A1 lineage and comparison integration fixtures with explicit owner/project/hash routing, bounded pages and lazy evidence reads, plus isolated compact/wide keyboard and visual checks (#63).

  • Serve authenticated MCP principal tools at /principal/mcp with a private live registry, verified Access or separate bearer identity, per-principal rate and concurrency limits, read-only filtering, bounded bodies/results and metadata-only audit. Add acon principal list|off|on and document the 2025-11-25 transport and registry schema (#88).

  • Add opt-in principal tool declarations, dedicated principal snapshot/action ports and bounded public JSON results. Console dispatch builds person actors; principal dispatch never falls back to console ports. The conformance kit validates principal declarations while API 1 plugins remain compatible (#88, contract slice).

Fixed

  • Refresh Team, Flow, Board and Room avatars when installed pet ids change without scene fact changes; retain focus, disclosure state and unchanged-poll memo behavior (#101).

  • Restrict geometry-forced Space updates to Room: Team, Flow and Board use CSS layout and no longer rewrite unchanged root controls on ResizeObserver notifications. Wait for both fixture producers before measuring Team polls; remove its CSP-incompatible predicate waits (#101).

  • Honor changed: false panel replies without notifying listeners or rerendering, while updating the conditional cursor and retaining legacy full-snapshot deduplication (#63).

  • Safely release queued diagram visibility callbacks after frame handover or a visible theme redraw, without dereferencing a cleared observer (#90).

Install

npm i -g @staix/agent-console@0.2.0

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 248cba368b1bed3ca5d823a0e0d6e2c885ae3ef8697e7d72d2e1f845e7350808) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.8...v0.2.0

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 09 Nov 12:17
6e47da2

Fixed

  • Preserve the last successful CI verdict across release-gate API errors, distinguish API outages from missing runs, and give actionable release and CI failure messages (#83).
  • Defer Mermaid theme redraws while panels are hidden, document inline WebP images, reject unsupported visual overflow controls, and report isolated UI server readiness failures (#87).

Install

npm i -g @staix/agent-console@0.1.8

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 d2b652fed13938577952722e3450bf811bf02d5f922604b76b61203c6c8a1261) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.7...v0.1.8

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 08 Nov 01:49
f8c9ec4

Added

  • Serve plugin image/webp assets inline under the PNG/JPEG header and size policy, checking RIFF/WEBP magic in the conformance helper and route before serving (#81), including the static shell attachment viewer.
  • Export recursively frozen VISUAL_CASES and VisualCase from @staix/agent-console/visual-cases, with DOM-free shared visual conformance cases and renderer regression checks, including 512-character asset ids and Mermaid UTF-16 boundaries (#78).

Changed

  • CI and release hardening (#64): check.yml adds one if: always() aggregate job, ci-ok, that fails on any non-success gating result. release.yml starts with a gate job (scripts/release-gate.ts) that checks tag, version, main ancestry and the dated CHANGELOG entry and waits, with a deadline, for the tag commit's Check run to finish green before anything publishes. scripts/release-tag.ts bumps the version first and is the only way to create a release tag. The GitHub release step retries API calls on 5xx and 429. Both workflows pin actions/checkout v6.

Fixed

  • Hidden Mermaid frames report successful renders after image load and synchronous layout, without waiting for requestAnimationFrame; the 5 s fallback, 20 KB cap and sandbox stay unchanged (#84).

Install

npm i -g @staix/agent-console@0.1.7

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 dcd534daaa5645bdeb610045d3c3127f880b870dbc6bec6df3fde7778d8be0ff) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 07 Nov 21:47
4654704

Changed

  • Scope the zero-dependency import rule to src/ and document the browser vendoring policy (#72). The boundary check now validates every vendor manifest's exact devDependency pin, allowed license and adjacent NOTICE. The shipped shell/vendor/ files and total size are unchanged.
  • Review selections use an equal thin outline and row fill; thread marks include an icon and comment count, and review quotes have no side band (#71, PR 1). New additive control-boundary, motion and theme-aware scrim tokens improve contrast and consistency, with a documented radius rule, private layer scale and a regression design guard. Existing public tokens/classes and reduced motion remain supported.
  • Shell icons come from vendored Tabler outline icons (@tabler/icons 3.50.0, MIT) instead of hand-drawn paths (#71). scripts/vendor-icons.ts writes the path data of 14 icons to shell/vendor/icons/icons.js with a per-source SHA-256 manifest and NOTICE. Icon names in plugin manifests are unchanged, unknown names still fall back to box, and brand stays the acon mark. shell/vendor/ grows by 5,657 bytes (icons.js 1,522, manifest.json 2,903, NOTICE 1,232).
  • Touch, reading and resilience (#71, PR 2): on coarse pointers every button, rail link, search, tab, icon button and input is at least 44 px tall at any width, so tablets in landscape get touch targets. Detail, thread and review prose bodies read at --acon-text-base with line-height 1.65. Forced-colors mode keeps chips, badges and notices outlined. Selections use the accent tokens, the palette input has its own accessible name, and .btn has a 1 px press offset that reduced motion removes. scripts/ui-check.mjs adds a 1024 px touch scenario that measures the 44 px targets.

Install

npm i -g @staix/agent-console@0.1.6

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 9d706464dd90fae56dd2d769e590176bdaa309c721bb298c4c81b8e9ee25b69a) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 07 Nov 13:51
081e484

Added

  • Local Mac first, other Macs over the Cloudflare WARP mesh (#65). --origin accepts http:// for WARP device addresses in 100.64.0.0/10. A bearer node has a script-free /login form; the token typed there gets a 12-hour HttpOnly; SameSite=Strict session cookie that stands for the token, and a browser opening / unauthenticated is redirected to it (other callers keep the 401). Access and loopback nodes are unchanged. The README shows a loopback agent for this Mac plus a bearer agent on the WARP address.
  • README freshness (#67): scripts/readme-facts.ts renders the README's package, producer and command facts from package.json, src/contract.ts and src/cli.ts, and bun run check fails when a block differs (--write rewrites them). docs/verified.json records the commit each document was last reviewed against; scripts/check-docs.mjs reports stale documents on every check and refuses a release with --require-fresh. A successful release notifies STAIxBWLB/agent-hub-site when SITE_DISPATCH_TOKEN is set.

Fixed

  • Name agent-research alongside the other three plugin producers in acon help and the package description, matching the README producer table (#69).
  • The README lists agent-mem and agent-research among the tools that register plugins, and the 0.1.1 entry no longer contradicts the README on the hosted static-shell readback (#67).

Install

npm i -g @staix/agent-console@0.1.5

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 4c97f6e5ec99019529b00cf4dd0d7cbcf368b437c2c1316d35d1c7ffe2b8c609) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 05 Nov 08:42
e2b768e

Fixed

  • The static shell reports a request that hits its own deadline as slow ("the node is reachable but busy"), not as "refused (origin)". A slow node stays usable: it counts as online, with a "slow" note in the status chip, and its next request is still sent. Only a network failure with a reachable health probe is reported as "refused (origin)" (#59).
  • Inbox polling keeps at most one snapshot in flight per tool. A tick shares a slow tool's pending request. An explicit refresh waits for it and then polls once, and every caller waiting on the same request shares that poll. Slow providers no longer pile up requests every 5 s (#60).

Install

npm i -g @staix/agent-console@0.1.4

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 caf65ca2bb9dc81a5a8fb0e9e20433349c873fa3cf71baa3d0add15e823c0c27) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 04 Nov 13:10
8ba894d

Fixed

  • acon setup launchd --apply waits up to 10 s for launchctl bootout to finish before bootstrap, which failed with error 5 when it replaced a running agent (#56).
  • The plist keeps the PATH bun link (such as /opt/homebrew/bin/bun) when it is the running binary instead of the versioned Cellar file that brew upgrade removes (#56).
  • acon build --static writes compatibility_date 2026-10-01, which recent wranglers support (2026-11-04 was refused). It also adds .vercelignore, so Vercel no longer serves wrangler.jsonc, .assetsignore or _headers (#55).
  • The README notes that the first Vercel or Workers deploy of a new project can be a production deployment (#55).

Install

npm i -g @staix/agent-console@0.1.3

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 839a6aacb407373c81ba933b7fba20e24b4e730b0302768e2c3ed319c99f77e5) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.2...v0.1.3

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 04 Nov 11:52
27e4f89

Fixed

  • The contract no longer references the DOM lib (#52), so consumers compiled with lib: ["ESNext"] no longer get DOM globals such as document. Panel-side types resolve to the exact DOM types (HTMLElement, HTMLButtonElement, HTMLFormElement, Node) when the consumer has the DOM lib, and to the new structural ConsoleElement and ConsoleNode otherwise. bun run check typechecks the contract and conformance without the DOM lib. Types only, with no change for DOM-typed panels.

Install

npm i -g @staix/agent-console@0.1.2

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 f41b42e7de2aeb7d0803d49f22f16ad035549eebae0c1b45ee27afab7b957a6b) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 06:22
284e255

Added

  • H2 static shell (#46): acon build --static --nodes id=https://origin[,id=origin] [--out dist], fixed credential-free assets and Vercel/Workers static config, per-node bearer/Access auth, namespaced tools, node-owned actions and allowlisted credentialed CORS. Node-specific expiring GET-only grants serve authenticated modules/assets without exposing bearer tokens in URLs. Two-node ui-check covers ownership and distinct offline/origin-refused states. Hosted preview readback remains unverified.
  • H1 follow-ups (#45): acon serve --read-only / ACON_READ_ONLY=1 refuses every plugin action (403 read-only node, no plugin call, no confirm token, a replayed token is not honoured), reports readOnly: true in /tools, and the shell shows a Read-only chip with verb, answer and confirm buttons disabled. acon token new [--file] [--force] writes a 0600 base64url bearer token and prints only its path. acon setup launchd [--label] [--apply] prints (or installs) a LaunchAgent for acon serve with auth passed as env names and file paths. The Dockerfile carries OCI source and revision labels.
  • Release images (#45): behind IMAGE_PUBLISH_ENABLED, tagged releases push multi-arch (linux/amd64, linux/arm64) images to ghcr.io/staixbwlb/agent-console:<version> (and latest for stable versions) with OCI labels, read the manifest back and run --version on amd64.

Install

npm i -g @staix/agent-console@0.1.1

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 09e6e471e0e5570a77411d5a493fc53857c9c3d51e643a0bfb43256c5ab4d710) and its manifest (tag, commit, SHA-256) from this run are attached.

Full changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 04:48
427116a

Compatibility

Initial 0.1.x minor line: N-1 is not applicable because no previous minor has been published.

  • Plugin API (#27): a plugin that checks ctx.features sends no forms or result items to a console before this release, which would report them as malformed; plugins that ignore meta are unaffected.

  • Plugin API, routes and manifest files (#26): plugins registered for api 1 with a single <tool>.json and a plain "api": 1 load unchanged; /p/<tool>/... routes keep working beside the new /p/<tool>@<hash>/... refs. Consoles before this release refuse apiMin/apiMax keys and ignore <tool>@<version>.json files (they fail the tool-id check), so a tool that needs both should keep writing <tool>.json.

Fixed

  • Plugin discovery scans files that start with a #! line (CLI entry files) instead of marking the plugin "cannot be read"; a file that cannot be scanned is now named in the reason. The stripped line ends at any JavaScript line terminator (LF, CR, U+2028, U+2029), so an import after a CR-terminated #! is still checked.

Added

  • host.ui.button(label, onClick, {tone?, disabled?}) (api 1, additive): a button.btn with type="button" and the primary or danger modifier. host.ui.notice with tone err now uses role="alert" so errors are announced assertively; other tones keep role="status" (#43).

  • host.ui.visual (api 1, additive): Mermaid diagrams in a sandbox="allow-scripts" frame with its own CSP (no connect-src), lazy and reused per panel, falling back to the source text on error, over 20 KB or after 5 s; comparison cards; tables through ui.table; before/after with text or asset sides. Mermaid is vendored from @mermaid-js/tiny 12.2.0 (2.8 MB) with a hash manifest and scripts/vendor-mermaid.ts --check (#29).

  • host.ui.review (api 1, additive): text, prose and diff review with range selection by pointer or keyboard, anchors with lineRange, textQuote and (diffs) diffHunk/side, placement by hash then unique quote, an unplaced strip and chunked rendering up to 20,000 lines. Contract types ReviewSelector, ReviewAnchor, ReviewThread, ReviewDoc; conformance reviewProblems; shared cases in test/fixtures/review/ ship with the package (#28).

  • Inbox choice answers and results (#27): ctx.features (inbox.form, inbox.result, action.meta); verb form with 1-4 choice questions, an "Other" text, a review step and drafts kept across a refused answer; a result group with seen receipts after the body end was in view for 1 s in a focused window, and "Mark all read"; action(input, meta) with the verified identity; verbFormProblems and feature checks in conformance.

  • Staged plugin upgrades (#26): apiMin/apiMax ranges, versioned registrations plugins/<tool>@<version>.json (newest loadable wins), a re-scan at most every 5 s that serves a new registration to pages opened after it while open pages keep their load until restart, and scripts/install-release.ts for immutable console/releases/<version>-<commit>/ installs with current and previous links.

  • Plugin assets (api 1, additive): optional provider.asset({id}), served at a session-gated GET /p/<tool>/asset?id= with a type allowlist (SVG as attachment only), nosniff, a 32 MB default cap and same-origin framing; shell CSP gains frame-src 'self'; host.ui.img, host.ui.frame and host.ui.link accept only this plugin's asset ids or panels; conformance checks asset answers (#24).

  • host.ui.table, host.ui.bars and host.ui.spark (api 1, additive): a sortable text table with an exported TableColumn type, horizontal bars with target markers and a small line, built as shell SVG with token colors, text equivalents and bounded input (500 rows, 12 columns, 50 bars, 365 points); tableColumnProblems in conformance (#23).

  • acon serve (H1): resident console with --host, --port and --origin, authenticated by Cloudflare Access JWT (RS256 against the team JWKS) or a bearer token file. It refuses a non-loopback bind without auth, binds confirm tokens to the verified identity, answers 204 on /healthz and has no idle exit. A Dockerfile runs it as non-root with a /data volume and a health check (#20).

  • acon install <name|https URL|dir>, --list and --force: pet and asset packages downloaded separately, verified against the sha256 index at assets.entelecheia.ai (ACON_ASSETS_INDEX overrides), https only, streaming size caps, staged and installed with one rename (#17).

  • Space Flat/Room/3D views: CSS room camera, opt-in on-demand vendored Three.js, projected keyboard controls, bounded embedded GLB models and Room fallbacks (#14).

  • Optional Space area: public plugin scenes, keyed actors/cards and a text roster, fact-driven motion, separately installed image packs and a CSS fallback; pack/pet image validation is shared and asset reads require a session (#13).

  • Pet and Mini, moved from agent-hub: Codex v2 pet packages from local folders drawn as CSS sprites whose pose follows the inbox, a compact #/local/mini view with one-step answers, and a pop-out through Picture-in-Picture or a popup; GET /pets/<id>/sheet behind the session (#12).

  • Repeatable UI checks across phone, tablet and desktop widths, both themes and 200% text; rem type tokens, discoverable scrolling tabs and inline status chips on phones (#7).

  • host.ui panel kit with text-only elements, forms, keyboard-navigable rows and a shared detail template; documented public CSS classes and tokens (#5).

  • acon ui (H0): loopback console with a one-time link, session cookie, strict CSP and idle exit after 5 minutes.

  • Plugin discovery from $AGENTHUB_HOME/console/plugins/<tool>.json with module hash and permission checks; acon plugins lists the result.

  • Console plugin contract api 1 (@staix/agent-console/contract) with inbox, search, structured previews and undo, plus a conformance suite (@staix/agent-console/conformance).

  • Verb reasons (reason: "optional" | "required") asked inline and sent as reason; plugin palette commands (manifest.commands) that run through action(); a conformance check that inbox at stays stable; onSnapshot skips unchanged polls (#6).

  • Confirm tokens for destructive actions: single use, 60 s, bound to session, tool and input.

  • Shell: unified inbox with keyboard triage, peek sheet, command palette, confirm dialog, undo toast, System area, light and dark themes, tablet and phone layouts.

Install

npm i -g @staix/agent-console@0.1.0

Published to npm with provenance through GitHub OIDC trusted publishing. The validated tarball (SHA-256 71e90500a07317909c9a66f36801cb52d764ae2d85f9748e51c8f5242baa7022) and its manifest (tag, commit, SHA-256) from this run are attached.