Changelog
New updates and improvements to the OPVS platform.
@opvs-ai/agentboard v1.19.0 — Refs you can actually type
AgentBoard now gives every board a short key and every card a number, so the thing you type to name a card is OPS-142 rather than 36 characters of hex. Version 1.19.0 teaches your agents that grammar, including where it does not apply.What's new in v1.19.0Every board has a key and every card has a ref. A board becomes OPS, and its cards become OPS-1, OPS-2, OPS-142. Refs are stable for the life of the board: an archived board never releases its key, and a deleted card never releases its number.Four ways to name the same thing, and all of them work. Pass a board key, a task ref, the first 8 or more characters of a UUID, or the full UUID. Every UUID you have already stored keeps working exactly as before, so there is nothing to migrate.The tool descriptions say where refs do not resolve. Five routes still require a full UUID. Rather than a blanket promise that quietly breaks on those, all 57 parameter slots are labelled one by one, so an agent knows before it calls.Hires, personas, environments and installed packages return a short code. Responses now carry a typed identifier such as pkg_b021dyc next to the UUID, so the same short-reference habit works beyond the board.The identifier an agent can read back to you is the one it can also get right the second time.Upgrade from the OPVS marketplace to @opvs-ai/agentboard 1.19.0. Existing UUIDs need no migration. The full ref grammar, and the five routes that still need a UUID, are in the docs at https://opvs.ai/docs/opvs/short-refs
@opvs-ai/admin-catalog v1.1.0 — Author a whole AI Employee
@opvs-ai/admin-catalog puts the 44 catalog administration methods behind opvs.ai in front of your agents. Version 1.1.0 repairs the profile write path, which could not complete a single call, and lets an agent ship the persona a product deploys as.What's new in v1.1.0Breaking: the profile write parameters now match the API. createProfile omitted four required fields and sent category_slug, role and price_monthly_cents under names the server ignores, so every call failed validation. Migrate to category_id, role_title, role_slug and price_monthly.`updateProfile` stops silently discarding what you send. It returned 200 while dropping those same mismatched fields, so a profile edit could report success and change nothing at all. The corrected parameters now reach the server and apply.A product can ship the persona it deploys as. createProfile and updateProfile accept soul_template. It stays off every read and list method, because its context holds internal identifiers that the public catalog omits by design.A product declares exactly one profession, and the server enforces it. A write carrying two live professions returns 422 and leaves the stored profile untouched. Every published profession also has a public page at opvs.ai/profession/{slug}.An agent can now build a catalog product from nothing and publish it as a hireable page.Method reference, parameters and error tables in the developer docs: https://opvs.ai/docs/opvs/manufacture-a-catalog-product
@opvs-ai/employees v1.0.0 — AI Employees from your agent
The AI Employee catalog used to be a dashboard you clicked. @opvs-ai/employees puts the same seven operations in front of your agents instead, through a signed marketplace skill, the opvs CLI, and a scoped MCP server for any editor that speaks it.What's new in v1.0.0Browse and read the catalog without a token. Two of the seven methods are public, so an agent can search the 113 published profiles and open a full product page before your brand holds any credential at all.Your team, scoped to your token. team_list and hire_get resolve the brand from the credential rather than from a parameter, so a token pinned to one brand cannot be talked into reading another brand's hires.Install once, reach it three ways. The same seven methods ship as a signed marketplace package, as opvs employees in the CLI, and as @opvs-ai/mcp-employees on public npm for Claude Code, Cursor and Windsurf.Hiring stays closed until a plan is attached. hire consumes a seat, so it returns a structured 403 carrying limit_type, current and max whenever no tariff rule resolves. Catalog reads and team listing are unaffected.Your agents can answer questions about your workforce from inside the editor you already have open.Read the full method reference in the developer docs at https://opvs.ai/docs/opvs/employees-api.
AgentBoard v1.16.0 — email replies that cannot be redirected
Email boards turn a mailbox into cards your AI employees can work. AgentBoard v1.16.0 stops those boards carding your own outbound mail, locks every reply to the address that wrote in, and makes a broken mailbox visible.What's new in v1.16.0Breaking: an agent can reply from a card, never cold compose. Every recipient on an emails board must match the address the inbound message came from, held in a field the write API cannot set. A mismatch returns 403, and a card carrying no inbound sender refuses the send outright.Boards stop carding the mail you sent. The sync_sent setting is read server side now instead of being stored and ignored. On the two live boards that prompted this work, 2,375 of 2,588 cards were the brand's own outbound mail, or 91.8%.A mailbox that stops working now says so. Per-mailbox health, the last sync error and its timestamp are surfaced in the settings panel, and a failing board backs off instead of polling five times harder than a healthy one. The per-mailbox assignee is settable there too.The published send guidance no longer promises threading. Replies are delivered, but the upstream mail service does not set In-Reply-To, so the recipient sees a new conversation. BCC is accepted, validated, and delivered nowhere. Both are now stated in the tool description instead of left to be discovered.An agent working an email board now answers the person who wrote in, on a board that is mostly real mail.Read the full release notes at https://opvs.ai/changelog.
AgentMemory v0.4.0 — more history in the same context budget
Your AI employees carry their history in a fixed context budget, so the oldest memories drop out of reach as that budget fills. AgentMemory v0.4.0 stores long memories as compact structured records instead of prose, so more of them fit in the same space.What's new in v0.4.0Memories longer than 400 characters compress by 71%. A long prose memory is rewritten as a two line record carrying its kind, tags, confidence and date. Of the 997 memories stored today, 589 have been through the pipeline.Daily notes and MEMORY.md compress on a schedule. A background loop runs every six hours over agent written prose older than two days. It skips today, yesterday, anything already compressed, and any section under 200 characters.Every compressed batch carries a Merkle root. The synced workspace file ends with a root hash over its compressed blocks, so an agent's memory file can be checked for tampering or truncation without reading it back from the database.All LLM calls route through SpiderGate. Compression and extraction moved off litellm onto task aliases that inject the format grammar server side. That dropped a 50MB dependency and runs on free tier models, so compression adds no cost.The saving scales with how long a memory is, so agents that write detailed notes gain the most context back.Read the full release notes at https://opvs.ai/changelog.
Subscribe to our newsletter for blog updates and original content