Skip to content

v2026.1002.2

Choose a tag to compare

@github-actions github-actions released this 03 Oct 01:47
· 120 commits to main since this release
6c8f0ea

v2026.1002.2

Released: 2026-10-02.

First-session dead ends are closed: /setup now continues to your Chief of Staff (CoS), and a revised deliverable can be accepted again. The CoS plan and task cards are clearer, agents read title-first, every phone screen meets the tap-size floors, and a hosted Hermes setup check works. One migration (0144). Everything merged since v2026.1002.1 (e134d1009).

Fixed

  • /setup continues to your Chief of Staff (#988). "Continue to your Chief of Staff" used to land on a "Company not found" page, because /setup was read as a company code. Every top-level page is now classified, and a test checks this against the app's routes. Links to /settings and /plugins from a company page had the same problem and are fixed too.
  • A revised deliverable can be accepted again (#988). After you chose Request changes, the agent revised the work and moved the issue back to In review, but the deliverable stayed at "changes requested". The issue had no Accept button, and Decisions pointed at a review that could not be opened. Moving an issue back to In review now puts its sent-back deliverables up for review again. Only sent-back ones are touched, and only a person can still accept. If you move an issue to Done yourself, a deliverable that was waiting on changes is accepted with it, and reopening the issue restores its earlier review state.
  • The hosted Hermes setup check works (#994). On a hosted box, the setup check on a saved Hermes agent failed because the check was not told which agent it was checking. It now is. Checks run before an agent exists (the create form, hire preflight) behave as before.
  • No more "Needs a steward" where stewardship is off (#994). The Team list shows a neutral "No one accountable" badge for an agent with nobody paired, and the Members and access page no longer asks for channel bindings it is not allowed to show. The agent page keeps its Kind badge and explanation.

Changed

  • The plan card knows it is done (#989). After you confirm a plan, the card reads "Team hired" with both buttons off, and other people in the chat see that live. Clicking an old card is answered as the same state. Only the newest plan card has buttons, and a plan that is already hired can no longer be revised. A cap error (for example the Free limit) shows on the card instead of vanishing.
  • One task card, and honest start wording (#989). When the CoS suggests a task, the "Create this task?" card turns into the "Task created" card in place, instead of posting a second card. Old chats stop showing the duplicate. If your company puts new tasks in Backlog, the card offers Create and Create and start. Start moves it to To do and wakes the agent. With a To do default there is one Create task button. The CoS no longer promises to start the work.
  • Plan wording (#989). The CoS writes each agent's title as it means it, one line of up to 80 characters, and the card shows it as written ("Month-End" stays "Month-End"). No agent is named after a person in your company. Phones get the shorter "Message your Chief of Staff..." placeholder.
  • Safe links in chat (#989). The CoS's replies can use lists, bold and links. Raw HTML is never shown. A link shows its real site name after its text, and link text that names a different site is shown as plain text.
  • Token figures that agree (#990). The agent's ceiling line reads "counted toward it today (counts cached reads)". On your own model key, "Spend this month" says "Billed by your model provider" instead of a dollar figure we cannot see. A deliverable from a run in the last 10 minutes reads "counting..." and fills in on its own. The run page's footer matches the Input and Output tiles.
  • Readable transcripts (#990). One curl to AgentDash reads as what it did ("Updated issue WHI-1"). A script with several calls reads "Ran a script (3 AgentDash calls)". File writes show the file name, not its full path. Tool results read "Got issue WHI-1" or "Response: 3 items". Long or credential-shaped commands read "Ran" plus the program, and the full redacted command is one click away.
  • Credentials are hidden when you read a run (#990). Passwords, API keys, bearer tokens, cookies and secret-named settings are masked everywhere a person sees run output, including Raw views and the issue chat. Raw views say "Credentials in this log are hidden." This is display only: the stored run log is unchanged, and masking it on the server is a separate follow-up.
  • Agents write plainer summaries (#990). New and existing agents are told to say "ready for your review" and "the document", not internal field names, statuses or IDs.
  • Agents read title first (#991). Team rows, phone cards, the org chart, the agent header and the reports-to picker show the title, then a role only when it adds something. A bare "general" or "pm" is dropped, and Finance, Marketing and Technology read in full beside a title. Bookkeeping titles such as "Month-End Close" map to Finance, not Project Manager. This applies to new hires only; existing agents keep their stored role. The Team status column no longer runs over "13m ago".
  • Plain copy (#991). Workforce and the setup runtime step say what they mean ("Your AI assistant", "Your workspace uses Hermes"). Activity shows "In review", not in_review. Table headers no longer break mid-word. The wizard's name box starts empty, with an "e.g. Research Assistant" hint, once the company has agents. In Settings, rarely used items (OpenClaw invite, workspace packages, agent limits) sit under one collapsed Advanced, and Archive is a collapsed Danger zone at the end.
  • A quieter console (#991). Signed-out pages no longer fire requests that fail with 403 or 404, an agent's Latest Run card no longer nests a link inside a link, and dialogs have names for screen readers. A new test checks the signed-out page for failed calls.
  • Phone floors everywhere (#993). Every Settings page, the run page, Workforce, New agent (with Advanced open), the issue page with plan, chat and Result card, and the New issue dialog now meet the floors: text of at least 12px, taps of at least 44px, every control named, no sideways scroll. A desktop browser narrowed below 640px gets the same 44px minimum on inputs, selects, textareas and buttons. Checkboxes, switches and radios keep their shape. A sweep of 34 screens at 390px, 360px and touch went from 1,461 small tap targets, 187 unnamed controls and 7 screens that scroll sideways to none. Desktop layouts are unchanged.
  • Billing copy (#994). "Billing isn't configured on this instance." now reads "Billing isn't turned on for this workspace." on the Billing page and the upgrade button.

Upgrade notes

  • Migration 0144 (agent accountability backfill) repairs agents hired by onboarding before v2026.1002.1, which were left "stewarded" with nobody paired, role "general" and a title like deployment_lead. It runs on its own at boot, and a second run changes nothing. It touches only companies that are not archived and have exactly one active human who is an owner or admin, and only agents that are not terminated, are stewarded, and have no steward or accountable person. In those companies:
    • the Chief of Staff gets that person as steward, if they steward nothing yet;
    • an agent with role "general" and a slug title gets a readable title ("Deployment Lead") and a matching role, never CEO, Chief of Staff, CTO, CMO or CFO;
    • every other such agent becomes autonomous with that person accountable;
    • an agent someone holds a credential for (a live API key not named "default", or a redeemed connect code) stays stewarded.
  • Left alone, and named in the boot log (lines starting agentdash:): companies with more than one person, single-person companies whose only person is not an owner or admin, and agents kept stewarded for a held credential. Assign those from Members and access or the agent page.
  • Rolling back 0144. Every change writes an activity row with reason upgrade_backfill, whose actor names the migration (a doctor run names the doctor command instead). The header of migration 0144's SQL file has three reversing queries. Run them in one transaction, in order, with the right actor filled in: set those agents back to stewarded with no accountable person, restore title and role from the logged fromTitle and fromRole, and end the stewardships it assigned. The activity rows stay as the record.
  • Boxes with a founder demoted to member need agentdash doctor repair-founder-owner --apply (with --company <id> and --user <id> as before). It restores the owner and now also runs the same backfill for that company, in the same transaction, and reports what it changed. It skips the backfill, and says so, if the company has other active members or the database predates 0144.
  • Reserved company prefixes (#988). New companies can no longer take a prefix that a page already uses, such as MCP, ORG, U, API, LLMS or DOWNLOADS. "MCP Advisory" now gets MCPA and "API Partners" gets APIA. Existing companies that already collide stay as they are and stay shadowed by the page. Renaming them needs a separate decision, because their links already exist.
  • Agents cannot overwrite server-owned work-product metadata (#988). An agent or assistant grant that writes a work product can no longer set or erase the acceptance, changesRequestedAt and resubmittedAt keys. Client values for them are dropped and the stored ones kept.
  • Reopening restores the prior review status (#988). Reopening an issue puts each deliverable back to the status it had before it was accepted, so one accepted from "changes requested" returns to "changes requested". Anything unexpected becomes "needs board review".
  • Work that went through Request changes (#988). Older work that was sent back for changes no longer counts as accepted just because its issue is done.
  • New signed-out e2e step in CI (#991). pr.yml now runs pnpm test:e2e:signed-out, which boots one more throwaway instance (about 30 seconds) and fails on any failed call from the signed-out page.
  • GET /api/adapters/:type/config-schema now answers { "fields": [] } for a registered adapter with no schema. Unregistered types still answer 404.

Container image

Built from this release's tagged commit for linux/amd64 and linux/arm64.

Tag ghcr.io/thetangstr/agentdash:v2026.1002.2 (also ghcr.io/thetangstr/agentdash:2026.1002.2)
Digest sha256:057ae0fb6ce43b57b94fc541e80c3630db4e72718a544c80395a35793cd1c9ee

Deploy by digest, which cannot move:

docker pull ghcr.io/thetangstr/agentdash@sha256:057ae0fb6ce43b57b94fc541e80c3630db4e72718a544c80395a35793cd1c9ee