Skip to content

Commit dba0dce

Browse files
committed
docs(changelog): sync 0.6.0-0.12.0 from apps/pythinker-code/CHANGELOG.md
1 parent 0e9c538 commit dba0dce

1 file changed

Lines changed: 125 additions & 0 deletions

File tree

docs/release-notes/changelog.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,131 @@ outline: 2
66

77
This page documents the changes in each Pythinker Code CLI release.
88

9+
## 0.12.0 (2026-08-07)
10+
11+
### Features
12+
13+
- Show the plan before a Dynamic Workflow runs, and let a good one be saved as a command
14+
- Let a Dynamic Workflow require structured output from its subagents. Passing `output_schema` makes each subagent return a validated object instead of free text, and a subagent that cannot satisfy the schema is reported separately from one that failed outright.
15+
- Let a Dynamic Workflow run its subagents on a different model than the agent orchestrating them. `DynamicWorkflow` accepts `model` and `effort` for every subagent in the call, and `/workflow model <alias>` sets that model for the session so an expensive orchestrator can hand mechanical work to a cheaper or faster one.
16+
- `pythinker login` now opens a provider picker instead of going straight to one provider, and accepts `--provider <id|name>` to skip it. The VS Code extension's sign-in offers the same providers, and both surfaces present the same thinking-effort levels for a given model.
17+
- Let a release declare a minimum supported version, so a client below it is offered the update without waiting for its staged rollout batch.
18+
- Add two ways to rein in Dynamic Workflow fan-out: `disableWorkflows` turns the tool off entirely, and `workflowSizeGuideline` sets an advisory ceiling that is mentioned to the model and warned about, on every surface, when a run exceeds it. Both are settable in config or by environment variable.
19+
- Give every Dynamic Workflow run an id and stamp it on the subagent events it produces, so a client can tell which run a given subagent belongs to when several are in flight.
20+
21+
### Bug Fixes
22+
23+
- Stop offering updates to versions that were never published: the update channel now advertises only the release that is actually available for download.
24+
- Stop offering an update with no build for the running platform, give every installer network call a timeout, expire a stale install lease instead of blocking updates forever, and say which version is installing and why a failed one stopped retrying.
25+
- Survive two malformed inputs that used to end a run. A catalog entry that is not an object is now dropped when the catalog is read, instead of reaching the provider picker and throwing past the bundled-catalog fallback that was meant to save the login. A non-finite subagent concurrency limit now falls back to the default: `NaN` passed every clamp, and each free-slot test against it was false, so the batch launched nothing and never finished.
26+
- Show the whole large-workflow warning in the editor extension. The line was truncated to the panel width, so in a narrow side panel the reader saw the opening words and no reason.
27+
- Keep a subagent on the model and effort its profile assigns when the subagent is resumed or retried, instead of reverting it to the main agent's model.
28+
- Show Dynamic Workflow member progress from the observed stage only, so a running subagent no longer sits at 99% for the rest of its run.
29+
- Ignore empty entries in a Dynamic Workflow's item list instead of rejecting the call. A trailing empty item used to fail argument validation, which discarded the whole workflow before any subagent started and forced the agent to send every prompt again. The dropped count is now reported with the results, and the launch panel counts only the subagents that will actually run.
30+
- Finish handling blank Dynamic Workflow items. A run that dropped one reported its results after a note explaining the drop, which made the whole result parse as unsupported and rendered a successful run as failed; the note now follows the results. A blank entry also no longer leaves a row queued forever with the header stuck below its total, and no longer pushes a full item list over the subagent cap and back into whole-call rejection.
31+
- Let `/yolo` and `/auto` be used in the VS Code extension before the first message is sent — the request now applies to the session that chat opens next instead of failing with "Could not change the permission mode."
32+
- Keep a Dynamic Workflow subagent's output schema when a provider rate limit forces its turn to be retried. The retried turn lost the schema, so the subagent answered in prose and the workflow reported it as completed rather than as a schema failure.
33+
- Stop a Dynamic Workflow row that has not started from reading as stalled. A queued row measured its silence from the launch of the whole run, so a long queue turned every waiting row amber and then red while nothing was wrong. A queued row now shows the same placeholder a finished one does, and a suspended row keeps its count without the alarm colours, because only a running row can stall.
34+
- Show a Dynamic Workflow's running rows with a spinning grey dot, so a working agent reads as motion rather than as a static dot the eye cannot tell from a finished one, and shimmer the Orchestrating label in periwinkle instead of grey.
35+
- Refuse a device authorization whose verification URL is not HTTPS. Every surface hands that URL to the host's "open externally" API, so a provider answering with `file:`, `javascript:`, or an installed application's own scheme had the agent launch it. The check runs where the response is parsed, so the terminal, the TUI, and the editor extension are all covered.
36+
- Keep the configured provider signed in when a login is abandoned. Backing out at the model picker, or a failure while fetching the model list, no longer clears the existing credentials, and dismissing the provider picker returns to the sign-in screen instead of reporting a failed login.
37+
- Write the thinking effort picked at login to disk. The apply step recorded the level, but the patch that saved the result listed everything except it, so an API-key login still reopened at the default effort. Choosing `off` now also clears a level a previous login left behind, which a patch that only merges could not do by omitting the key.
38+
- Save the thinking-effort level picked during login. Only an on/off flag was stored, so choosing low, medium, or xhigh reopened the session at high, and an OpenAI Codex login reopened at the model's maximum effort regardless of the choice.
39+
- Accept a provider's plain id for `--provider` at login, so a catalog provider no longer has to be named by its full display name, and stop a cancelled OpenAI Codex sign-in from holding the process open for the rest of its two-minute callback timeout. In the editor extension, signing in now shows one cancellable progress notification, a repeated sign-in joins the one already running instead of opening a second set of prompts, and a completed sign-in is no longer reported as failed when the status refresh behind it fails.
40+
- Offer a model's declared thinking-effort levels when signing in to OpenAI Codex. The picker previously fell back to low / medium / high regardless of what the model supports, disagreeing with the effort list recorded in the config it then wrote.
41+
42+
### Polish
43+
44+
- Bound subagent fan-out with hard caps: 128 subagents per call, 200 per session, and a nesting depth of 3. Nesting was previously unbounded, so a workflow that spawned workflows could grow without limit; past depth 3 the call now fails instead.
45+
- Replace the Dynamic Workflow progress bar with the two things it can actually know: how many tool calls each agent has made, and how long it has been silent. The old bar pinned every tool-using agent at 75% until it finished, so an agent working hard and one wedged for ten minutes looked identical. A row that goes quiet now turns amber, then red.
46+
- Show update availability and live download progress in the status row under the prompt, replacing the startup banner chip that was computed once and never refreshed.
47+
- Rename the ACP authentication method to reflect that login is multi-provider: it now reads "Log in with a provider" and explains that the provider is chosen in a terminal. Clients matching the previous wording will need updating.
48+
- Fix the Dynamic Workflow card showing `[object Object]`, phantom extra agent rows, and tool labels fused into streamed text when a workflow is called with object items.
49+
- Brighten the periwinkle accent in the VS Code extension's dark theme so inline code in chat is easier to read.
50+
51+
### Refactors
52+
53+
- Make the login platform layer provider-neutral. Model listing, capability derivation and the on-disk config shape are now one set of types shared by every login path, instead of living in a provider-specific module that other providers imported from; the duplicate copies of the capability derivation and the model-info parser are collapsed into one.
54+
55+
## 0.9.2 (2026-08-05)
56+
57+
### Bug Fixes
58+
59+
- Let `/yolo` and `/auto` take effect in the VS Code extension while the agent is running, and auto-approve the requests already waiting on screen.
60+
61+
## 0.9.0 (2026-08-05)
62+
63+
### Features
64+
65+
- Resolve a workspace's skills without opening a session, so an editor panel can list them before its first message.
66+
67+
### Bug Fixes
68+
69+
- Stop the fixed-layout TUI anchoring its first frames to the shell cursor, which pushed the panel border into scrollback.
70+
71+
### Polish
72+
73+
- Rename the managed OAuth provider so it is named after the platform that serves it rather than reading as a first-party service: the provider id is now `managed:kimi-code`, its models are aliased `kimi-code/*`, and its credentials are stored under `oauth/kimi-code`.
74+
- Add an SDK routine that imports a catalog provider and its models into the persisted config, and use it for the CLI provider import so both entry points preserve existing defaults the same way.
75+
76+
## 0.8.1 (2026-08-05)
77+
78+
### Bug Fixes
79+
80+
- Fix the native install script exiting immediately without installing anything when run the documented way, `curl -fsSL … | bash`, which also broke automatic background updates for native installs.
81+
- Report why an automatic update failed instead of failing silently: the installer's error output is now recorded and shown on the next update prompt, native installs on macOS and Linux pin the version the rollout picked, and update messages tell you to open a new terminal to apply the update.
82+
83+
## 0.8.0 (2026-08-04)
84+
85+
### Features
86+
87+
- Enable automatic updates for native installs on Windows: /update now installs the new version in the background instead of printing a manual command, and the installer safely replaces the running executable.
88+
89+
### Bug Fixes
90+
91+
- Fix Kimi and Moonshot models rejecting every request with an invalid tool schema error when a tool declares `anyOf` alongside its own type or properties.
92+
93+
### Other
94+
95+
- Remove the Pythinker Datasource plugin from the marketplace; its data gateway backend is not available, so every datasource query failed.
96+
- Improve performance and fix bugs.
97+
98+
## 0.7.0 (2026-08-04)
99+
100+
### Features
101+
102+
- Prepare verified Homebrew updates in the background and install them automatically on the next interactive launch.
103+
104+
### Bug Fixes
105+
106+
- Fix context compaction failing with provider "Invalid max_tokens" errors by capping requested completion tokens to the remaining context window and a safe output ceiling instead of the full context window size.
107+
- Fix Dynamic Workflow progress sticking at 90% during long streaming, show a Finalizing state once all delegated agents finish, and fix member row alignment at narrow widths.
108+
109+
## 0.6.2 (2026-08-04)
110+
111+
### Polish
112+
113+
- Clear the terminal before the install script's animated intro so earlier shell output no longer interleaves with the logo animation.
114+
- Restyle the browser OAuth sign-in confirmation pages for all providers to match the website's light design.
115+
116+
## 0.6.1 (2026-08-03)
117+
118+
### Bug Fixes
119+
120+
- Fix the CLI failing to start on Windows with "process.execve is unavailable" by using the spawn fallback instead of calling execve there.
121+
- Prompt for an API key when connecting a catalog provider whose environment variable is not set, instead of failing with "Environment variable is not set or is empty". Applies to `/login`, `/provider`, and `pythinker provider catalog add`, which now also accepts `--api-key <key>`.
122+
- Point the native install scripts at the published release assets.
123+
124+
### Polish
125+
126+
- Show a clear requirement message with the native-installer alternative when the CLI is launched on Node.js older than 26.4, instead of failing with a cryptic flag error.
127+
- Explain in `/update` and the startup update notice that Homebrew installs do not auto-update, and point to the native installer for automatic background updates.
128+
129+
## 0.6.0 (2026-08-03)
130+
131+
### Other
132+
133+
- Maintenance release with internal improvements and dependency updates.
9134
## 0.5.1 (2026-08-03)
10135

11136
### Other

0 commit comments

Comments
 (0)