Skip to content

Commit bace63e

Browse files
committed
fix(release): harden packaged backends for v1.4.12
1 parent a460c2a commit bace63e

26 files changed

Lines changed: 489 additions & 46 deletions

.github/release-notes/v1.4.12.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
## CatGo 1.4.12
2+
3+
CatGo 1.4.12 is a cross-platform reliability release for CatBot, scientific
4+
workflows, large trajectories, and the integrated terminal. It includes the
5+
unpublished 1.4.10 and 1.4.11 improvements, plus release-time fixes verified on
6+
the Windows, macOS Apple Silicon, and Linux packaged build paths.
7+
8+
### Highlights
9+
10+
- **CatBot works from installed desktop packages** — Claude, Codex, and Gemini
11+
CLI discovery follows platform-native user paths, while the bundled backend
12+
and Agent Bridge expose the same Provider, MCP, Skills, voice, structure,
13+
workflow, and Campaign capabilities as the source build.
14+
- **Packaged backends start with a coherent native runtime** — Linux bundles
15+
one ABI-compatible conda C++ runtime, and Windows Campaign cold starts are
16+
validated with reliable full-process-tree cleanup.
17+
- **Attachments reach the selected model** — images, PDFs, text files, and
18+
general files are carried through SDK, direct-provider, and backend-relay
19+
paths instead of being silently discarded.
20+
- **Surface workflows are scientifically complete** — the clean slab is
21+
relaxed before adsorbate branches, frozen atoms stay consistent through
22+
geometry optimization and frequency calculations, and workflow status comes
23+
from actual task evidence.
24+
- **Large trajectories and terminals remain responsive and complete** — bounded
25+
frame caches reduce memory pressure, while terminal resizing preserves CJK
26+
cells and keeps the final column clear of the scrollbar.
27+
28+
### Added
29+
30+
#### Packaged CatBot verification
31+
32+
- Added all-platform frozen-backend smoke tests covering the Provider catalogue,
33+
native voice health, bundled core Skills, all 21 CatGo MCP tools, structure and
34+
pane access, workflows, and real REST/MCP Campaign creation.
35+
- Added compiled Agent Bridge smoke tests for Claude, Codex, and Gemini session,
36+
attachment, permission, failure, and stream-completion paths.
37+
- Added native attachment transport for Claude image/PDF blocks, Codex local
38+
images, Gemini ACP images, and safe temporary file access for other formats.
39+
- Added a release boundary that publishes the VS Code extension to Marketplace
40+
and Open VSX only after the exact-version Linux, macOS, and Windows sidecars
41+
and their SHA256 metadata are available on the public mirror.
42+
43+
#### CatBot and Codex integration
44+
45+
- Added live Codex model discovery so CatBot's provider label follows the
46+
installed CLI instead of carrying a stale hard-coded model version.
47+
- Preserved the user's Codex skills and MCP configuration while registering the
48+
desktop CatGo server under its own namespace.
49+
- Routed CatBot structure, workflow, and export actions through the active CatGo
50+
runtime connection rather than fixed localhost ports.
51+
- Added structure recovery for pop-out chat windows and viewer panels so closing
52+
a presentation window does not erase the underlying structure.
53+
54+
#### Workflow management and surface science
55+
56+
- Added safe bulk selection and deletion to project and workflow views, with
57+
durable success or failure feedback.
58+
- Added task-derived workflow state aggregation for CHECK, PAUSED, FAILED,
59+
REMOTE_ERROR, RUNNING, and completed work.
60+
- Added a clean-slab geometry-optimization node before adsorbate branches in
61+
generated surface workflows.
62+
- Persisted exact frozen-atom indices from slab generation through slab
63+
optimization, adsorbate geometry optimization, and adsorbate-only frequency
64+
calculations.
65+
66+
### Fixed
67+
68+
#### Cross-platform CatBot runtime
69+
70+
- Fixed Linux frozen backends mixing Ubuntu 22.04's older `libstdc++` with
71+
conda ICU. PyInstaller now selects the conda `libstdc++`/`libgcc` pair and
72+
verifies that it provides every collected CXXABI and GLIBCXX version.
73+
- Fixed Windows packaged Campaign verification using a five-second generic API
74+
timeout for the first frozen invocation. The smoke test now gives Campaign a
75+
realistic cold-start budget and terminates the complete PyInstaller process
76+
tree before removing logs.
77+
- Fixed GUI-launched Windows and macOS apps failing to find user-installed
78+
Claude, Codex, or Gemini CLIs because desktop launchers supplied a reduced
79+
PATH.
80+
- Fixed installed Windows local terminals opening with the wrong shell or losing
81+
the selected shell and current directory across runtime transitions.
82+
- Fixed frozen desktop backends launching Campaign as `python -m catgo`, which
83+
recursively invoked the packaged executable instead of the CatGo CLI.
84+
- Fixed the first microphone action racing the delayed voice router and becoming
85+
stuck on an unavailable browser fallback.
86+
- Fixed CatBot attachments appearing in the composer but never reaching SDK,
87+
direct-provider, or backend-relay requests.
88+
- Fixed migrated tool-registry tests importing the obsolete pre-package module
89+
path, restoring coverage of packaged tool discovery.
90+
- Fixed official VS Code builds becoming visible before their matching server
91+
sidecars, which previously produced unrecoverable HTTP 404 downloads.
92+
93+
#### Workflow correctness and recovery
94+
95+
- Fixed workflows that were reported as generated but never appeared in the
96+
visible CatGo workspace.
97+
- Fixed completed, failed, or checking workflows that remained labeled RUNNING,
98+
while continuing to protect genuinely executing tasks and unresolved remote
99+
jobs from deletion.
100+
- Fixed slab and geometry-optimization previews showing different frozen layers
101+
despite sharing the same structure.
102+
- Fixed manual freeze edits that appeared selected but were not persisted into
103+
downstream inputs.
104+
105+
#### Database and networking
106+
107+
- Prevented Materials Project, OPTIMADE, and PubChem requests from inheriting
108+
agent-only SOCKS proxy settings. Normal HTTP proxy configuration remains
109+
available to the backend.
110+
- Improved OPTIMADE provider recovery so a failed upstream request is reported
111+
accurately instead of leaving database search unusable.
112+
113+
#### Trajectory and terminal rendering
114+
115+
- Synchronized typed trajectory positions with topology and bond snapshots in
116+
Large System Performance Mode.
117+
- Bounded decoded frame caches and refreshed bond snapshots without retaining an
118+
unbounded object graph during playback.
119+
- Reserved terminal columns beside the scrollbar so the right edge is visible.
120+
- Reflowed active full-screen terminal applications on font changes and repaired
121+
pre-existing tabs after hot reload, preventing CJK character loss.
122+
123+
#### Citation
124+
125+
- Updated the preferred CatGo citation to the published *Digital Discovery*
126+
article, DOI `10.1039/D6DD00273K`.
127+
128+
### Upgrade notes
129+
130+
- No project, workflow database, structure-file, or trajectory migration is
131+
required.
132+
- Existing Codex skills and MCP configuration are retained. CatGo's desktop MCP
133+
entry is isolated automatically; remove obsolete hand-written CatGo entries
134+
only if you previously added duplicates yourself.
135+
- Workflow deletion remains unavailable for tasks that are executing or whose
136+
remote job identity is unresolved. This is an intentional safety boundary.
137+
- Generated surface workflows contain a clean-slab relaxation node. Review slab
138+
constraints before submitting a newly generated DAG.
139+
- CatBot keeps attachment metadata in restored chat history but does not persist
140+
attachment bytes in browser storage. Reattach a file before asking a follow-up
141+
question that requires rereading it.
142+
- VS Code, Cursor, VSCodium, and Theia users should install the Marketplace or
143+
Open VSX build. A manually version-edited VSIX has no matching sidecar and is
144+
intentionally rejected instead of silently running a different backend.
145+
146+
### Included pull requests
147+
148+
- [#571](https://github.com/Hello-QM/catgo-LRG/pull/571) — Update the preferred
149+
citation to the published *Digital Discovery* article.
150+
- [#574](https://github.com/Hello-QM/catgo-LRG/pull/574) — Harden CatBot,
151+
workflow lifecycle and slab constraints, provider networking, large-system
152+
trajectories, and terminal resizing.
153+
- [#576](https://github.com/Hello-QM/catgo-LRG/pull/576) — Repair Windows local
154+
shells and working-directory synchronization, then harden the complete
155+
packaged CatBot runtime across supported desktop platforms.
156+
157+
### Downloads
158+
159+
- **Windows x86-64**`.msi` or `-setup.exe`
160+
- **macOS Apple Silicon** — Developer-ID signed `.dmg`
161+
- **Linux x86-64**`.deb` or `.rpm`
162+
- **Android**`CatGo-v*-android-universal.apk`
163+
- **iOS**[TestFlight beta](https://testflight.apple.com/join/FdHup5Hz)
164+
- **VS Code**`.vsix`
165+
- **Headless/HPC** — platform sidecars and `catgo-hpc-bundle.tar.gz`
166+
167+
### License and citation
168+
169+
CatGo 1.4.12 distributions use **AGPL-3.0-or-later**.
170+
171+
If CatGo contributes to your work, please include this acknowledgement and the
172+
preferred citation:
173+
174+
> This work used CatGo (https://app.catgo-ucsd.org).
175+
176+
Please cite DOI
177+
[`10.1039/D6DD00273K`](https://doi.org/10.1039/D6DD00273K).
178+
This request is not an additional condition of the AGPL license. Third-party
179+
materials retain their own terms. Historical AGPL grants remain in effect.
180+
181+
See the
182+
[CHANGELOG](https://github.com/Hello-QM/catgo-LRG/blob/main/CHANGELOG.md)
183+
for the complete release history.

.github/workflows/tauri-build.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ jobs:
350350
One window for the whole loop: **read almost any code's files → build & edit → run DFT / ML / MD → submit to HPC → analyse → publish.** Ships with the bundled backend server (MLP libraries excluded to keep the download lean).
351351
352352
### License and citation
353-
CatGo 1.4.11 distributions use **AGPL-3.0-or-later**.
353+
CatGo 1.4.12 distributions use **AGPL-3.0-or-later**.
354354
355355
If CatGo contributes to your work, please include this acknowledgement and the preferred citation:
356356
@@ -380,7 +380,8 @@ jobs:
380380
- **Analysis** — DOS / band / COHP, Brillouin zone, XRD, phase diagrams, Gibbs & volcano plots
381381
- Built-in xTB / EMT calculators · OPTIMADE & PubChem search · HD render & trajectory video export
382382
383-
### New in 1.4.11
383+
### New in 1.4.12
384+
- **Packaged backends start reliably on Linux and Windows** — Linux bundles one ABI-compatible conda C++ runtime, while Windows Campaign cold starts are verified with complete process-tree cleanup.
384385
- **Installed CatBot is complete across supported desktops** — Claude, Codex, and Gemini discovery, attachments, voice, Skills, MCP tools, structures, workflows, and Campaigns are covered by packaged-runtime smoke tests.
385386
- **Windows terminal and Campaign workflows are reliable** — native shell selection, working-directory synchronization, GUI PATH recovery, and frozen Campaign dispatch use the correct runtime.
386387
- **Surface workflows relax slabs and preserve constraints** — clean-slab optimization precedes adsorption branches, with exact frozen atoms inherited by geometry and frequency steps.
@@ -563,7 +564,7 @@ jobs:
563564
run: bash scripts/ensure-release-body.sh "$CATGO_RELEASE_TAG"
564565

565566
- name: Finalize canonical release body
566-
if: env.CATGO_RELEASE_TAG == 'v1.4.11'
567+
if: env.CATGO_RELEASE_TAG == 'v1.4.12'
567568
env:
568569
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
569570
run: bash scripts/ensure-release-body.sh "$CATGO_RELEASE_TAG"

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [1.4.12] - 2026-08-25
6+
7+
### Fixed
8+
9+
- **Linux packaged backend startup** — PyInstaller now bundles the coherent conda `libstdc++`/`libgcc` pair and verifies its CXXABI/GLIBCXX coverage, preventing conda ICU from loading against Ubuntu 22.04's older C++ runtime.
10+
- **Windows frozen Campaign verification** — packaged Campaign creation receives a realistic cold-start timeout, and smoke-test cleanup terminates the complete PyInstaller process tree without masking the original failure behind a locked log file.
11+
512
## [1.4.11] - 2026-08-25
613

714
### Added

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cff-version: 1.2.0
22
message: If CatGo contributes to your work, please acknowledge and cite it as described below. This request is not an additional condition of AGPL-3.0-or-later.
3-
version: 1.4.11
3+
version: 1.4.12
44
title: CatGo
55
license: AGPL-3.0-or-later
66
license-url: https://github.com/Hello-QM/catgo-LRG/blob/main/license

extensions/rust-wasm/CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cff-version: 1.2.0
22
message: If CatGo contributes to your work, please acknowledge and cite it as described below. This request is not an additional condition of AGPL-3.0-or-later.
3-
version: 1.4.11
3+
version: 1.4.12
44
title: CatGo
55
license: AGPL-3.0-or-later
66
license-url: https://github.com/Hello-QM/catgo-LRG/blob/main/license

extensions/vscode/CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cff-version: 1.2.0
22
message: If CatGo contributes to your work, please acknowledge and cite it as described below. This request is not an additional condition of AGPL-3.0-or-later.
3-
version: 1.4.11
3+
version: 1.4.12
44
title: CatGo
55
license: AGPL-3.0-or-later
66
license-url: https://github.com/Hello-QM/catgo-LRG/blob/main/license

extensions/vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "catgo",
33
"displayName": "CatGo",
44
"description": "3D viewer for crystal structures, molecules and MD / optimization trajectories — reads the file formats of VASP, Quantum ESPRESSO, CP2K, ABACUS, ORCA, Gaussian, CASTEP, SIESTA, OpenMX, LAMMPS and ASE: POSCAR/CONTCAR · CIF · XYZ/extXYZ · mol2 · PDB · vasprun.xml · OUTCAR · XDATCAR · .traj · HDF5 · cube/CHGCAR isosurfaces. Cross-cell PBC bond rendering, moyo space-group + Wyckoff symmetry, trajectory scrubbing with energy/force overlays, themes that follow VS Code. Right-click → Render, or Ctrl/Cmd+Shift+V.",
5-
"version": "1.4.11",
5+
"version": "1.4.12",
66
"license": "AGPL-3.0-or-later",
77
"publisher": "Guangsheng",
88
"icon": "icon.png",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"homepage": "https://github.com/Hello-QM/catgo-LRG",
55
"repository": "https://github.com/Hello-QM/catgo-LRG",
66
"license": "AGPL-3.0-or-later",
7-
"version": "1.4.11",
7+
"version": "1.4.12",
88
"type": "module",
99
"packageManager": "pnpm@10.28.2",
1010
"bugs": "https://github.com/Hello-QM/catgo-LRG/issues",

scripts/__tests__/docs-citation-license.test.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ test('CITATION.cff carries the exact non-binding citation request', () => {
4848
assert.equal(message, CITATION_REQUEST)
4949
assert.match(cff, new RegExp(
5050
`^cff-version: 1\\.2\\.0\\nmessage: ${escapeRegExp(CITATION_REQUEST)}\\n` +
51-
'version: 1\\.4\\.11\\ntitle: CatGo\\nlicense: AGPL-3\\.0-or-later\\n' +
51+
'version: 1\\.4\\.12\\ntitle: CatGo\\nlicense: AGPL-3\\.0-or-later\\n' +
5252
'license-url: https://github\\.com/Hello-QM/catgo-LRG/blob/main/license$',
5353
'm',
5454
))

scripts/__tests__/license-policy.test.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ const licenseClaimInventory = {
158158
'.github/release-notes/v1.4.9.md',
159159
'.github/release-notes/v1.4.10.md',
160160
'.github/release-notes/v1.4.11.md',
161+
'.github/release-notes/v1.4.12.md',
161162
'.github/workflows/tauri-build.yml',
162163
],
163164
historicalOnly: [
@@ -296,7 +297,7 @@ test('canonical citation file requests citation without adding an AGPL condition
296297
assert.equal(existsSync(resolve(ROOT, 'citation.cff')), false)
297298
const text = read('CITATION.cff')
298299
assert.match(text, /^cff-version: 1\.2\.0$/m)
299-
assert.match(text, /^version: 1\.4\.11$/m)
300+
assert.match(text, /^version: 1\.4\.12$/m)
300301
assert.match(text, /^license: AGPL-3\.0-or-later$/m)
301302
assert.match(text, /^license-url: https:\/\/github\.com\/Hello-QM\/catgo-LRG\/blob\/main\/license$/m)
302303
assert.match(text, /CatGo: Bridging CLI Coding Agents/)

0 commit comments

Comments
 (0)