Add multi-session auth and changelog tracking

这个提交包含在:
cryptocommuniums-afk
2026-03-15 17:30:19 +08:00
父节点 c4ec397ed3
当前提交 a9ea94fb78
修改 27 个文件,包含 1280 行新增89 行删除

查看文件

@@ -7,6 +7,7 @@ import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, D
import { Progress } from "@/components/ui/progress";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Slider } from "@/components/ui/slider";
import { formatDateTimeShanghai } from "@/lib/time";
import { toast } from "sonner";
import { applyTrackZoom, type CameraQualityPreset, getCameraVideoConstraints, getLiveAnalysisBitrate, readTrackZoomState } from "@/lib/camera";
import {
@@ -910,7 +911,10 @@ export default function LiveCamera() {
const format = recorderMimeTypeRef.current.includes("mp4") ? "mp4" : "webm";
const fileBase64 = await blobToBase64(recordedBlob);
uploadedVideo = await uploadMutation.mutateAsync({
title: `实时分析 ${new Date().toLocaleString("zh-CN", { month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit" })}`,
title: `实时分析 ${formatDateTimeShanghai(new Date(), {
year: undefined,
second: undefined,
})}`,
format,
fileSize: recordedBlob.size,
exerciseType: dominantAction,
@@ -1605,7 +1609,7 @@ export default function LiveCamera() {
<div>
<div className="font-medium">{session.title}</div>
<div className="mt-1 text-xs text-muted-foreground">
{new Date(session.createdAt).toLocaleString("zh-CN")}
{formatDateTimeShanghai(session.createdAt)}
</div>
</div>
<Badge className={ACTION_META[(session.dominantAction as ActionType) || "unknown"].tone}>