auto-save 2026-05-29 16:54 (~2)
This commit is contained in:
@@ -1,31 +1,5 @@
|
||||
{
|
||||
"entries": [
|
||||
{
|
||||
"files_changed": 1,
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 分支 main · 1 项未提交变更 · 最近提交:docs: record centered workbench deployment",
|
||||
"ts": "2026-05-20T12:25:32Z",
|
||||
"type": "session-heartbeat"
|
||||
},
|
||||
{
|
||||
"files_changed": 2,
|
||||
"hash": "1a6c247",
|
||||
"message": "auto-save 2026-05-20 20:27 (~2)",
|
||||
"ts": "2026-05-20T20:27:39+08:00",
|
||||
"type": "commit"
|
||||
},
|
||||
{
|
||||
"files_changed": 4,
|
||||
"hash": "8fd1bdb",
|
||||
"message": "auto-save 2026-05-20 20:32 (~4)",
|
||||
"ts": "2026-05-20T20:33:05+08:00",
|
||||
"type": "commit"
|
||||
},
|
||||
{
|
||||
"files_changed": 2,
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 分支 main · 2 项未提交变更 · 最近提交:auto-save 2026-05-20 20:32 (~4)",
|
||||
"ts": "2026-05-20T12:35:32Z",
|
||||
"type": "session-heartbeat"
|
||||
},
|
||||
{
|
||||
"files_changed": 4,
|
||||
"hash": "8972580",
|
||||
@@ -3200,6 +3174,34 @@
|
||||
"message": "auto-save 2026-05-28 09:33 (~2)",
|
||||
"hash": "e97dc03",
|
||||
"files_changed": 2
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-28T15:21:05+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-28 15:20 (~1)",
|
||||
"hash": "e538459",
|
||||
"files_changed": 1
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-28T15:26:41+08:00",
|
||||
"type": "commit",
|
||||
"message": "fix: prevent video generate button drag capture",
|
||||
"hash": "4bcca76",
|
||||
"files_changed": 1
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-28T15:43:03+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-28 15:42 (+1, ~6)",
|
||||
"hash": "c061df3",
|
||||
"files_changed": 7
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-28T15:43:54+08:00",
|
||||
"type": "commit",
|
||||
"message": "feat: cache canvas media locally",
|
||||
"hash": "854947a",
|
||||
"files_changed": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -32,12 +32,6 @@ function loginNextPath() {
|
||||
return normalizeNextPath(new URLSearchParams(window.location.search).get("next"))
|
||||
}
|
||||
|
||||
function isFeishuClient() {
|
||||
if (typeof window === "undefined") return false
|
||||
const ua = window.navigator.userAgent.toLowerCase()
|
||||
return ua.includes("feishu") || ua.includes("lark")
|
||||
}
|
||||
|
||||
export default function LoginPage() {
|
||||
const [authConfig, setAuthConfig] = useState<AuthConfig | null>(null)
|
||||
const [nextPath] = useState(loginNextPath)
|
||||
@@ -83,7 +77,7 @@ export default function LoginPage() {
|
||||
const passwordEnabled = authConfig?.password_enabled ?? true
|
||||
|
||||
useEffect(() => {
|
||||
if (!feishuEnabled || status !== "idle" || autoFeishuAttemptedRef.current || !isFeishuClient()) return
|
||||
if (!feishuEnabled || status !== "idle" || autoFeishuAttemptedRef.current) return
|
||||
const attemptKey = `skg-feishu-auto-login:${nextPath}`
|
||||
if (window.sessionStorage.getItem(attemptKey) === "1") return
|
||||
window.sessionStorage.setItem(attemptKey, "1")
|
||||
@@ -155,7 +149,7 @@ export default function LoginPage() {
|
||||
onClick={onFeishuLogin}
|
||||
>
|
||||
<Building2 className="h-4 w-4" />
|
||||
飞书免登录
|
||||
飞书登录
|
||||
<ArrowRight className="h-4 w-4" />
|
||||
</button>
|
||||
) : null}
|
||||
|
||||
Reference in New Issue
Block a user