🗄 已归档快照(2026-09-13 文档时效治理):本文件为历史阶段设计快照,最新口径以 docs/contracts/api-v1.3-matrix.md、docs/plans/2026-09-14-白标化内核抽取-两实例对比.md 及 TASKS 现行为准。设计思路仍可参考,数据与结论已过时。
审计日期: 2026-09-07 22:20
基线 HEAD: c1a5966f(落后量=0,与 FETCH_HEAD 同步)
审计性质: 只查问题不改代码
| 口径 | v3 值 | v4 实测值 | 校正说明 |
|---|---|---|---|
| 数据库表数 | 76 | 107(静态 SQL)/ 109(生产实测) | v3 只扫 002-048 新建表,漏了 001 baseline 52 张;生产多出 2 张(疑似视图或手动 DDL) |
| C端页面数 | 120 | 119 目录 / 118 注册 | 目录 payment-confirm 和 task-review 在目录中但未在 app.json 注册 |
| B端页面数 | 23 | 25(app.tsx 路由)/ 27(.tsx 文件) | v2 漏计 2 个路由 |
| 云函数 | 9 个 | 废弃(用户确认) | 代码仍保留但不使用 |
以下 9 项已被小冈 349c449 + 阿仁 2aee605 修复,本次不复报:
| 编号 | 问题 | 修复 commit | 修复内容 |
|---|---|---|---|
| F-1 | 401 未清 token | 349c449 | request.ts 401 清 token + 跳登录 |
| F-2 | 弱网无重试 | 349c449 | GET 自动重试 1 次(1200ms) |
| F-3 | unwrap 不认 {ok,data} | 3ace656 | request.ts unwrap 同时识别 code 和 ok |
| F-4 | mockPay 无守卫 | 349c449 | staging/localhost 白名单外拒 |
| F-5 | uploadPilgrimageImage 死代码 | 349c449 | 已删 |
| F-6 | scene-cards 诚实降级文案 | 349c449 | "接口未建"→"暂未开放" |
| C-1 | JWT_SECRET 硬编码默认值 | 2aee605 | config.py fail-closed |
| C-2 | APP_ENV 默认 dev | 2aee605 | config.py fail-closed + 生产 APP_ENV=prod |
| C-3 | dev_id 无速率限制 | 2aee605 | prod 403 + 60s/10 次限速 |
B-1 CORS 白名单(波波已补生产 .env 6 域名)**代码兜底 ["*"] 仍在,继续报为 Minor**。
| # | 问题 | 位置 | 详情 |
|---|---|---|---|
| A1 | 种子用户一次性回填 SQL 缺失 | 050 迁移 | 已有用户依赖重新登录被动触发回填,非一次性覆盖 |
| # | 问题 | 位置 | 详情 |
|---|---|---|---|
| B-3 | _require_admin 含多余 phone 检查 | admin.py:9-17 | 未绑手机号的管理员被误拦 |
| B-4 | 站点配置 PUT 允许 staff 修改 | miniapp_site.py:89-101 | 权限过宽 |
| B-5 | 支付端点无金额服务端校验 | miniapp_orders.py:758-790 | 接真实支付时需修复 |
| D-1 | credit_journal.direction 无 CHECK | 001 baseline:438 | 财务流水必须约束 in/out |
| D-4 | user_wallets.balance 无非负 CHECK | 001 baseline:1949 | 防止负余额 |
| F-18 | scene-cards 默认 statusBar 文案 | scene-cards.ts:82-155 | "接口未建,诚实降级"→已改"暂未开放"(WARN) |
| F-23 | guest-archive 硬编码假数据 | guest-archive.ts:15-38 | 需接真 API 或诚实空态 |
| W-1 | FeatureFlags 接口未建 | FeatureFlags.ts:44-52 | 100ms setTimeout 伪异步 |
| W-2 | B端 token 缓存 30 天 vs 后端 24h | auth.ts:72 | 过期后用户请求失败才跳登录 |
| # | 问题 | 位置 |
|---|---|---|
| B-1 | main.py CORS 代码兜底 ["*"] 仍在 | main.py:28 |
| B-2 | 密码兼容裸 MD5/SHA1/SHA256 | utils.py:45-67 |
| b-1 | datetime.utcnow() Python 3.12 弃用 | security.py:12 |
| b-2 | 登录端点无速率限制 | auth.py:31,89 |
| b-3 | 核销码指纹复用 jwt_secret | miniapp_orders.py:211-214 |
| D-2 | 5 张表缺关键索引 | 001 baseline |
| D-5 | 废弃表(package_items/settlement_ledger) | 001 baseline |
| f-1 | auth.ts 无 token 过期管理 | auth.ts:87-107 |
| f-2 | app.ts onLaunch 无登录态预检 | app.ts:9-12 |
| w-1 | b-workbench App.tsx 直接读 window.location | App.tsx:38-45 |
| w-2 | Network.ts 401 强刷 | Network.ts:51-58 |
| # | 文件:行 | 风险 |
|---|---|---|
| W1 | scene-cards.ts:217-221 | 低 |
| W2 | scene-cards.ts:230-235 | 低 |
| W3 | products.ts:30-34 | 类型错误,运行时安全 |
| W4 | products.ts:38 | 类型错误,运行时安全 |
| W5 | products.ts:91-92 | 运行时安全 |
| W6 | product-detail.ts:56 | 运行时安全 |
| W7 | safety.ts:6-7 | 注释过时 |
Baseline 52 张 + 净新增 55 张 = 107 张。
users, user_identities, user_wallets, merchants, merchant_staff, merchant_positions, merchant_position_perms, destinations, pois, routes, rules, knowledge, guides, recommendations, calendar_events, transport_routes, certificates, health_records, safety_assessments, sos_alerts, documents, document_versions, document_members, document_comments, document_audit_logs, collab_projects, collab_modules, collab_work_items, collab_work_item_comments, collab_work_item_events, agent_contracts, credit_budgets, credit_journal, credit_tasks, credit_task_claims, friend_inventory, delegations, delegation_items, payment_confirmations, settlement_ledger, settlement_vouchers, split_agreements, quote_sessions, quote_vouchers, verifications, penalty_records, service_items, package_items, transport_slots, room_calendar, system_settings, audit_log
packages, package_components, partner_profiles, package_orders, package_order_items, package_order_events, orders, order_items, fulfillment_items, refund_policies, settlement_records, guest_bindings, site_config, road_status, status_daily, app_messages, order_events, user_checklist_states, user_wishlist, merchant_profiles, merchant_updates, passport_temples, user_temple_stamps, user_footprints, user_pilgrimage_counts, user_medals, reviews, key_balances, key_settlements, traveler_origin_stats, redemption_codes, redemption_conflicts, redemption_events, commission_entries, merchant_bills, merchant_bill_lines, weather_windows, distributors, distribution_records, scan_events, guide_profiles, subscriptions, task_templates, travel_demands, demand_interests, merchant_category_subscriptions, private_route_engagement, guide_articles, private_route_user_state, kora_routes, kora_route_waypoints, kora_route_segments, emergency_contacts, service_fee_records, trial_openids
2 张表差异来源待生产环境执行:
SELECT tablename FROM pg_tables WHERE schemaname='public' ORDER BY tablename;
pages/payment-confirm/ 和 pages/task-review/ 存在于目录但未在 app.json 注册,属于死代码。
波波底稿 docs/reports/2026-09-07-波波交叉核验-10份他人报告.md 中标注的 10 项仍成立清单,经我复核:
波波底稿"更正3"(住宿业态应仅展示)已被同文更正4推翻,我不引用。
*审计结束。署名:小渔 2026-09-07 | 基线 c1a5966f | 落后量 0*