MVP-3:离线层级选择全球出生地点与历史时区 #45
Closed
opened 2026-08-30 13:55:38 +08:00 by jesse
·
2 comments
No Branch/Tag Specified
main
codex/ui-kit-0-base-20261023
staging
codex/full-data-parity-3-20261022
codex/full-data-parity-2-20261021
codex/full-data-parity-1-20261021
codex/rectification-explicit-open-20261023
codex/chart-table-span-20261023
codex/onboarding-1-data-20261022
codex/report-english-han-leak-20261021
codex/chart-dasha-yogini-20261021
codex/goel-jaimini-strength-20261022
codex/synastry-staging-fix-20261021
codex/chart-subject-table-20261021
codex/chart-ascendant-slash-20261021
codex/report-export-dialog-polish-20261021
codex/synastry-report-chat-20261018
codex/synastry-full-report-20261018
codex/niryaana-shoola-pvr-20261018
codex/rectification-narrower-delivery-20261016
codex/full-reading-module-parity-20261018
codex/marriage-match-p1-20261017
codex/upstream-sync8-20261017
codex/people-archive-limit-20-20261017
codex/api-server-service-extract-20261013
codex/dasha-unify-20261013
codex/python-hygiene-20261013
codex/contracts-helpers-dedupe-20261013
codex/pl9-render-split-20261013
codex/consult-route-split-20261013
codex/beta-safety-net-20261014
codex/beta-capacity-20261014
codex/answer-effort-ab-20261013
codex/api-chart-subprocess-gate-20261013
codex/chart-ascendant-row-20261015
codex/data-layer-types-20261013
codex/release-path-production-20261014
codex/beta-main-path-20261014
codex/frontend-dead-code-20261013
codex/consult-prep-parallel-20261013
codex/report-reference-perf-20261013
codex/home-sidebar-rerender-20261013
codex/node-runtime-resources-20261013
codex/api-disk-cache-retention-20261013
codex/rect-scoring-perf-20261013
codex/upstream-sync7-20261014
codex/rectification-step0-entry-20261013
codex/report-focus-card-20261013
codex/report-translation-gaps-20261013
codex/composer-first-glyph-clip-20261013
codex/agent-loop-pilot-20261013
codex/rectification-offer-opened-state-20261012
codex/rectification-nearest-boundary-opening-20261012
codex/rectification-d12-parent-probes-research-20261012
codex/rectification-explicit-entry-20261012
codex/consult-career-type-residual-20261009
codex/consult-card-full-source-20261007
codex/rashi-dashas-native-20261008
codex/ephemeris-nutation-20261008
codex/report-full-data-edition-20261007
codex/special-lagnas-native-20261008
codex/upstream-sync6-20261007
codex/rectification-delivery-dup-adopt-20261006
codex/consult-conversational-answer-20261006
codex/consult-latency-quickwins-20261005
codex/rectification-nadi-seconds-research-20261005
codex/gate-log-volume-20261004
codex/astrologer-rulings-batch6-20261004
codex/consult-timeline-no-plan-20261001
codex/consult-answer-clock-20261001
codex/consult-plain-answer-20261001
codex/rectification-varga-resolution-fix-20261001
review/rectification-varga-resolution-20260930
codex/jev-intent-v2-20260927
codex/consult-evidence-card-research-20260927
codex/people-archive-p1-20260924
codex/chart-dasha-western-redesign-20260924
codex/home-page-split-20260925
codex/report-reader-main-20260924
codex/rectification-midnight-date-anchor-20260920
codex/rectification-cross-midnight-gate-fix-20260920
codex/rectification-cross-midnight-20260920
codex/owner-case-purge-20260919
codex/rectification-jev-intent-research-fix2-20260919
codex/rectification-jev-intent-research-fix-20260919
codex/rectification-jev-intent-classifier-research-20260919
docs/three-channel-redesign-20260918
codex/session-list-single-source-fix-20260917
codex/session-list-single-source-20260917
codex/rectification-session-composer-guard-20260917
codex/chart-copy-trim-20260917
codex/rectification-dead-d9-choice-fix-20260916
codex/rectification-mobile-timeline-readout-20260917
codex/session-capacity-bool-assert-20260916
codex/home-state-lowering-20260915
codex/freeze-metric-change-20260915
codex/rectification-engine-memoization-fix-20260915
codex/consultation-session-capacity-20260915
codex/consultation-context-memory-20260915
codex/consultation-external-evidence-cache-20260915
codex/rectification-request-dossier-cache-20260915
codex/rectification-settled-render-split-20260915
codex/rectification-engine-memoization-20260915
codex/rectification-failure-attribution-20260915
fix/sidebar-hard-nav
codex/rectification-spoken-orphan-20260914
codex/rectification-targeted-collect-spoken-focus-20260913
codex/rectification-house-lord-gochara-research-20260913
codex/rectification-new-minute-inherit-20260908
codex/rectification-same-year-probe-dedupe-20260908
codex/rectification-probe-replay-loss-20260908
codex/rectification-range-delivery-fix-20260907
codex/rectification-range-delivery-card-20260907
codex/rectification-stale-compare-fix-20260907
codex/rectification-declared-uncertainty-20260907
codex/report-md-page-20260906
codex/rectification-collect-vs-offer-consistency-20260905
codex/rectification-probe-answer-covers-domain-20260905
codex/rectification-quality-probe-dedupe-20260904
codex/rectification-post-adopt-verify-20260904
codex/report-candidate-range-20260904
codex/report-sensitivity-crash-20260904
codex/rectification-adopt-narration-fix2-20260904
codex/rectification-adopt-narration-fix-20260904
codex/rectification-adopt-narration-20260904
codex/repo-hygiene-20260903
codex/rectification-ux-20260903
codex/rectification-ux-20260902
codex/diagnose-rectification-request-20260827
fix/staging-gate-checkout-retry
No results found.
Labels
Clear labels
agent/待执行
agent/待真机
agent/待规划
agent/待验收
agent/执行中
agent/排队
agent/规划中
agent/试点
agent/部署中
agent/需拍板
agent/验收中
ready-for-agent
wayfinder:map
wayfinder:task
Grok 领:按任务书实现
产品负责人真机走查
Claude 领:诊断并写任务书
Claude 领:验收 Grok 回报的 SHA
锁:Grok 执行中
任务书已写好,等前置单合入 staging 后由 Claude 改成 agent/待执行;循环两侧都不处理
锁:Claude 规划中
试点期只处理带此标签的 issue
已推 staging,等部署核对(脚本自动)
需要产品负责人决定
锁:Claude 验收中
Fully specified, ready for an agent
Wayfinder map issue holding the notes and child tickets
Wayfinder child ticket
No labels
ready-for-agent
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: root/Jyotisha#45
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Blocked by: #44
背景
用户希望海外出生地点不要依赖搜索,而是像中国地点一样从维护好的位置表中逐级选择。当前 BirthPlacePicker 主要支持中国省/市/区县,全球地点搜索虽已有服务代码但不作为本 MVP 的交互入口。
数据方案
优先使用已维护的开源国家/行政区/城市数据生成项目内静态快照;第一候选为 dr5hn/countries-states-cities-database。不要把完整大表直接打进客户端,按国家或地区拆分/懒加载静态 JSON。地点表只负责选择地点;历史时区和出生时刻 UTC offset 继续走现有服务/星盘引擎。
范围
验收标准
已完成 GitHub 数据源调研(2026-08-30):
结论:MVP-3 采用原始上游
dr5hn/countries-states-cities-database,不采用海外搜索,也不直接引入第三方运行时 API。核验结果:
v3.2-export.7,2026-07-29 发布。对比:
joelacus/world-cities:有城市、坐标和 timezone,但州/县补全依赖 geocoding API key,不适合本 MVP 的纯离线级联。srestre/world-countries-cities-db:已经拆成按国家/地区文件,适合参考懒加载组织方式,但属于小型二次整理,来源和许可证链更复杂,不作为首选上游。datasets/world-cities:主要是人口 15,000+ 的城市列表,层级和覆盖不足。实现约束:
v3.2-export.7,生成国家列表及按国家/一级行政区拆分的静态 JSON;不把全量城市表打进首屏。china-birth-place。上游参考:
已完成 MVP-3。实现海外出生地点离线级联选择:国家 → 州/省/地区 → 城市,不再使用搜索;国家索引首屏加载,国家数据按需加载。地点表固定使用 dr5hn/countries-states-cities-database v3.2-export.7(ODbL-1.0),保留经纬度与 IANA timezone 候选,最终仍通过 /api/locations/timezone 按出生日期确认历史时区;未确认时区不会写入可用地点。\n\n验证:16/16 定向测试通过;npx tsc --noEmit 通过;git diff --check 通过。\n\n本地提交:ae9ded623b75c663b69dce38ca7fc77e0baca3f6(尚未 push/deploy)。