TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A single-page dashboard over Google Tasks and Google Calendar. Without a signed-in
Google account it runs in demo mode against local sample data.
Google API access tokens last an hour, and a browser-only app cannot renew one
without either a popup or a user gesture — Google removed the silent iframe
flow. So the OAuth exchange happens server-side instead:查看完整 README ↗A single-page dashboard over Google Tasks and Google Calendar. Without a signed-in Google account it runs in demo mode against local sample data.
Originally exported from AI Studio: https://ai.studio/apps/35469fc6-e9fb-44b3-92b7-9958aa8bb99f
Google API access tokens last an hour, and a browser-only app cannot renew one without either a popup or a user gesture — Google removed the silent iframe flow. So the OAuth exchange happens server-side instead:
/api/auth/login sends the user to Google's consent screen./api/auth/callback trades the code for a refresh token, checks the account
against ALLOWED_EMAILS, and stores the refresh token inside an encrypted,
HttpOnly session cookie. There is no database./api/token turns that cookie into a fresh access token. The page calls it on
load and again whenever a Google request comes back 401./api/logout clears the cookie.The browser never holds a long-lived credential, and the session survives reloads, restarts and other devices.
In production Vercel serves everything under api/ as serverless functions. In
development the same files run inside Vite through the dev-api plugin in
vite.config.ts, so there is one implementation of each
endpoint rather than two.
In the project you want to own this app:
Enable the Google Calendar API and the Google Tasks API.
Configure the OAuth consent screen and publish it to production. While it is in testing, refresh tokens expire after 7 days and you will be signed out every week. An unverified published app shows a warning screen on first consent, which you can accept for personal use.
Create an OAuth client of type Web application and add these authorized redirect URIs:
http://localhost:3000/api/auth/callbackhttps://<your-app>.vercel.app/api/auth/callbackA desktop-type client will not work — it has no redirect URI for the web.
Copy .env.example to .env and fill in all four values. Set the
same four in Vercel under Project Settings → Environment Variables.
ALLOWED_EMAILS is the access control for the whole deployment. The dashboard
sits on a public URL, so an empty list lets nobody in — that is deliberate.
npm install
npm run dev # http://localhost:3000
The port is pinned with --strictPort. If Vite fell back to another port the
redirect URI would no longer match and sign-in would break.
Changing .env needs a dev server restart; it is read once at startup.
| Command | Does |
|---|---|
npm run dev | Vite dev server plus the API endpoints on port 3000 |
npm run build | Production build into dist/ |
npm run lint | tsc --noEmit |
npm run check | Session cookie sealing self-check |