From a7b8dd00df4df04174d01ad9f6e5a06eea485042 Mon Sep 17 00:00:00 2001 From: Jerry Chen Date: Mon, 27 Jul 2026 09:17:57 -0500 Subject: [PATCH 1/3] docs: fix Hub key-rotation instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rotation requires deleting the old api_keys row, not disabling it — Hub only mints a new key when the table is empty; a disabled-but-present row leaves uploads rejected with no new key printed on restart. Fixes Agent-Deployment-Co/argus-hub#309 --- docs/argus-hub.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/argus-hub.md b/docs/argus-hub.md index f5716ebc..4b3fc4b5 100644 --- a/docs/argus-hub.md +++ b/docs/argus-hub.md @@ -106,9 +106,10 @@ when Hub starts, it generates a key for the Default organization and prints it t Only use `HUB_INSECURE_COOKIE_HOSTS` for hostnames reachable through a private network. Never list a hostname that is reachable from the public internet. -To rotate a key, disable or remove the old key in the Hub database, then restart Hub. If no enabled -key remains, Hub generates a new one on startup. A disabled key is rejected before Hub reads the -upload body. +To rotate a key, delete the old key's row from the Hub database, then restart Hub. Hub only +generates a new key when the `api_keys` table is empty — disabling a key with `is_enabled = 0` +does not trigger this, so rotation requires removing the row outright, not just disabling it. A +disabled key is rejected before Hub reads the upload body. ## Run Hub continuously From d772ec34834c7b98838bd0b841252f5f34c94a88 Mon Sep 17 00:00:00 2001 From: Jerry Chen Date: Mon, 27 Jul 2026 09:18:14 -0500 Subject: [PATCH 2/3] docs: fix stale dashboard view list and query_users filter Sessions/Projects/Health views don't exist; Tasks and Export do and were undocumented. Renamed Users -> Team to match the shipped UI, and documented the group filter on all five MCP tools. Fixes Agent-Deployment-Co/argus-hub#310 --- docs/argus-hub.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/argus-hub.md b/docs/argus-hub.md index 4b3fc4b5..290d58ca 100644 --- a/docs/argus-hub.md +++ b/docs/argus-hub.md @@ -206,15 +206,14 @@ dimension added: | View | What you can see | |---|---| | Activity | Usage and cost for the whole organization or one person | -| Sessions | Sessions filtered to the whole organization or one person | -| Projects | Project activity across the organization or for one person | +| Tasks | Extracted tasks — outcomes, frustration and interrupted rates, top failure signals | | Tools | Tool and MCP server usage across the organization or for one person | -| Health | Health signals for the selected scope | -| Users | Per-user sessions, tokens, estimated cost and last-sync time | +| Team | Per-user sessions, tokens, estimated cost and last-sync time | +| Export | Download the full dataset as a Snowflake-ready zip | -The user picker appears after at least one client syncs. Leave it on **All users** for an -organization-wide view, or choose one person to scope the views. The Users table can be sorted by -any column. +The user/group picker appears after at least one client syncs. Leave it on **All** for an +organization-wide view, or choose one person or group to scope Activity, Tasks and Tools. The +Team table can be sorted by any column, and clicking a row opens that person's own activity view. ## Query Hub from an agent @@ -230,9 +229,11 @@ HTTPS without a subprocess or a session. | `query_tool_usage` | Which tools and MCP servers people use | | `query_users` | User IDs, display names, emails, last-sync time, sessions, tokens and cost | -The first four query tools accept `since`, `until`, `project`, `source` and `user` filters. The -`source` filter accepts `claude`, `codex`, `gemini` or `cowork`. `query_users` takes no arguments -and can help you find a `userId` before scoping another query. +The first four query tools accept `since`, `until`, `project`, `source`, `user` and `group` +filters. The `source` filter accepts `claude`, `codex`, `gemini` or `cowork`. The `group` filter +takes a groupId, or `__none__` for users with no group assigned. `query_users` accepts an +optional `group` filter (matching a groupId or groupName) and can help you find a `userId` before +scoping another query. Authenticate with the Hub admin password: From 0b3db4f2983520a7bda1419afe74362c8e8912fb Mon Sep 17 00:00:00 2001 From: Jerry Chen Date: Mon, 27 Jul 2026 10:02:50 -0500 Subject: [PATCH 3/3] docs: fix em-dashes and stale views claim in Hub dashboard docs Removes two em-dashes added in recent edits (violates the no-em-dash voice rule) and corrects the claim that the Hub dashboard uses the same views as argus serve, which no longer matches either dashboard's view list. Co-Authored-By: Claude Sonnet 5 --- docs/argus-hub.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/argus-hub.md b/docs/argus-hub.md index 290d58ca..73c2aef0 100644 --- a/docs/argus-hub.md +++ b/docs/argus-hub.md @@ -107,8 +107,8 @@ Only use `HUB_INSECURE_COOKIE_HOSTS` for hostnames reachable through a private n a hostname that is reachable from the public internet. To rotate a key, delete the old key's row from the Hub database, then restart Hub. Hub only -generates a new key when the `api_keys` table is empty — disabling a key with `is_enabled = 0` -does not trigger this, so rotation requires removing the row outright, not just disabling it. A +generates a new key when the `api_keys` table is empty, so disabling a key with `is_enabled = 0` +does not trigger this: rotation requires removing the row outright, not just disabling it. A disabled key is rejected before Hub reads the upload body. ## Run Hub continuously @@ -194,8 +194,7 @@ for the complete plist, including log paths and restart behavior. ## Use the dashboard -Open the Hub URL in a browser. The dashboard uses the same views as `argus serve`, with a user -dimension added: +Open the Hub URL in a browser. The dashboard groups organization-wide usage into these views:
@@ -206,7 +205,7 @@ dimension added: | View | What you can see | |---|---| | Activity | Usage and cost for the whole organization or one person | -| Tasks | Extracted tasks — outcomes, frustration and interrupted rates, top failure signals | +| Tasks | Extracted tasks, including outcomes, frustration and interrupted rates, and top failure signals | | Tools | Tool and MCP server usage across the organization or for one person | | Team | Per-user sessions, tokens, estimated cost and last-sync time | | Export | Download the full dataset as a Snowflake-ready zip |