mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 19:00:38 +09:00
Fix Cloud tenant issue identifier routes (#5196)
## Summary - Allow Cloud tenant issue identifiers with alphanumeric prefixes, such as `PC1897-1`, to normalize as issue references. - Resolve those identifiers through issue detail/update routes, active run/live run polling, activity, costs, and `issueService.getById`. - Keep UI issue-link parsing aligned so tenant links normalize back to `/issues/<IDENTIFIER>`. ## Root Cause Cloud tenant issue prefixes include digits from the stack-id hash. The app-side route normalization still accepted only all-letter prefixes, so `/api/issues/PC1897-1` skipped identifier lookup and fell through as a non-UUID id. ## Verification - `pnpm exec vitest run packages/shared/src/issue-references.test.ts ui/src/lib/issue-reference.test.ts server/src/__tests__/issue-identifier-routes.test.ts server/src/__tests__/activity-routes.test.ts server/src/__tests__/costs-service.test.ts server/src/__tests__/agent-live-run-routes.test.ts server/src/__tests__/issues-service.test.ts` - `pnpm --filter @paperclipai/shared typecheck && pnpm --filter @paperclipai/server typecheck` - `git diff --check` Co-authored-by: Paperclip <noreply@paperclip.ing>
This commit is contained in:
parent
edbb670c3b
commit
d6bee62f02
14 changed files with 166 additions and 41 deletions
|
|
@ -460,14 +460,14 @@ describeEmbeddedPostgres("issueService.list participantAgentId", () => {
|
|||
expect(result.map((issue) => issue.id)).toEqual([grandchildId]);
|
||||
});
|
||||
|
||||
it("accepts issue identifiers through getById", async () => {
|
||||
it("accepts issue identifiers with alphanumeric prefixes through getById", async () => {
|
||||
const companyId = randomUUID();
|
||||
const issueId = randomUUID();
|
||||
|
||||
await db.insert(companies).values({
|
||||
id: companyId,
|
||||
name: "Paperclip",
|
||||
issuePrefix: "PAP",
|
||||
issuePrefix: "PC1A2",
|
||||
requireBoardApprovalForNewAgents: false,
|
||||
});
|
||||
|
||||
|
|
@ -475,19 +475,19 @@ describeEmbeddedPostgres("issueService.list participantAgentId", () => {
|
|||
id: issueId,
|
||||
companyId,
|
||||
issueNumber: 1064,
|
||||
identifier: "PAP-1064",
|
||||
identifier: "PC1A2-1064",
|
||||
title: "Feedback votes error",
|
||||
status: "todo",
|
||||
priority: "medium",
|
||||
createdByUserId: "user-1",
|
||||
});
|
||||
|
||||
const issue = await svc.getById("PAP-1064");
|
||||
const issue = await svc.getById("pc1a2-1064");
|
||||
|
||||
expect(issue).toEqual(
|
||||
expect.objectContaining({
|
||||
id: issueId,
|
||||
identifier: "PAP-1064",
|
||||
identifier: "PC1A2-1064",
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue