@@ -4,6 +4,68 @@ All notable changes to Gajae Code App are documented in this file. Current and
44future desktop and server artifacts are published only through
55[ GitHub Releases] ( https://github.com/devswha/gajae-code-app/releases ) .
66
7+ ## 2.0.0-beta.8 (2026-09-03)
8+
9+ Same-day follow-up to beta.7, driven by first-install testing on a clean
10+ account. The macOS image published with beta.7 said "damaged and can't be
11+ opened" once installed; it was replaced, and the root cause is fixed here.
12+
13+ ### Packaging
14+
15+ - ** The beta.7 "damaged" image, explained and fixed.** The bundled runtime
16+ publishes a Hangul bin alias (` node_modules/.bin/가재씨 ` ); hdiutil's default
17+ HFS+ image stores that name in NFD while the code signature sealed NFC, so
18+ the app that verified on its own mount failed the seal check once Finder
19+ copied it to /Applications. The payload builder now drops non-ASCII bin
20+ links and refuses any other non-ASCII path, the DMG is built as APFS, and
21+ the DMG builder, the CI smoke and the documented acceptance verify a copy
22+ taken out of the mount — the check that would have caught it.
23+ - The release workflow can now sign, notarize and staple the image on the
24+ runner when the ` release ` environment carries the Developer ID secrets;
25+ without them it builds the ad-hoc image as before.
26+ - README added; the website's media is replaced with screenshots of the
27+ current release, and its first-launch instructions reflect notarization.
28+
29+ ### Desktop
30+
31+ - ** Sign-in and other external links actually open in the packaged app.**
32+ The webview is the server's loopback origin, where neither Tauri IPC nor
33+ ` window.open ` reach the outside, so "Open sign-in link" did nothing. https
34+ links now travel through the sidecar (new ` POST /api/system/open-url ` ), and
35+ every ` target="_blank" ` anchor routes the same way.
36+ - A sign-in completed through an older attempt's link fails as a named state
37+ mismatch with a "use the link shown now" message instead of a generic
38+ error. The model is told it runs inside the app: no ` gjc ` CLI to invoke,
39+ no ` ~/.gjc ` to hand-edit, that configuration lives in Settings.
40+
41+ ### Browser tool
42+
43+ - With no app-managed Chromium, an agent browser call used to end in a bare
44+ error. The tool now asks through a card: download Chrome for Testing once
45+ and continue, or decline and hear where to install it later (Browser panel
46+ or Settings → Automation).
47+
48+ ### Sessions and chat
49+
50+ - A model chosen for a new session stays with that session (first-turn pin);
51+ the global default no longer hijacks a resumed session.
52+ - The model picker dims providers nobody has signed in to (with a sign-in
53+ hint), keeps a search field, and shows reasoning levels whenever the
54+ runtime can answer.
55+ - A background session's stream deltas merge into one message — the
56+ "one or two words per line, scroll stuck" report on returning to a
57+ session.
58+ - The Changes tab's Last-turn scope sees history that arrives after it
59+ opened, without a click.
60+ - ** Tasks tab** : the session's live todo list in the workspace panel.
61+ - ** Copy debug info** in the session menu: DB row, transcript tail and log
62+ tails in one paste, for bug reports.
63+ - An empty workspace is one line and one action ("Add a project"); the Work
64+ section appears only when it has something to report; the primary button
65+ renders only with projects (no dead third copy of Add a project), and
66+ "New work item" on the fresh screen lands the cursor in the composer;
67+ the rails sit one tonal step below the stage.
68+
769## 2.0.0-beta.7 (2026-09-03)
870
971The first release under the MIT license, and the first shipped as a
0 commit comments