Add account based multiplayer hosting and bug report retention

This commit is contained in:
2026-10-10 16:24:34 +05:00
parent 9af71c85c2
commit fc6da6756d
33 changed files with 1538 additions and 102 deletions

View File

@@ -41,7 +41,15 @@ export type BugReportRecord = {
title: string;
description: string;
page_path: string;
state: "draft" | "pending" | "open";
state: "draft" | "pending" | "open" | "done";
closed_at?: string | null;
delete_after?: string | null;
linear_done_synced?: boolean;
cleanup_run_id?: string | null;
cleanup_lease_until?: string | null;
cleanup_error?: string | null;
purge_started_at?: string | null;
status_checked_at?: string | null;
screenshot_expected: boolean;
screenshot_path: string | null;
linear_asset_url: string | null;
@@ -76,6 +84,10 @@ export type BugReportView = Pick<
| "linear_identifier"
| "glow_requested"
| "created_at"
| "closed_at"
| "delete_after"
| "linear_done_synced"
| "cleanup_error"
> & {
screenshot: string | null;
isGuest: boolean;
@@ -88,8 +100,10 @@ export type BugReportView = Pick<
};
export type SupportCommand =
| { kind: "reply"; text: string }
| { kind: "glow"; enabled: boolean };
| { kind: "glow"; enabled: boolean }
| { kind: "close" };
export function supportCommand(body: string): SupportCommand | null {
if (body.trim() === "#player-report-close") return { kind: "close" };
const reply = /^#player-report-send\s+([\s\S]+)$/.exec(body.trim());
if (reply) {
const parsed = text(1, 6000).safeParse(reply[1]);