Skip to content

Commit bd7998b

Browse files
release: prepare v2.1.5 beta
Sync the Mac-side AI Analysis page hardening into Windows (provider switching/auth, send-safety, surfaced failures): - Backend AIAnalysisProxyService.java: gemini no longer gets an Authorization header (native Gemini uses ?key=; the header caused ACCESS_TOKEN_TYPE_UNSUPPORTED); custom providers can override via providerOptions.authHeaderName/authPrefix; reasoning prefix adds o5. - Frontend AIAnalysisMain.js: clickable provider cards + "set current", clearing stale apiKey on type switch, auto-select on delete, abort stream on session switch/delete, concurrent-send guard, auto-scroll, embedding/markdown failure surfacing. - services/aianalysis.js: providerOptions.requestTimeoutMs + stream flush. - utils/aiAnalysisStore.js: log localStorage-quota failures. astrostudyboot.jar rebuilt (install astrostudy -> clean package); authHeaderName verified in the packaged jar. Bump version to 2.1.5. Confirmed via the precise Mac 2.1.4->2.1.5 commit diff that these are the only shared-tree changes; pre-existing Windows backend baseline left as-is. release_selfcheck.py: add 2.1.5 sentinels (authHeaderName, resolveRequestTimeout); treat a not-yet-regenerated SHA256SUMS as pending rather than a failure (the gate runs at the end of dist:win before the manual SHA256SUMS regen). Gate passed 5/5 on this build. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 73e691a commit bd7998b

17 files changed

Lines changed: 356 additions & 120 deletions

File tree

CITATION.cff

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cff-version: 1.2.0
22
title: Horosa Web App Comprehensively Improved Windows
33
message: If you use this repository in academic or technical work, please cite it.
44
type: software
5-
version: 2.1.4
5+
version: 2.1.5
66
authors:
77
- given-names: Horace
88
family-names: Maxwell
@@ -11,8 +11,8 @@ repository-code: https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensivel
1111
url: https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows
1212
license: AGPL-3.0-only
1313
abstract: >-
14-
Horosa for Windows v2.1.4 beta is a local-first metaphysics workstation that aligns the
15-
latest Mac-side fixes (AI-provider compatibility + upstream error surfacing, BaZi true-solar-time display) and AI Analysis rework, astrology modules, traditional Chinese methods,
14+
Horosa for Windows v2.1.5 beta is a local-first metaphysics workstation that aligns the
15+
latest Mac-side fixes (AI Analysis page hardening — provider switching/auth, send-safety, surfaced failures; AI-provider compatibility; BaZi true-solar-time display) and AI Analysis rework, astrology modules, traditional Chinese methods,
1616
kentang/kin backend integrations, AI-assisted structured export, Python and Java
1717
services, and self-contained Windows desktop delivery into one cross-platform
1818
release line.

README.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
**把占星与中国术数,收进一个原生 Windows 工作站**<br />
1010
*Western astrology and Chinese metaphysics, in one native Windows workstation*
1111

