admin e85963e7bf refactor(auth): rename AuthStatusCheckSubmitted → AuthInit (init-only)
The previous event name implied "re-check status", but the actual
semantics is just "read storage on app start and sync loginStatus into
the machine". It was being dispatched from three sites:

1. AuthStatusChecker mount useEffect (the legit one-time init)
2. AuthStatusChecker loginStatus-watching useEffect (dead code — the
   machine's onDone already writes loginStatus, re-reading storage
   just returns the same value as a no-op)
3. Sidebar post-logout effect (also dead code — AuthReset directly
   sets loginStatus to initialState's "notLoggedIn", and
   userLogoutActor already cleared storage, so the values are
   already aligned)

This commit:

- Renames event AuthStatusCheckSubmitted → AuthInit in:
  * auth-events.ts (type union)
  * auth-machine.ts (handler + transition target: checkingAuthStatus →
    initializing, mirroring UserInit / initializing in user-machine)
  * auth-status-checker.tsx (single dispatch site)
  * root-providers.tsx (one comment)

- Simplifies auth-status-checker.tsx from 74 → ~40 lines:
  * Removes useEffect ② (loginStatus-watching re-check)
  * Removes prevLoginStatusRef + skipNextChangeRef + useAuthState
    (dead loop-guard machinery no longer needed)

- Removes the post-logout re-check dispatch from sidebar-screen.tsx:
  * AuthReset alone is sufficient — userLogoutActor cleared storage
    and AuthReset writes back initialState, so they match by
    construction. No re-verification needed.

Net: -44 lines, no behavior change for the happy paths (startup,
login, logout), one fewer source of false re-checks.
2026-06-17 09:52:45 +08:00
2026-06-05 19:09:20 +08:00
2026-06-05 19:09:20 +08:00
2026-06-15 11:37:29 +08:00
2026-06-15 14:23:31 +08:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Git Hooks

项目使用 .githooks/ 目录存放仓库内的 git hooks.git/hooks/)。clone 后需手动启用

git config core.hooksPath .githooks

启用的 Hook

post-receive

触发场景git push 到本仓库时(在 bare reporeceive.denyCurrentBranch=updateInstead 的非 bare repo 上)。

行为:自动执行 pnpm run build:start,即 next build && next start

注意事项

  • 本仓库的 .githooks/post-receive 自动生效 —— 必须在每个工作副本上跑一次上面的 git config 命令
  • core.hooksPath本地 git config(写入 .git/config),随仓库提交
  • post-receive接收端触发 —— 即 push 目标机器(生产 / 测试服务器)的 hook,不是本地开发机的

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details. modify

S
Description
No description provided
Readme 47 MiB
Languages
TypeScript 90.2%
CSS 6.3%
JavaScript 1.6%
Shell 1.3%
HTML 0.4%
Other 0.1%