更迭 · Changelog
A log of what shipped, in the order it happened. Cultural-entertainment project, hand-maintained — not a release manifest. Dates are when the change reached prod; versions are notional milestones, not git tags.
v1.4 (2026-05-17) · Pre-launch hardening
The last engineering session before the 毕业季 banner activates on 2026-05-25.
- Reading caches. 看相 and 合相 now memoize on landmark profile hash (and on the unordered pair, for 合相 — the same two faces in either order resolve to the same reading). Cuts LLM cost for popular inputs without changing what visitors see. 八字 caching shipped earlier; this closes the cache coverage.
- /references attribution. Every reference photo carries an inline photographer credit and CC BY license string at the surface of use — on the result page, beside each match — not buried in a sub-page. The /references index remains the canonical attribution list.
- CI test-gate. The deploy pipeline now runs pytest inside the same multi-arch image it ships, before any SSH happens. A failing test aborts deploy. Adds ~30s to a green run; saves a 5xx outage on a red one.
- Mobile breakpoint. Lookalike result page now fits iPhone SE and Pixel 8 without horizontal scroll.
v1.3 (2026-05-17) · Brand seal + cost dashboard
- 颜值 seal mark. A single-character cinnabar seal replaces the word-mark logo. Same character as the favicon — the brand is the character.
- /tips page. Ko-fi (worldwide, no signup) and WeChat Pay (CN) side by side. The footer "请喝一杯茶" links here.
- CN celebrity pack. 25 curated portraits added to the lookalike reference set under 华语 · Chinese — same CC BY licensing pattern as the Global pack.
- /api/cost dashboard. Internal observability for cache hit ratios and daily LLM spend, gated behind a high-entropy token. Closed by default.
v1.2 (2026-05-16) · Share + consent + quota
- Native share. Every reading result page exposes the OS share sheet (iOS, Android, Chrome desktop) with the rendered card and a short permalink. CN-app fallback for in-app browsers that suppress Web Share.
- Biometric consent. A one-time modal before the first upload of the session explains what reaches the language model (a numerical landmark profile — not the photo) and what doesn't (the photo never leaves memory). Saved locally; no account required.
- Daily quota. Per-feature soft quotas to keep the cost of a single curious visitor bounded. Quota copy points to /tips.
- 八字 cache. First of the reading caches — 4-pillar compute and
LLM reading both memoize on
(birth_date, gender).
v1.1 (2026-05-14) · Samples + permalinks + 八字 + SEO
- Samples gallery. Public sample readings at stable URLs — a visitor can see the kind of output before they upload anything.
- SQLite permalinks. Result pages get a 24h
/r/<slug>link. Permalinks let the share-card screenshot be re-opened by friends. - 八字 (Four Pillars). Birth-date reading kind alongside the face-based ones. No photo required.
- SEO + legal pages. Per-五行 and per-天干 landing pages, plus /disclaimer · /privacy · /terms · /references. Sitemap covers the durable URLs; ephemeral ones (/r/, /share/, /molemap/) stay out.
v1.0 (2026-05-05) · Public preview
- 看相 (face reading). The classical 麻衣神相 voice, written by a language model from a numerical landmark profile. Chinese-only hero quote ≤14 characters.
- 合相 (compatibility). Two faces, one reading. Order-independent.
- 痣相 (mole map). Per-zone interpretation laid over the face landmarks.
- Live operability. /api/health, cost guards, and the first cut of the operability page.
v0.x (2026-05-04) · Lookalike engine + 颜值 score
- Lookalike. Upload a face, match against a curated reference set, see the closest portraits with an inline distance score.
- 颜值 score. An absolute aesthetic score derived from facial landmarks (symmetry, proportions, harmony), separate from the lookalike distance. Cultural-entertainment scale, not a measurement.
- Reference packs. Initial woman / man Global pack with CC BY licensing maintained per portrait.
v0.0 (2020-04-25) · First commits
The project began as a face-recognition CI/CD scaffold. Most of what runs today was rewritten between 2025-06 and 2026-05; the 2020 commits remain in history as the foundation.
面如其人 · 字如其命 · 守之以静,行之以缓。