12-
[![Version](https://img.shields.io/badge/version-2.1.4%20beta-b45309?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
12+
[![Version](https://img.shields.io/badge/version-2.1.5%20beta-b45309?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
1313
[![License](https://img.shields.io/badge/license-AGPL--3.0-dc2626?style=flat-square)](LICENSE)
14-
[![Windows](https://img.shields.io/badge/Windows%2010%2F11-x64-111111?style=flat-square&logo=windows&logoColor=white)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
15-
[![Installer](https://img.shields.io/badge/NSIS-bundled%20runtime-1f6feb?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
14+
[![Windows](https://img.shields.io/badge/Windows%2010%2F11-x64-111111?style=flat-square&logo=windows&logoColor=white)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
15+
[![Installer](https://img.shields.io/badge/NSIS-bundled%20runtime-1f6feb?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
1616
[![CI](https://img.shields.io/github/actions/workflow/status/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/actions/workflows/ci.yml)
1717
[![Stars](https://img.shields.io/github/stars/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/stargazers)
1818

19-
[下载安装包](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.4.exe) ·
19+
[下载安装包](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.5.exe) ·
2020
[完整中文说明](README_ZH.md) ·
2121
[English Guide](README_EN.md) ·
2222
[所有版本](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases)
@@ -35,7 +35,7 @@
3535

3636
> Regular users grab the offline installer and open it like any finished Windows app. No Python or Java to install yourself—the runtime ships inside the package—and updates replace the program and shared runtime without wiping your saved charts. The first launch is a little slower while the runtime is extracted and verified; later launches reuse the local cache.
3737
38-
**[⬇︎ Horosa-Setup-2.1.4.exe](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.4.exe)**
38+
**[⬇︎ Horosa-Setup-2.1.5.exe](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.5.exe)**
3939

4040
适合:Windows 10/11 · `x64` · 弱网 / 离线环境 · 首次安装 · 转发给他人。
4141

@@ -96,17 +96,18 @@
9696

9797
> Charts and cases save locally—tags, snapshots, raw backend payloads, JSON import/export, and full restore on reopen.
9898
99-
## 本次更新 · What's New in v2.1.4 beta
99+
## 本次更新 · What's New in v2.1.5 beta
100100

101-
这一版把 Mac 端最新的 **AI 分析后台调用修复** 同步到 Windows(对应 GitHub issues 反馈的"AI 后台调用有问题"):
101+
这一版把 Mac 端最新的 **AI 分析页全面修复** 同步到 Windows(供应商切换 / 鉴权、发送安全、静默失败透出):
102102

103-
- **兼容 OpenAI 推理模型**`gpt-5.x` / `o1` / `o3` / `o4`(含 openrouter 的 `openai/gpt-5` 写法)只接受默认 temperature 且用 `max_completion_tokens`。现在命中这类模型时自动省略 `temperature`、改用 `max_completion_tokens`;其它模型(如 `gpt-4.1`)行为不变。
104-
- **上游错误透传**:后端把上游 provider 的真实错误体并入错误信息,前端流式处理 `error` 事件——调用失败时显示**真实原因**(如参数不支持),不再一律"模型未返回可用内容"。
105-
- **凭据脱敏**:出站请求失败时,错误信息 / 日志里的 `Authorization` / `x-api-key` 等敏感头显示为 `***redacted***`,URL 去掉 `?key=`,避免把密钥写进日志。
103+
- **多供应商切换更顺**:供应商卡片可点击 + 「设为当前」按钮;切换供应商类型会清空旧 API key;删除当前供应商自动补选另一个。
104+
- **Gemini 直连修复**:原生 Gemini 走 URL `?key=`,不再误加 `Authorization` 头(此前会报 `ACCESS_TOKEN_TYPE_UNSUPPORTED`);custom 供应商可用 `providerOptions.authHeaderName` / `authPrefix` 自定义鉴权头;推理模型前缀新增 `o5`
105+
- **发送更稳**:流式生成中再按回车不会并发重发;切换 / 删除会话会先中止当前流;新消息自动滚到底部。
106+
- **失败不再静默**:嵌入 / 分块失败有提示;Markdown 解析失败退回纯文本;请求超时可由 `providerOptions.requestTimeoutMs` 配置;本地存储配额超限会记录日志而非吞掉。
106107

107-
后端 Java 改动(`AIAnalysisProxyService` + 共享库 `boundless`)已重新构建并打包进 `astrostudyboot.jar`。仍包含 2.1.3 八字时间修复、2.1.2 AI 分析重做与 2.1.1 干净机器加固。完整改动见 [v2.1.4 Beta Release](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)[本地发布说明](docs/releases/2.1.4.md)
108+
后端 `AIAnalysisProxyService` 改动已重新构建并打包进 `astrostudyboot.jar`。仍包含 2.1.4 供应商兼容 / 错误透传 / 脱敏、2.1.3 八字时间修复、2.1.2 AI 分析重做与 2.1.1 干净机器加固。完整改动见 [v2.1.5 Beta Release](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)[本地发布说明](docs/releases/2.1.5.md)
108109

109-
> This release syncs the latest Mac-side **AI Analysis backend-call fixes** into Windows (addressing the reported GitHub issues): OpenAI reasoning models (`gpt-5.x` / `o1` / `o3` / `o4`, incl. the `openai/…` openrouter form) now omit `temperature` and use `max_completion_tokens`; upstream provider errors are surfaced as the real reason (via a streamed `error` event) instead of the generic "no usable content"; and credentials (`Authorization` / `x-api-key`, `?key=` in URLs) are redacted from error messages and logs. The backend Java changes (`AIAnalysisProxyService` + the shared `boundless` lib) were rebuilt into `astrostudyboot.jar`. Still includes the 2.1.3 BaZi fix, the 2.1.2 AI rework, and the 2.1.1 clean-machine hardening. See the [v2.1.4 release](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4) for the full log.
110+
> This release syncs the latest Mac-side **AI Analysis page hardening** into Windows (provider switching/auth, send-safety, surfaced failures): clickable provider cards + a "set current" button, switching provider type clears the stale API key, deleting the current provider auto-selects another; native Gemini uses the URL `?key=` and no longer adds an `Authorization` header (which caused `ACCESS_TOKEN_TYPE_UNSUPPORTED`), with `authHeaderName`/`authPrefix` overrides for custom providers and an added `o5` reasoning prefix; pressing Enter mid-stream no longer double-sends, switching/deleting a session aborts the stream first, and new messages auto-scroll; embedding/chunking failures are surfaced, Markdown parse failures fall back to plain text, request timeout is configurable via `providerOptions.requestTimeoutMs`, and a localStorage quota overflow is logged instead of silently swallowed. The backend `AIAnalysisProxyService` change was rebuilt into `astrostudyboot.jar`. Still includes the 2.1.4 / 2.1.3 / 2.1.2 / 2.1.1 work. See the [v2.1.5 release](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5) for the full log.
110111

111112
## 技术构成 · Under the Hood
112113

@@ -123,7 +124,7 @@
123124
- [desktop_installer_bundle/README.md](desktop_installer_bundle/README.md) — 桌面打包与安装器说明 / installer internals
124125
- [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md) — 项目结构说明 / project structure
125126
- [docs/CLEAN_MACHINE_NATIVE_RUNTIME_FIX.md](docs/CLEAN_MACHINE_NATIVE_RUNTIME_FIX.md) — 干净 Windows 运行时修复与发布注意点 / clean-machine runtime notes
126-
- [docs/releases/2.1.4.md](docs/releases/2.1.4.md) · [docs/releases/2.1.3.md](docs/releases/2.1.3.md) · [docs/releases/2.1.2.md](docs/releases/2.1.2.md) · [docs/releases/2.1.1.md](docs/releases/2.1.1.md) · [SECURITY.md](SECURITY.md) · [SUPPORT.md](SUPPORT.md) · [CONTRIBUTING.md](CONTRIBUTING.md) · [CITATION.cff](CITATION.cff)
127+
- [docs/releases/2.1.5.md](docs/releases/2.1.5.md) · [docs/releases/2.1.4.md](docs/releases/2.1.4.md) · [docs/releases/2.1.3.md](docs/releases/2.1.3.md) · [docs/releases/2.1.2.md](docs/releases/2.1.2.md) · [docs/releases/2.1.1.md](docs/releases/2.1.1.md) · [SECURITY.md](SECURITY.md) · [SUPPORT.md](SUPPORT.md) · [CONTRIBUTING.md](CONTRIBUTING.md) · [CITATION.cff](CITATION.cff)
127128
- 源码 / source: `local/workspace/Horosa-Web-*/`(前端 `astrostudyui`,后端 `astrostudysrv` / `astropy`,引擎 `vendor`
128129

129130
## 致谢 · Acknowledgements

README_EN.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
**Western astrology and Chinese metaphysics, in one native Windows workstation**
1010

11-
[![Version](https://img.shields.io/badge/version-2.1.4%20beta-b45309?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
11+
[![Version](https://img.shields.io/badge/version-2.1.5%20beta-b45309?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
1212
[![License](https://img.shields.io/badge/license-AGPL--3.0-dc2626?style=flat-square)](LICENSE)
13-
[![Windows](https://img.shields.io/badge/Windows%2010%2F11-x64-111111?style=flat-square&logo=windows&logoColor=white)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
14-
[![Installer](https://img.shields.io/badge/NSIS-bundled%20runtime-1f6feb?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4)
13+
[![Windows](https://img.shields.io/badge/Windows%2010%2F11-x64-111111?style=flat-square&logo=windows&logoColor=white)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
14+
[![Installer](https://img.shields.io/badge/NSIS-bundled%20runtime-1f6feb?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5)
1515
[![CI](https://img.shields.io/github/actions/workflow/status/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/actions/workflows/ci.yml)
1616
[![Stars](https://img.shields.io/github/stars/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows?style=flat-square)](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/stargazers)
1717

18-
[Download](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.4.exe) ·
18+
[Download](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.5.exe) ·
1919
[Portal](README.md) ·
2020
[中文说明](README_ZH.md) ·
2121
[All Releases](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases)
@@ -28,13 +28,13 @@
2828

2929
Horosa is a desktop workstation for traditional cosmology. Western astrology—natal reading, the full timing chain, and relationship work—sits beside Chinese systems like Bazi, Ziwei, Qimen, Liuren, and Taiyi, all inside one native Windows application. The point is that you stop juggling a dozen single-purpose web tools, and you never hand-assemble the Python, Java, and ephemeris pieces underneath. You download an offline NSIS installer and open a finished app.
3030

31-
This repository is the Windows delivery of that app: the application source, the shared runtime, the Electron desktop shell, and the publishing flow that turns all of it into a single NSIS installer (`Horosa-Setup-2.1.4.exe`).
31+
This repository is the Windows delivery of that app: the application source, the shared runtime, the Electron desktop shell, and the publishing flow that turns all of it into a single NSIS installer (`Horosa-Setup-2.1.5.exe`).
3232

3333
## Download
3434

3535
Regular users should go straight to the offline installer and open Horosa like any other Windows app.
3636

37-
**[⬇︎ Horosa-Setup-2.1.4.exe](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.4.exe)**
37+
**[⬇︎ Horosa-Setup-2.1.5.exe](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/latest/download/Horosa-Setup-2.1.5.exe)**
3838

3939
Best for:
4040

@@ -95,17 +95,18 @@ Yi and Sanshi go past standalone tabs into a genuinely integrated surface.
9595

9696
Charts and cases save locally with tags, snapshots, and raw backend payloads. Everything supports JSON import/export and restores its full state when you reopen it.
9797

98-
## New in v2.1.4 beta
98+
## New in v2.1.5 beta
9999

100-
This release syncs the latest Mac-side **AI Analysis backend-call fixes** into Windows (addressing reported GitHub issues that the AI backend call was broken).
100+
This release syncs the latest Mac-side **AI Analysis page hardening** into Windows (provider switching/auth, send-safety, surfaced failures).
101101

102-
- **OpenAI reasoning-model compatibility**`gpt-5.x` / `o1` / `o3` / `o4` (incl. the `openai/gpt-5` openrouter form) only accept the default temperature and use `max_completion_tokens`; the request now omits `temperature` and uses `max_completion_tokens` for these models, while others (e.g. `gpt-4.1`) are unchanged
103-
- **Upstream error surfacing** — the backend merges the upstream provider's real error body into the error, and the frontend handles a streamed `error` event; a failed call now shows the real reason instead of the generic "no usable content"
104-
- **Credential redaction** — on a failed outbound request, sensitive headers (`Authorization` / `x-api-key` …) in error messages / logs are shown as `***redacted***`, and `?key=` is stripped from logged URLs
105-
- **Backend rebuilt** — the Java changes (`AIAnalysisProxyService` + the shared `boundless` lib) were rebuilt into `astrostudyboot.jar`
106-
- **Still includes 2.1.3 / 2.1.2 / 2.1.1** — the BaZi time fix, the AI Analysis rework, and the clean-machine hardening are retained
102+
- **Smoother provider switching** — clickable provider cards + a "set current" button; switching provider type clears the stale API key; deleting the current provider auto-selects another
103+
- **Native Gemini fixed** — Gemini uses the URL `?key=` and no longer adds an `Authorization` header (which caused `ACCESS_TOKEN_TYPE_UNSUPPORTED`); custom providers can override via `providerOptions.authHeaderName`/`authPrefix`; added an `o5` reasoning prefix
104+
- **Safer sending** — pressing Enter mid-stream no longer double-sends; switching/deleting a session aborts the current stream first; new messages auto-scroll
105+
- **Failures no longer silent** — embedding/chunking failures are surfaced; Markdown parse failures fall back to plain text; request timeout is configurable via `providerOptions.requestTimeoutMs`; a localStorage quota overflow is logged instead of swallowed
106+
- **Backend rebuilt** — the `AIAnalysisProxyService` change was rebuilt into `astrostudyboot.jar`
107+
- **Still includes 2.1.4 / 2.1.3 / 2.1.2 / 2.1.1** — provider compatibility, BaZi time, the AI rework, and clean-machine hardening are retained
107108

108-
Full log on the [v2.1.4 release page](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.4) and the [local release notes](docs/releases/2.1.4.md).
109+
Full log on the [v2.1.5 release page](https://github.com/Horace-Maxwell/Horosa-Web-App-comprehensively-improved-Windows/releases/tag/v2.1.5) and the [local release notes](docs/releases/2.1.5.md).
109110

110111
## Under the Hood
111112

@@ -120,16 +121,16 @@ Continuous integration builds and tests the frontend (Node 20) and backend (Java
120121
## FAQ
121122

122123
**Do I need to clone the repo to use Horosa?**
123-
No. Download `Horosa-Setup-2.1.4.exe` from the latest release.
124+
No. Download `Horosa-Setup-2.1.5.exe` from the latest release.
124125

125126
**Do I need to install Python or Java myself?**
126127
No. The Windows installer carries the runtime the released app needs. The first launch is a little slower while those pieces are extracted and verified locally; later launches reuse the cache.
127128

128129
**Can I choose the install directory?**
129-
Yes. The v2.1.4 Beta installer offers an assisted flow with directory selection, write checks, shortcut repair, and elevation when Windows requires it.
130+
Yes. The v2.1.5 Beta installer offers an assisted flow with directory selection, write checks, shortcut repair, and elevation when Windows requires it.
130131

131132
**Why are there other files in the release?**
132-
`latest.yml`, `.blockmap`, and `SHA256SUMS.txt` support the updater and verification flows. For end users, `Horosa-Setup-2.1.4.exe` is the only thing that matters.
133+
`latest.yml`, `.blockmap`, and `SHA256SUMS.txt` support the updater and verification flows. For end users, `Horosa-Setup-2.1.5.exe` is the only thing that matters.
133134

134135
**Will updates remove my data?**
135136
No. App replacement and runtime switching update the program and shared runtime; they are not designed to erase your saved charts and cases.

0 commit comments

Comments
 (0)