weiyuqing
1c05825b6a
deploy: accept exact OCI index or config identity from offline image
2026-10-17 14:42:56 +08:00
weiyuqing
c076bbc0d6
qa: validate server queries and prepare offline backend web update
2026-10-17 14:41:45 +08:00
weiyuqing
6292755ff9
fix: preserve selected identity in streamed health exports
2026-10-17 14:17:35 +08:00
weiyuqing
bcd4cd3759
feat: render health pages from server summaries
2026-10-17 14:10:27 +08:00
weiyuqing
c9ca625de1
feat: expose health view API and streaming CSV exports
2026-10-17 14:02:40 +08:00
weiyuqing
9dbfcd73f8
feat: add SQL health view summaries and stable pagination
2026-10-17 13:48:26 +08:00
weiyuqing
497fd1c1b0
记录已批准的后端汇总与分页实施计划
2026-10-17 13:39:46 +08:00
weiyuqing
8546ba23ff
保存 NAS 健康系统 UI7 代码与本机维护基线
2026-10-17 13:29:12 +08:00
HUAYUE1024
1767b4921a
Update README.md
2026-10-10 18:01:12 +08:00
binglua
addd2849cc
chore: remove docs unrelated to running the project
...
- Remove docs/PROJECT_DOCUMENTATION.md (internal refactoring spec)
and docs/QR_LOGIN.md (implementation walkthrough); protocol
reference lives in source comments (adapters/, api.py)
- Keep docs/PRIVACY.md (data-flow audit backing the no-upload claim)
- Update README/CHANGELOG links accordingly
2026-09-03 22:56:56 +08:00
binglua
45f1d2e701
fix(privacy): zero third-party requests from browser (v0.2.2)
...
- Remove Google Fonts links from web dashboard and testpage: opening
the page no longer sends requests (IP/UA) to Google; system font
stack renders identically, works offline and loads faster in CN
- Override default python-httpx User-Agent with a browser UA on all
Xiaomi requests (matches cookie-based login origin, removes script
fingerprint)
- PRIVACY.md: document zero-CDN frontend and minimal outbound headers
2026-09-03 22:47:34 +08:00
binglua
a47a8470f8
feat(security): privacy hardening + data export (v0.2.1)
...
- CORS: default localhost-only origins (was *, allowed any webpage
to read local health data cross-site); env override MI_FITNESS_CORS_ORIGINS
- Host header allowlist middleware on FastAPI and Flask (DNS-rebinding
protection); auto-configured for non-loopback binds via CLI
- Move API key passTokens from SQLite plaintext to system keyring,
with automatic migration on startup and cleanup for revoked keys
- Disable uvicorn access log by default (query params out of terminals)
- New GET /api/export: JSON/CSV export of local data (offline, Excel BOM)
- Add docs/PRIVACY.md: full data-flow audit, outbound endpoint inventory,
threat model, self-verification steps
- 6 new tests (host allowlist, keyring roundtrip, CSV)
2026-09-03 22:43:15 +08:00
binglua
42c42b2c9e
docs: point badges and clone URL to this repository
2026-09-03 22:33:57 +08:00
binglua
99bc32e862
docs: polish README for open-source release
...
- Add CI/license/version/python badges and bilingual one-liner
- Add mermaid architecture diagram
- Feature list: add MCP access, incremental sync engine, local-first
- Add FAQ (data freshness, passToken expiry, mcp<2, sync duration)
- Consolidate auth levels into a table; add key issuance example
- Fix imprecise bare-sync description (resume from cursor, not fixed 30d)
- Add docs navigation and repo file layout notes
2026-09-03 22:30:24 +08:00
binglua
2dd32f1ee6
feat: REST API with API keys, QR login, and web dashboard (v0.2.0)
...
- REST API (FastAPI): all data endpoints, sync (foreground/background),
coverage stats, interactive docs at /docs
- API key system: exchange Xiaomi credentials for mif_sk_* keys
(multi-account contexts, last-used tracking, prefix revocation);
static key via MI_FITNESS_API_KEY, admin endpoints via MI_FITNESS_ADMIN_KEY
- QR code login: reverse-engineered Xiaomi universal QR flow
(sid=xiaomiio), auto-issues API key after scan confirmation
- Built-in web dashboard (Flask): visual console for all endpoints,
key management, QR login; reverse proxy with server-side key relay
- Standalone testpage/ console (python app.py, no install needed)
- Fix: pin mcp<2 (SDK 2.x removed Server.list_tools, broke startup)
- CI: install [all,dev] extras; docs: full technical documentation
and QR login implementation guide
2026-09-03 22:28:31 +08:00
binglua
7fcd06980f
feat: improve cloud sync reliability and background status
2026-07-13 04:03:57 +00:00
binglua
ebc94b50e9
chore: localize CLI output and comments to Chinese
2026-06-29 02:49:10 +00:00
binglua
636d2857c3
fix: preserve daily activity timezone metadata
2026-06-29 02:38:41 +00:00
binglua
f73fcb6659
fix: sync all supported Mi Fitness data types by default
2026-06-29 02:21:44 +00:00
binglua
c901e712d7
fix: preserve Mi Fitness local timezone offsets
2026-06-22 02:10:55 +00:00
binglua
eef795672d
feat: sync spo2 stress and abnormal heart beat
2026-06-22 01:31:54 +00:00
binglua
0ff3dd1c82
feat: sync spo2 stress and abnormal heart beat
2026-06-22 01:31:54 +00:00
binglua
b532ee652d
docs: translate README to Chinese
2026-06-21 11:45:54 +00:00
binglua
62be8dfc2b
Add Mi Fitness sleep and workout sync support
2026-06-21 11:45:53 +00:00
Aleksej Kubulashvili
6440121d67
docs: add repository badges
2026-03-16 14:13:56 +03:00
Aleksej Kubulashvili
df914ea56a
feat: prepare mi-fitness-mcp for first public release
...
Package the standalone Mi Fitness MCP with clearer public docs, release metadata, CI, and safer local repository hygiene so it is ready to publish without secrets or work identity leakage.
2026-03-12 14:12:49 +03:00
Aleksej Kubulashvili
6771fc841c
Initialize standalone Mi Fitness MCP repository
2026-03-12 10:03:58 +03:00