Skip to content

Commit 82f72f5

Browse files
authored
Merge branch 'main' into changeset-release/main
2 parents af2ca81 + 17818ea commit 82f72f5

97 files changed

Lines changed: 5682 additions & 218 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/desktop-design-port.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": minor
3+
---
4+
5+
Match the desktop app's sidebar, collapse animation, empty-state visuals, and typography to the desktop design.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": minor
3+
---
4+
5+
Add a Desktop app section to web settings with automatic updates on by default, a manual update check, and a restart-to-update action.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Fix sessions failing to load with an invalid event journal error after questions or approvals were resolved.

.changeset/node-20-support.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Run on Node 20 and newer by only re-executing for FFI support on Node 26.4+.

.changeset/sdk-event-union.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code-sdk": major
3+
---
4+
5+
Add question, approval, and prompt lifecycle events to the SDK session event types.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Skip invalid sessions during listing instead of failing the whole list.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Highlight the update notice in the terminal status bar with the warning color.

.changeset/web-brand-refresh.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": minor
3+
---
4+
5+
Refresh the web UI accent color and show the animated mascot on workflow cards, the activity spinner, and the empty state.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Fix duplicated streamed transcript copies and lost paragraph breaks in the web UI.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Desktop Release
2+
3+
on:
4+
push:
5+
tags: ['desktop-v*']
6+
workflow_dispatch: {}
7+
8+
permissions:
9+
contents: write
10+
11+
concurrency:
12+
group: desktop-release-${{ github.ref }}
13+
cancel-in-progress: false
14+
15+
jobs:
16+
mac:
17+
runs-on: macos-15
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # pinned from v4
21+
with:
22+
fetch-depth: 0
23+
persist-credentials: true
24+
25+
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # pinned from v6
26+
27+
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # pinned from v6
28+
with:
29+
node-version-file: .nvmrc
30+
cache: pnpm
31+
32+
- run: pnpm install --frozen-lockfile
33+
34+
- name: Stamp desktop version for tag builds
35+
if: startsWith(github.ref, 'refs/tags/desktop-v')
36+
env:
37+
TAG_NAME: ${{ github.ref_name }}
38+
run: |
39+
export DESKTOP_VERSION="${TAG_NAME#desktop-v}"
40+
node -e 'const fs = require("node:fs"); const path = "apps/desktop/package.json"; const packageJson = JSON.parse(fs.readFileSync(path, "utf8")); packageJson.version = process.env.DESKTOP_VERSION; fs.writeFileSync(path, `${JSON.stringify(packageJson, null, 2)}\n`);'
41+
42+
- name: Build workspace
43+
run: pnpm --workspace-root run build
44+
45+
- name: Stage desktop runtime
46+
working-directory: apps/desktop
47+
run: node --import tsx scripts/stage-runtime.ts
48+
49+
# On a desktop-v* tag, --publish always creates or updates the draft-or-release
50+
# for that tag; contents: write makes GITHUB_TOKEN sufficient.
51+
# Without Developer ID signing secrets, electron-builder publishes an
52+
# ad-hoc/self-signed app. macOS auto-update will not accept unsigned updates,
53+
# but this still proves packaging and the feed shape.
54+
- name: Package and publish desktop release
55+
working-directory: apps/desktop
56+
run: pnpm exec electron-builder --mac dmg zip --publish always
57+
env:
58+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59+
CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
60+
CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
61+
APPLE_ID: ${{ secrets.APPLE_ID }}
62+
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
63+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
64+
65+
- name: Upload macOS artifacts for manual runs
66+
if: github.event_name == 'workflow_dispatch'
67+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pinned from v7
68+
with:
69+
name: desktop-macos
70+
path: |
71+
apps/desktop/dist/*.dmg
72+
apps/desktop/dist/*.zip
73+
apps/desktop/dist/latest-mac.yml
74+
if-no-files-found: error

0 commit comments

Comments
 (0)