Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
6.1 KiB
JSON
Raw Permalink 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.
{"repo": "827238158/homebuild-log", "files": {"README.md": {"4777ef9ad1a9ffc31c098af8320b9652fa482f5c": {"t": 1785595224.179348, "n": 2994, "h": "4b23a000b159aa94", "c": "# HomeBuild Log\n\n装修事件与知识管理系统。用户通过自然语言、图片或票据描述装修过程中发生的事情,系统将其整理为事件、账目、问题、尺寸、决策和调研记录,并通过时间线、账本、问题看板和空间档案呈现。账目只记录付款、退款和收入,待办、普通问题和施工问题统一为“问题”。\n\n## 当前阶段\n\n项目已完成阶段 1 本地数据底座、阶段 2 手工记录闭环、阶段 3A 文本 AI 录入和阶段 3B 全项目数据可视化。当前默认进入中文概览,可查看问题、到货风险和最近动态;时间线、人民币账本、问题、空间、六类记录及 AI 运行数据均提供可下钻分析。阶段 4 OCR/PWA 及阶段 5 稳定化仍待单独授权。\n\n规划基线:个人私用的响应式Web/PWA,Windows本地自托管,React/TypeScript/Vite PWA前端、FastAPI后端、SQLite与本地附件目录、可插拔AI,以及跨模型Agent单写者串行协作。\n\n## 文档地图\n\n- [AGENTS.md](AGENTS.md):Agent 协作规则与按需检索流程。\n- [项目规格](docs/00-project-spec.md):目标用户、核心能力、非目标与未知项。\n- [概念架构](docs/01-architecture.md):模块、数据流与不可随意改动的边界。\n- [代码与文档风格](docs/02-style-guide.md):术语、注释、错误处理和文档规则。\n- [接口契约](docs/03-api-contracts.md):当前契约边界及未来记录要求。\n- [开发流程](docs/04-dev-workflow.md):任务、检查、测试、构建和提交约定。\n- [决策记录](docs/05-decisions.md):已确认决策及待决策事项。\n- [领域模型](docs/06-domain-model.md):来源、候选、六类记录、共享实体、状态和关联。\n- [交互与可视化](docs/07-ux-visualization.md):录入、确认、核心页面和响应式体验。\n- [路线图与跨模型协作](docs/08-roadmap-agent-collaboration.md):实施阶段、任务门禁、活动锁和交接规则。\n- [真实事件样本](docs/samples/real-events.md):保留原始描述并记录候选信息与一事多记录分析。\n- [任务总览](tasks/README.md):任务状态、当前任务和候选任务池。\n- [当前活动任务](tasks/ACTIVE.md):唯一写入Agent、任务范围和锁状态。\n- [检查清单](checklists/task-start.md):任务开始、实现审查、文档更新和发布检查入口。\n\n## 开始下一项工作\n\n1. 阅读 `AGENTS.md`,先输出本任务的 `Need:` 列表。\n2. 读取`tasks/ACTIVE.md`确认写入权;只读任务不得认领写入锁。\n3. 从 `tasks/TASK-TEMPLATE.md` 创建任务,明确范围、非目标、允许修改文件与验收标准。\n4. 只读取当前步骤需要的资料,完成后执行 `checklists/implementation-review.md`并释放活动锁。\n\n当前候选方向只是待梳理事项,不代表已批准实施;请先在 `tasks/README.md` 中确认或调整优先级。\n\n## 本地开发基线\n\n### 后端\n\n```powershell\nconda create -n homebuild-log python=3.13 pip -y\nconda activate homebuild-log\nSet-Location backend\npython -m pip install -r requirements.lock\npython -m pip install -e . --no-deps\npython -m alembic -c alembic.ini upgrade head\nfastapi dev app/main.py --host 127.0.0.1 --port 8000\n```\n\n后端健康接口:`http://127.0.0.1:8000/api/v1/health`;OpenAPI文档:`http://127.0.0.1:8000/docs`。\n\n### 文本 AI 配置\n\nAI 默认关闭。推荐先设置环境变量,再将`.local-data/config/secrets.json`中的`ai.enabled`改为`true`;环境变量优先于文件内Key:\n\n```powershell\n$env:DEEPSEEK_API_KEY = \"你的 DeepSeek Key\"\n$env:MIMO_API_KEY = \"你的 MiMo Key\"\n```\n\n`secrets.json`的AI区块默认值如下,修改时保留已有管理员密码哈希和JWT密钥:\n\n```json\n{\n \"ai\": {\n \"enabled\": true,\n \"provider_order\": [\"mimo\", \"deepseek\"],\n \"timeout_seconds\": 30,\n \"temperature\": 0.3,\n \"providers\": {\n \"deepseek\": {\n \"base_url\": \"https://api.deepseek.com\",\n \"model\": \"deepseek-v4-flash\",\n \"auth_style\": \"bearer\",\n \"api_key\": \"\"\n },\n \"mimo\": {\n \"base_url\": \"https://api.xiaomimimo.com/v1\",\n \"model\": \"mimo-v2.5-pro\",\n \"auth_style\": \"api-key\",\n \"api_key\": \"\"\n }\n }\n }\n}\n```\n\n未配置任何Key时服务仍正常启动,`auto`自动使用本地规则。\n\n### 前端\n\n另开一个PowerShell窗口:\n\n```powershell\nSet-Location frontend\nnpm ci\nnpm run dev\n```\n\n浏览器访问`http://127.0.0.1:5173`。Vite会把`/api`请求代理到本地后端。\n\n### 检查\n\n```powershell\nSet-Location backend\npython -m ruff check . --no-cache\npython -m pytest\n\nSet-Location ..\\frontend\nnpm run lint\nnpm run test\nnpm run build\nnpm audit\n```\n\n运行数据统一位于项目根目录的`.local-data/`,不会进入Git。\n"}}, "deploy/compose.yaml": {"46b3e7fe575841b5de5e809fa0aae3485c2b3a10": {"t": 1786068209.4278429, "n": 929, "h": "e7134c065bb07aef", "c": "name: homebuild-log\n\nservices:\n app:\n image: ${HOMEBUILD_IMAGE:-homebuild-log:4a-20260715}\n pull_policy: never\n init: true\n restart: unless-stopped\n ports:\n - \"${HOMEBUILD_BIND_ADDRESS:-127.0.0.1}:${HOMEBUILD_PORT:-8000}:8000\"\n environment:\n DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}\n MIMO_API_KEY: ${MIMO_API_KEY:-}\n volumes:\n - ./.local-data:/app/.local-data\n read_only: true\n tmpfs:\n - /tmp:size=64m,mode=1777\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n healthcheck:\n test:\n - CMD\n - python\n - -c\n - \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health', timeout=3).read()\"\n interval: 15s\n timeout: 5s\n start_period: 30s\n retries: 4\n logging:\n driver: json-file\n options:\n max-size: 10m\n max-file: \"3\"\n stop_grace_period: 30s\n"}}}}