Repository navigation
ARTEX · 终末地主题版 v2.2.2(Windows x64)
本仓库是上游 ARTEX 的 fork:上游功能 / API / 数据库结构完全保留,额外实现终末地(Endfield)风格界面与 REA 逆向分析整合。
本次重点
1. 界面偏好终于能跨重启保持(修了三个叠加的 bug)
| 问题 | 根因 | 修复 |
|---|---|---|
| 暗色主题 / 主题预设 / 侧栏样式 重启后回默认 | <head> 引导脚本被 Next 序列化进 RSC payload(self.__next_f.push),用 innerHTML 插入的 <script> 永不执行 |
偏好改为直接从 cookie 读(store 挂载时) |
| 同上(第二层) | 只有 theme_mode 有专门的 effect 应用,预设/字体/布局/侧栏从来没人在启动时应用 |
挂载时把 preset/font/contentLayout/navbarStyle/sidebarVariant/sidebarCollapsible 全部 apply 到 DOM |
| 同上(第三层) | Chromium 的 cookie 库是异步加载的,冷启动首帧 document.cookie 可能为空 |
主进程 loadURL 前预热 cookie 库 + 前端 400ms 后补读一次 |
验证方式:壳内新增
ARTEX_DEBUG_PREFS=1诊断,把「渲染进程读到的 cookie」与「<html>上的data-*」一起写进shell.log;修复后domPreset与cookiePreset首帧即一致。
2. 安全加固(自测 + 修复 + 回归归零)
- SSRF 收口:
POST /api/llm/test、POST /api/llm/models会按调用方给的base_url发外连;现在只允许 http/https、禁 userinfo、拒绝链路本地/未指定/组播与云元数据主机名(169.254.0.0/16、fe80::/10、0.0.0.0、metadata.google.internal…),本机与内网模型服务仍然放行。 - 安全响应头:全站 CSP +
X-Content-Type-Options+X-Frame-Options: DENY+Referrer-Policy: no-referrer;CSP 含object-src 'none'、frame-src 'none'、worker-src。 - CORS:去掉无条件
Access-Control-Allow-Origin: *,只在请求带 loopback Origin 时回显。 - 登录节流:同 IP 连续 5 次失败锁 60s,每再 5 次翻倍(上限 15min),成功即清零,返回
Retry-After。 - 全局限流:
/api/*600 次/分钟/客户端,响应带X-RateLimit-Limit/X-RateLimit-Remaining,超限 429。
3. 安装 / 卸载
- 安装包不再携带运行期密钥:之前的打包源混进了测试期的
config.json与jwt.key(会让所有安装共用同一个 JWT 签名密钥),本次已清理,首次启动自行生成。 - 卸载器现在真的会删文件:原先
Uninstall ARTEX.exe0.9 秒退出、一个文件不删(模板从注册表取不到$INSTDIR后又被重置)。现在卸载流程会:停 PostgreSQL → 备份pgdata与artex-data到%LOCALAPPDATA%\ARTEX\uninstall-backup→ 交给独立脚本在卸载器退出后删除安装目录。 - 卸载项写入注册表,控制面板「应用和功能」可见。
4. 界面
- 侧边栏 ⚙ 弹层全中文(主题预设 / 字体 / 外观模式 / 页面布局 / 导航栏行为 / 侧栏样式 / 侧栏收起方式 / 恢复默认)。
- 预设名汉化:默认(内置外观)/ 终末地 / 粗野主义 / 柔彩 / 橘子,并注明"默认"就是终末地皮肤。
- 企鹅水印开关在 ⚙ 弹层(
Hide Watermark),写入后端设置,跨重启保持。
5. 稳定性
- LLM 审批重试:4xx/鉴权类错误不再重试,指数退避 + 抖动。
- 请求限速增加抖动与并发闸。
- 卡片高度溢出修复。
- 关窗时可靠停掉 PostgreSQL(避免下次启动端口漂移导致偏好丢失)。
上游同步(与 ARTEX main 的功能整合)
本版把上游 RuoJi6/ARTEX 的 main 上与本 fork 相关的 3 个提交整合进来(cherry-pick,零冲突),并在同一次推送里让 main 和 endfield-theme 都指向同一提交:
| 上游提交 | 内容 | 本版效果 |
|---|---|---|
dc8e25e |
LLM 请求严格限流 | 按每个模型配置的配额排队,不再瞬间打满供应商 |
d64bea4 |
模型审批可配置重试 | 审批调用失败按配置重试;4xx / 鉴权类错误直接放弃 |
c4f2a5b |
审批提示卡片高度 | 长脚本不再把卡片撑破,超出部分滚动 |
文档也同步到 2.2.2:
README.md补了维护修复一节与ui.hide_penguin配置说明,CHANGELOG.md的[2.2.2]列出逐条变更,ENDFIELD-THEME.md补了企鹅开关与shell/源码位置。
合规前提(REA 逆向分析)
REA 仅用于自有软件、自有资产或获得明确授权的目标。逆向分析页预填了「只读、单文件、不执行、不联网、不利用」的任务模板——可修改、可一键重置(页面上的「重置目标模板」按钮);修改模板即视为自行承担相应责任。
资产
| 文件 | 用途 |
|---|---|
ARTEX-Endfield-Setup-2.2.2.exe |
完整安装包(内置 PostgreSQL / Node / REA 运行时) |
artex-2.2.2-windows-amd64.zip |
页面一键更新用的发布包(含 start.bat 守护脚本与 skills/) |
SHA256SUMS |
上述两个文件的校验和 |
安装包未做代码签名,首次运行 Windows SmartScreen 会提示"更多信息 → 仍要运行"。