技术文档

环境、配置与兼容性

星线 App、聊天服务与 Account 必须使用匹配环境。本页解释配置契约与变更影响;变量明细及本地命令见开发配置,生产变更步骤见运维。公开资料不包含任何实际密钥或私有配置文件。

环境一致性

环节 需要匹配的内容 配错的表现
App → 聊天服务 API 基地址、HTTPS、回跳 scheme、客户端 state 登录回到错误 App、换票失败、会话不能恢复
聊天服务 → Account issuer、client ID、机密凭据、回调地址和授权范围 授权端拒绝、token 交换失败或用户信息不可读
Account 浏览器 来源、Cookie、RP ID、可信代理 会话丢失、通行密钥失败、Host 或来源被拒绝
通话 LiveKit 地址、签发配置与设备网络 信令已接收但房间或媒体不可用
城市、识别、推送 城市数据库、模型、APNs 与对应平台配置 相关功能受限,而非整个服务必然失败

开发环境的 localhost、Android 模拟器宿主别名与真机网络地址各有用途。Release 包应核对真正的服务器地址和回调配置,不能把调试覆盖或本地 fixture 配置带入分发产物。

原生端配置

iOS 的 STARLINE_CHAT_BASE_URL 仅用于 Debug 覆盖;HTTP 仅允许回环。默认聊天地址为 https://chat.thestarline.cn。最低系统为 iOS 17,Swift 语言版本为 6;当前工程以 iPhone 为设备家族,iPad 与 watchOS 不能由此自动推断已交付。

Android 的 starlineChatBaseUrl 是构建属性,默认同样指向正式聊天服务。原生授权地址校验只信任正式 Account HTTPS 来源,没有 Debug localhost 例外;仅覆盖聊天基地址不能完成隔离 Account 原生登录。最低 API 26,目标/编译 API 35,Java 17。当前仓库声明 AGP 8.7.3 和 Gradle Wrapper 9.2.1;这一组合需要在所选环境实际验证兼容性,本技术文档没有执行新的原生构建。构建成功还需要继续检查签名、manifest、实际 API 地址和真机行为。

服务启动和可选能力

聊天服务要求 Node.js 24 或以上,使用内置 SQLite;Account 使用独立 MySQL。聊天数据库、身份数据库、静态文档内容和设备本地数据不是同一数据集。服务的健康 HTTP 响应不自动覆盖外部身份、模型、媒体或推送依赖。

CHAT_CRYPTO_NODE_BUNDLE 指向 MLS 验证器产物;配置该产物不会自动切换所有客户端的主消息路径。CHAT_MEMORY_MODEL_URL 与模型名称配置影响服务器识别适配器,而不是启用记忆云同步。APNs 和 LiveKit 的可用性既受配置影响,也受证书、网络、设备和平台状态影响。

CHAT_PROFILE_ENCRYPTION_KEY 等持久密钥与既有资料有关。轮换前需分析解密、索引、会话和回滚影响,不能把随意重建配置当作故障修复。客户端只保存必要会话材料,服务端机密凭据不得放入 App 包、下载脚本或公开文档。

配置变更的检查顺序

  1. 识别变更归属:设备、聊天、Account、媒体、推送或静态站。
  2. 核对当前运行基线与目标版本,保留可恢复的配置和数据,不回显实际值。
  3. 在隔离环境验证格式与依赖;测试只使用合成账号和合成数据。
  4. 对原生包重新构建并核对产物;对服务执行对应配置、迁移和健康检查。
  5. 运行真实路径:授权回跳、换票、会话恢复及受到影响的业务步骤。
  6. 记录已验证范围、未覆盖设备和待办,不把一个检查结果推广为全部能力通过。

文档站的配置

技术文档由 Markdown 生成静态文件,没有服务端账号、数据库或访问令牌。站点基本地址固定为 https://app.thestarline.cn,构建时同步生成 canonical、站点地图和索引文件。部署只需要静态产物以及正确的 Markdown MIME;不需开放 Account 或聊天权限。构建说明保存在文档源目录的维护指南,公开抓取规则见文档访问与引用。

Markdown 原文完整文档文本