chore: auto-commit (21 archivos)

- app.md
- backend/dist/assets/index-D_Kep7Fb.js
- backend/dist/index.html
- backend/handlers.go
- backend/main.go
- frontend/src/App.tsx
- frontend/src/api.ts
- frontend/src/components/CardChatPanel.tsx
- frontend/src/components/LoginPage.tsx
- frontend/src/types.ts
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 18:17:04 +02:00
parent 1923fd31a4
commit 2524340759
20 changed files with 2165 additions and 236 deletions
+26
View File
@@ -6,6 +6,7 @@ import type {
Column,
Metrics,
MetricsFilter,
Notification,
Sticker,
User,
} from "./types";
@@ -27,6 +28,10 @@ export function getFlags(): Promise<Record<string, boolean>> {
return fetchJSON("/flags");
}
export function getVersion(): Promise<{ version: string }> {
return fetchJSON("/version");
}
export function createColumn(name: string): Promise<Column> {
return fetchJSON("/columns", { method: "POST", body: JSON.stringify({ name }) });
}
@@ -291,6 +296,27 @@ export function chatWSURL(): string {
return `${proto}//${window.location.host}/api/chat/ws`;
}
export function cardChatWSURL(cardId: string): string {
const proto = window.location.protocol === "https:" ? "wss:" : "ws:";
return `${proto}//${window.location.host}/api/cards/${cardId}/chat/ws`;
}
export function listNotifications(unreadOnly = false): Promise<Notification[]> {
return fetchJSON(`/notifications${unreadOnly ? "?unread=1" : ""}`);
}
export function unreadNotificationCount(): Promise<{ count: number }> {
return fetchJSON("/notifications/unread-count");
}
export function markNotificationRead(id: string): Promise<void> {
return fetchJSON(`/notifications/${id}/read`, { method: "POST" });
}
export function markAllNotificationsRead(): Promise<{ count: number }> {
return fetchJSON("/notifications/read-all", { method: "POST" });
}
// streamChat opens a WebSocket, sends the message history, and streams events
// to onEvent. Returns a Promise that resolves when the server closes the
// connection (after a "done" event) and rejects on transport errors.