fix(chat): name the budget pages in the board-only budget catalog entries

An agent that reads a board-only budget route in the catalog now also
reads where the person acts, so it can reply with the link without
calling the route first to learn it from the 403.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DottaandClaude Opus 5.5 committed 2026-11-09 02:17:09 -06:00
1 parent fcd21b0968
commit efef2d0747
2 files changed
+4

No files matched your search

@@ -91,6 +91,8 @@ describe("agent refusals that are final", () => {
["/api/approvals/{id}/approve", "post"],
["/api/approvals/{id}/reject", "post"],
] as const) expect(paths[path][method]["x-paperclip-authorization"], `${method} ${path}`).toEqual({ actor: "board" });
expect(paths["/api/companies/{companyId}/budget-incidents/{incidentId}/resolve"].post.description).toContain("[Open budgets](/<prefix>/activity/budgets)");
expect(paths["/api/agents/{agentId}/budgets"].patch.description).toContain("[Open budget](/<prefix>/agents/<agentId>/budgets)");
});
it("points the API catalog at the checked MCP setup route and the complete model lists", () => {
+2
View File
@@ -6055,6 +6055,7 @@ registry.registerPath({
path: "/api/companies/{companyId}/budget-incidents/{incidentId}/resolve",
tags: ["costs"],
summary: "Resolve a budget incident",
description: "Board only: agent credentials get 403, so an agent cannot raise a limit or resume a budget-stopped agent. A board user chooses the new amount and resumes on the Budgets page: link [Open budgets](/<prefix>/activity/budgets) with this conversation's company prefix as <prefix>, and reply.",
request: {
params: z.object({ companyId: z.string(), incidentId: z.string() }),
body: jsonBody(resolveBudgetIncidentSchema),
@@ -6093,6 +6094,7 @@ registry.registerPath({
path: "/api/agents/{agentId}/budgets",
tags: ["costs"],
summary: "Update agent budget",
description: "Board only: agent credentials get 403. A board user changes the limit on the agent's budget tab: link [Open budget](/<prefix>/agents/<agentId>/budgets) with this conversation's company prefix as <prefix>, and reply.",
request: {
params: z.object({ agentId: z.string() }),
body: jsonBody(updateBudgetSchema),