Repository navigation
Synthetix 1.0.3
What's New in 1.0.3 / 1.0.3 更新内容
🔒 Security · 安全
-
Updater trust chain hardened
EN: TOCTOU attack eliminated; download phase uses cached verified asset descriptor instead of re-fetching manifest.
CN: 消除 TOCTOU 攻击;下载阶段使用缓存的经验证资源描述符,不再重新获取 manifest。 -
Settings secrets encrypted at rest
EN: AES-256-GCM encryption for S3, PostgreSQL, Neo4j, Milvus, and Qdrant credentials; GET APIs return masked placeholders only.
CN: S3、PostgreSQL、Neo4j、Milvus、Qdrant 凭证使用 AES-256-GCM 加密存储;GET 接口仅返回掩码占位符。 -
Access / Refresh token separation
EN: JWT tokens carry akindfield; ordinary API calls reject refresh tokens.
CN: JWT 令牌包含kind字段;普通 API 调用拒绝 refresh 令牌。 -
Login rate limiting
EN: IP-based and account-based throttling withRetry-Afterheaders.
CN: 基于 IP 和账号的双维度限流,返回Retry-After头。 -
SectionAsset & ModelConfig ownership
EN: File serving and model config resolution verify user ownership before returning results.
CN: 文件服务和模型配置解析在返回结果前验证用户所有权,防止跨用户访问。 -
Python API key transport
EN: API keys moved from process arguments (visible inps) to environment variables.
CN: API 密钥从进程参数迁移到环境变量,避免在进程列表中暴露。
⚙️ Task Lifecycle & Cancellation · 任务生命周期与取消
-
Two-phase cancellation
EN: Running tasks transition tocancel_requested(non-terminal); terminalcancelledwritten only when worker Promise completes.
CN: 运行中的任务先转为cancel_requested(非终态),worker Promise 完成后才写入终态cancelled。 -
AbortSignal-aware execution context
EN: All workers receiveTaskExecutionContextwithsignal,reportProgress,heartbeat,throwIfCancelled. LLM calls, streaming, and retry backoff are all signal-aware.
CN: 所有 worker 接收包含signal、reportProgress、heartbeat、throwIfCancelled的执行上下文。LLM 调用、流式传输、重试退避均感知取消信号。 -
Durable leases & generation fencing
EN: Claim setsleaseOwner/leaseExpiresAt/executionGeneration; terminal commits fenced by generation; restart recovery only recovers expired leases.
CN: 领取任务时设置租约信息和 generation;终态提交使用 generation 围栏;重启恢复只恢复过期租约的任务。 -
Bulk draft stop / resume
EN: "Generate Full Draft" has Stop (cooperative, after in-flight LLM call) and Resume buttons; status bar survives page refresh.
CN: "生成完整草稿"新增停止(协作式,等待当前 LLM 调用完成)和继续按钮;状态栏在页面刷新后恢复。
🏗️ Task Identity · 任务身份关系化
-
Relational identity fields
EN:documentId,draftId,sectionId,sessionId,operationId,parentTaskId,attemptadded toAsyncTaskschema with composite indexes.
CN:AsyncTask新增七个 nullable 关系字段及复合索引。 -
Dual-write & backfill
EN: New tasks dual-write relational identity while preserving legacyinputData; historical backfill viapnpm backfill:task-identity.
CN: 新任务双写关系身份并保留旧inputData;历史数据通过pnpm backfill:task-identity回填。 -
Query migration
EN: Task lookups migrated from JSONLIKEto relational column equality with null-only legacy fallback, preventing UUID substring mismatches.
CN: 任务查询从 JSONLIKE迁移到关系列等值匹配,仅在字段为 null 时回退,防止 UUID 子串误匹配。
✨ Features · 功能改进
-
Wiki auto-retry
EN: Incomplete wiki synthesis units (failed LLM calls) automatically retried up to 2 times using crash-durable checkpoint resume.
CN: Wiki 合成中失败的单元自动重试最多 2 次,利用崩溃耐久 checkpoint 恢复。 -
Compare mode Wiki retrieval
EN: Compare mode now uses the same Wiki retrieval + RAG policy as single mode.
CN: 对比模式现在使用与单模型模式相同的 Wiki 检索 + RAG 策略。 -
Typed SSE schema
EN:SSEEventTypeunion andparseSSEEventhelper for client-side reducers.
CN: 类型化 SSE 事件联合和解析辅助函数,支持客户端 reducer。 -
Compare view selection fix
EN: When both models are identical, only the selected panel shows highlight + "selected" badge.
CN: 当两个模型相同时,只有选中的面板显示高亮和"已选择"标记。
🔍 Search · 搜索
- Removed 2,000-chunk search cap
EN: Semantic search now scans all chunks in batches with running top-k, eliminating silent recall holes on large libraries.
CN: 语义搜索分批扫描所有 chunk 并维护滚动 top-k,消除大型知识库中的静默召回缺口。
🔧 CI / Build · 持续集成与构建
-
Clean-checkout pnpm CI
EN: GitHub Actions uses frozen-lockfile install with full validation chain (prisma generate → electron compile → typecheck → lint → test → build).
CN: GitHub Actions 使用 frozen-lockfile 安装和完整验证链。 -
TypeScript strict enforcement
EN:next.config.tsno longer ignores build errors; production build enforces strict type checking.
CN: 生产构建不再忽略类型错误,强制 TypeScript 严格模式。 -
PostgreSQL fail-fast
EN: Main application explicitly rejects PostgreSQL configuration with a clear error message.
CN: 主应用显式拒绝 PostgreSQL 配置并返回明确错误信息。
Full Changelog: https://github.com/WalkCloud/Synthetix/blob/main/CHANGELOG.md