Files
Life-OS/README.md
T

74 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Life OS / 人生操作系统
以桌面操作系统为交互方式的个人记录网站。用 App 记录日常、管理目标与待办,并沿时间线回看已经留下的内容。
在线站点:[Life OS](https://life-os-personal-desktop.biss0.chatgpt.site) · 当前应用版本:**v1.13.0** · [更新日志](CHANGELOG.md)
## 功能
| App | 用途 |
| --- | --- |
| 今日 | 为选定日期写记忆,记录天气、1–5 能量、标题、标签、地点和关联任务;每日电影是写作提示,不会替代记忆标题。 |
| 时间线 | 按日期浏览记忆,使用关键词或标签筛选,编辑、删除和收藏。 |
| 博物馆 | 回看收藏的记忆。 |
| 目标与待办 | 创建目标和任务,设置截止日期、优先级和完成状态;目标倒计时可选择显示在桌面。 |
| 日历 | 在月视图与日视图中查看记忆、任务和目标节点,并为选定日期新增记忆。 |
| 洞察 | 周报和月报展示记录频率、完成任务数、常见天气、能量记录及收藏或标记高光的记忆;仅依据已保存的数据统计。 |
| 档案 | 查看记录概况并维护个人资料。 |
| 浏览器 | 在桌面窗口里打开网页或使用 Google 搜索,支持后退、前进、刷新和外部打开。默认打开 Google;第三方网站可能禁止 iframe 嵌入。 |
| 终端 | 逐项创建记忆、目标与待办;选择并确认删除记录,管理完成状态,查询数据和打开其他 App。 |
| 系统设置 | 选择语言、主题、壁纸、桌面快捷方式和开机 App,管理备份。 |
桌面端支持单击选择、双击打开 App、多窗口、任务栏恢复、图标拖动排列和窗口布局记忆。拖动图标或小部件时会显示吸附网格;目标倒计时、时钟、今日概览与快捷操作小部件可移动、调整大小和分别开关。移动端以横排图标和全屏 App 为主,小部件在桌面下方排列。可选必应每日图片、内置背景或自定义 HTTPS 图片链接。中文与英文可自动跟随浏览器语言,也可手动选择。
快捷键:`Ctrl / ⌘ + K` 打开启动器,`Ctrl / ⌘ + F` 搜索记忆,`Ctrl / ⌘ + S` 保存今日记忆;`Alt + 1–9` 打开原有 App,`Alt + 0` 打开终端。终端内 ↑↓ 浏览命令历史,Tab 补全命令,记忆正文输入时 `Ctrl / ⌘ + Enter` 保存。站点包含 PWA 清单和 Service Worker,离线时可打开已缓存的应用外壳;云同步、外部网页与必应图片仍需要联网。
终端首次打开显示欢迎信息,输入 `help` 查看命令。`memory add`、`goal add`、`task add` 可逐项创建;回车保留默认值,`back` 返回,`cancel` 取消。`memory delete`、`goal delete`、`task delete` 会列出记录供选择,并要求输入 `yes` 确认。原有带参数的快速输入仍可用,例如 `memory add "实验记录" --date 2026-09-28 --tag 学习 --text "完成实验"`、`task add "背单词" --due tomorrow --priority high`。`date`、`time`、`datetime` 读取当前设备时间;另有 `uptime`、`status`、`apps`、`history`、`echo`、`version` 等命令。终端只执行明确支持的 Life OS 操作,不是系统 shell。
浏览器开发者工具的 Console 也可使用同一套命令:`LifeOS.help()`、`LifeOS.run('date')`、`LifeOS.run('memory add')`;逐项填写后用 `LifeOS.note('正文')` 保存记忆,或用 `LifeOS.cancel()` 取消。该入口不会替换或拦截浏览器原生的 `console`,删除操作同样需要在后续调用 `LifeOS.run('yes')` 确认。
## 数据与备份
站点使用 ChatGPT 登录标识隔离不同用户的数据。登录后,资料通过同源 API 保存到 Sites 的 D1 数据库;浏览器 `localStorage` 充当缓存、草稿及首次迁移来源。首次云端恢复前,本地资料会保留一份迁移前副本。浏览器缓存与 JSON 备份仍使用 `lifeos_system.tasksBoard`;云端将其中的目标和待办拆分为独立记录。
**系统设置 → 导出数据** 会生成 JSON 备份;导入支持合并或覆盖。备份格式使用 `schemaVersion: 2`,仍可导入 v1 备份。壁纸来源、快捷方式、开机 App 和小部件开关包含在同步与备份中;窗口布局与小部件格位分别保存在本设备的 `lifeos_window_layout_v1`、`lifeos_widget_layout_v1`,也包含在 JSON 导出中,覆盖导入时可恢复。未保存的今日草稿仅留在本机。
主要本地数据键:`lifeos_memories`、`lifeos_museum`、`lifeos_profile`、`lifeos_settings`、`lifeos_system`。云端表结构见 `drizzle/0001_lifeos_records.sql`:记忆、标签、目标、待办、收藏各自按记录保存,资料与设置保留按用户存储的 JSON。旧版 `lifeos_states` 作为只读迁移来源保留;用户首次访问新版本时自动回填新表,旧表不会被清空。单条记录的修改使用版本号校验;冲突时会保存本地副本并要求选择。旧版浏览器标签页需刷新,整份状态写入接口已停用,避免覆盖新数据。应用的备份 `schemaVersion: 2` 与数据库迁移编号是两回事。建议定期导出备份。
## 构建与验证
项目无需安装第三方 npm 依赖,使用 Node.js 运行:
```bash
npm run build
npm run validate
npm run test:cloud
```
`build` 将页面及 App 脚本打包成 `dist/server/` 中的 Cloudflare Worker 产物;`validate` 检查产物、双语键与主要交互;`test:cloud` 使用内存 SQLite 检查旧数据回填、版本冲突与租户隔离。生产托管配置在 `.openai/hosting.json`,含 Sites 项目 ID 和 D1 逻辑绑定。直接在其他环境部署时,需要提供兼容的 Worker 环境与 `DB` 绑定;云端 API 还依赖托管层提供的 `oai-authenticated-user-id` 请求头。
## 项目结构
```text
public/index.html 桌面框架与窗口基础交互
public/tasks.js 目标与待办
public/calendar.js 日历
public/browser-app.js iframe 浏览器
public/terminal-app.js 命令解析与终端界面
public/data-actions.js 图形界面与终端共用的数据写入
public/i18n-renderers.js 记忆、洞察、设置等双语界面
public/desktop-personalization.js 图标、窗口与壁纸偏好
public/desktop-widgets.js 吸附网格与桌面小部件
public/addons.js 导入导出、云同步与辅助操作
public/locales/ 中文、英文文案
public/service-worker.js PWA 缓存
worker/index.js Worker 路由与必应图片代理
worker/cloud-state.js 云端记录迁移与同步 API
drizzle/ D1 数据表迁移
scripts/ 构建与产物验证
```
## 隐私与版权
Life OS 不保存 ChatGPT 密码。自定义壁纸链接由浏览器直接加载;使用第三方图片时,请考虑图片服务的访问与隐私规则。必应每日图片版权归原始权利人所有。