Skip to content

v0.10.1: the dashboard inside the package

Choose a tag to compare

@blitzcrieg1 blitzcrieg1 released this 23 Oct 19:17
· 39 commits to master since this release
cad038a
pip install --upgrade agentmetry==0.10.1

The dashboard is inside the package. On 0.10.0 a pip install had none:
agentmetry dashboard signed the browser in and showed a JSON 404, and
agentmetry stats and agentmetry detections reported an empty trail because
they never sent the API token. Both are fixed, and CI now installs a built
wheel and checks the dashboard loads, so the gap cannot come back unnoticed.
Upgrade with pip install --upgrade agentmetry and restart the recorder.
Also new: agentmetry cloud cursor-cache, which reads Cursor cloud-agent tool
calls from the desktop app's local cache, and a fix for cloud claude, which
crashed before its first request. The ruleset fingerprint is unchanged.

Added

  • agentmetry cloud cursor-cache: Cursor cloud-agent tool calls, read from
    the Cursor desktop app's own cache.
    A cloud agent runs on Cursor's VM,
    where no hook on this machine fires. When the desktop app streams one, it
    caches the conversation in its local state database, including every tool
    call: terminal commands, file reads and edits, searches, web fetches and MCP
    calls, with paths under the VM's /workspace. The command reads that
    database read-only, maps each finished call to the name the local Cursor
    hooks record (shell.run, cursor.Read, cursor.Write,
    cursor.MCP:<tool>), and runs it through the hook client's own mapper, so
    arguments are hashed and traits and ATT&CK labels computed in-process, as
    for a local event. Results and edit bodies are never forwarded. Events record
    as cursor_cloud under cursor-cloud-<agent id>, the correlation id the
    Cloud Bridge API path uses. A second run imports nothing twice, a call whose
    post failed is retried, and --dry-run counts without posting. No vendor
    key, no repository access and no request to Cursor. Run against a real
    database on 2026-10-21: 3 cloud-agent conversations, 1,251 finished tool
    calls, read in about six seconds from a 7.1 GB file. What it cannot see:
    agents the desktop app never streamed; it records after the fact and blocks
    nothing; the cache format is undocumented, so unrecognised rows are counted
    and skipped; and the cache is a file the user can edit, so it is a claim to
    check against Cursor's own run stream, not proof.

Fixed

  • The package had no dashboard. The recorder looked for the dashboard's
    static export only at apps/dashboard/out in a git checkout, and the wheel
    shipped just the Python package. So on a pip install, agentmetry dashboard signed the browser in and landed it on {"detail":"Not Found"}.
    It worked on the maintainer's machine only because that recorder runs from a
    checkout. The release build now bundles the export into the package as
    agentmetry/dashboard_static, the recorder serves it when no checkout build
    exists, and with neither it serves a page saying so instead of a JSON 404.
    CI builds a wheel with the export on every change, installs it in a clean
    environment, serves it from a directory with no checkout above it, and fails
    if / is not the dashboard; the release build checks the same, and that the
    wheel carries index.html. Found by installing 0.10.0 from PyPI on a clean
    Python 3.11 environment and walking the README as a new user would.
  • agentmetry stats and agentmetry detections printed nothing over a full
    trail.
    Neither sent the per-install token that every route but health has
    required since 0.9.3. The recorder answered 401, and the CLI read the error
    body as if it were the answer: stats printed "Events: 0" and detections
    printed "No detections" for a session holding a critical detection. Both now
    send the token, honour AGENTMETRY_URL as disposition and the hooks do,
    and report a refusal as an error with what to do about it. Tests pin the
    token and the refusal.
  • doctor told a pip install to run scripts it does not have. For an agent
    installed without its hook it said to run scripts/install_<agent>_hooks.ps1,
    which exist only in a checkout. It now says agentmetry hooks install, and
    names the Antigravity script only when Antigravity is the agent missing,
    since that is the one hooks install does not write.
  • One scan finding explained itself with its own code. An MCP server
    launched with -y printed "auto_confirm" as its explanation. It now says the
    package manager installs and runs the package without asking first.
  • agentmetry cloud claude crashed before its first request. The command
    read args.remote to choose between local and remote sessions, and the
    parser never defined --remote, so every run with
    ANTHROPIC_COMPLIANCE_KEY set raised AttributeError. The flag now exists:
    local sessions by default, --remote for the API's remote ones. The tests
    covered the mappers and never ran the command; two new tests drive it end to
    end with the vendor API and the ingest stubbed, and both fail on the old
    parser.
  • cloud claude does not see Claude Code cloud sessions, and the 0.9.7 entry
    implied it did.
    Anthropic's Compliance API covers Claude Code in the CLI and
    desktop app, and Cowork, and its announcement of 2026-08-11 says the beta
    "doesn't include Claude Code on the web". So cloud claude records sessions
    that ran on a developer's machine (which the hooks already see live) and
    Cowork, not agents running on Anthropic's infrastructure. The 0.9.7 entry is
    corrected in place.
  • The 0.9.7 entry for Cloud Bridge claimed Cursor's live tool-call stream.
    map_cursor_stream_tool_call shipped, but no code fetches the stream, so
    agentmetry cloud cursor records agent lifecycle and runs (status, duration,
    pushed branches, PR) and no tool calls. The 0.9.7 entry is corrected in
    place. Neither path has yet been run against a live vendor key.

The detection ruleset is unchanged (fingerprint 15846a0915769d4a), as are the hash-chain record format and the event schema version (1.2.0).