You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
> 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.
> 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.
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.
30
30
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`).
32
32
33
33
## Download
34
34
35
35
Regular users should go straight to the offline installer and open Horosa like any other Windows app.
@@ -95,17 +95,18 @@ Yi and Sanshi go past standalone tabs into a genuinely integrated surface.
95
95
96
96
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.
97
97
98
-
## New in v2.1.4 beta
98
+
## New in v2.1.5 beta
99
99
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).
101
101
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
107
108
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).
109
110
110
111
## Under the Hood
111
112
@@ -120,16 +121,16 @@ Continuous integration builds and tests the frontend (Node 20) and backend (Java
120
121
## FAQ
121
122
122
123
**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.
124
125
125
126
**Do I need to install Python or Java myself?**
126
127
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.
127
128
128
129
**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.
130
131
131
132
**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.
133
134
134
135
**Will updates remove my data?**
135
136
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