From 4f1def40f68e2d48f52f80ef7fb91afd7969d4b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 09:50:28 +0000 Subject: [PATCH] ci: release packages --- .changeset/acp-login-auth-method.md | 5 -- .changeset/catalog-and-batch-robustness.md | 5 -- .changeset/codex-login-declared-efforts.md | 5 -- .changeset/dynamic-workflow-output-schema.md | 5 -- .changeset/login-cancel-and-provider-id.md | 5 -- .changeset/login-effort-persists.md | 5 -- .changeset/login-effort-reaches-disk.md | 5 -- .changeset/login-keeps-provider-on-cancel.md | 5 -- .changeset/login-url-scheme-guard.md | 5 -- .changeset/multi-provider-login-picker.md | 5 -- .changeset/provider-neutral-login-platform.md | 8 --- .changeset/workflow-blank-items-followups.md | 5 -- .changeset/workflow-ignores-empty-items.md | 5 -- .../workflow-queued-rows-not-stalled.md | 5 -- .../workflow-retry-keeps-output-schema.md | 5 -- .changeset/workflow-run-correlation.md | 5 -- .changeset/workflow-running-row-spinner.md | 5 -- ...workflow-size-guideline-and-kill-switch.md | 5 -- .changeset/workflow-subagent-caps.md | 5 -- .changeset/workflow-warning-wraps.md | 5 -- .changeset/workflow-work-and-idle-column.md | 5 -- apps/pythinker-code/CHANGELOG.md | 50 +++++++++++++++++++ apps/pythinker-code/package.json | 2 +- apps/vscode/CHANGELOG.md | 7 +++ apps/vscode/package.json | 2 +- packages/node-sdk/CHANGELOG.md | 8 +++ packages/node-sdk/package.json | 2 +- 27 files changed, 68 insertions(+), 111 deletions(-) delete mode 100644 .changeset/acp-login-auth-method.md delete mode 100644 .changeset/catalog-and-batch-robustness.md delete mode 100644 .changeset/codex-login-declared-efforts.md delete mode 100644 .changeset/dynamic-workflow-output-schema.md delete mode 100644 .changeset/login-cancel-and-provider-id.md delete mode 100644 .changeset/login-effort-persists.md delete mode 100644 .changeset/login-effort-reaches-disk.md delete mode 100644 .changeset/login-keeps-provider-on-cancel.md delete mode 100644 .changeset/login-url-scheme-guard.md delete mode 100644 .changeset/multi-provider-login-picker.md delete mode 100644 .changeset/provider-neutral-login-platform.md delete mode 100644 .changeset/workflow-blank-items-followups.md delete mode 100644 .changeset/workflow-ignores-empty-items.md delete mode 100644 .changeset/workflow-queued-rows-not-stalled.md delete mode 100644 .changeset/workflow-retry-keeps-output-schema.md delete mode 100644 .changeset/workflow-run-correlation.md delete mode 100644 .changeset/workflow-running-row-spinner.md delete mode 100644 .changeset/workflow-size-guideline-and-kill-switch.md delete mode 100644 .changeset/workflow-subagent-caps.md delete mode 100644 .changeset/workflow-warning-wraps.md delete mode 100644 .changeset/workflow-work-and-idle-column.md diff --git a/.changeset/acp-login-auth-method.md b/.changeset/acp-login-auth-method.md deleted file mode 100644 index afde0ee4..00000000 --- a/.changeset/acp-login-auth-method.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/.changeset/catalog-and-batch-robustness.md b/.changeset/catalog-and-batch-robustness.md deleted file mode 100644 index 63e0f23b..00000000 --- a/.changeset/catalog-and-batch-robustness.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/codex-login-declared-efforts.md b/.changeset/codex-login-declared-efforts.md deleted file mode 100644 index 4dc329e6..00000000 --- a/.changeset/codex-login-declared-efforts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/dynamic-workflow-output-schema.md b/.changeset/dynamic-workflow-output-schema.md deleted file mode 100644 index cbe842ac..00000000 --- a/.changeset/dynamic-workflow-output-schema.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/.changeset/login-cancel-and-provider-id.md b/.changeset/login-cancel-and-provider-id.md deleted file mode 100644 index 68fa5b12..00000000 --- a/.changeset/login-cancel-and-provider-id.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/login-effort-persists.md b/.changeset/login-effort-persists.md deleted file mode 100644 index 25a0cf45..00000000 --- a/.changeset/login-effort-persists.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/login-effort-reaches-disk.md b/.changeset/login-effort-reaches-disk.md deleted file mode 100644 index dda8f6fa..00000000 --- a/.changeset/login-effort-reaches-disk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/login-keeps-provider-on-cancel.md b/.changeset/login-keeps-provider-on-cancel.md deleted file mode 100644 index 8819a7c7..00000000 --- a/.changeset/login-keeps-provider-on-cancel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/login-url-scheme-guard.md b/.changeset/login-url-scheme-guard.md deleted file mode 100644 index 914b9c2a..00000000 --- a/.changeset/login-url-scheme-guard.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/multi-provider-login-picker.md b/.changeset/multi-provider-login-picker.md deleted file mode 100644 index 3b85e88b..00000000 --- a/.changeset/multi-provider-login-picker.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -`pythinker login` now opens a provider picker instead of going straight to one provider, and accepts `--provider ` 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. diff --git a/.changeset/provider-neutral-login-platform.md b/.changeset/provider-neutral-login-platform.md deleted file mode 100644 index d460d0ad..00000000 --- a/.changeset/provider-neutral-login-platform.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@pythoughts/pythinker-code-sdk": minor -"@pythoughts/pythinker-code": minor ---- - -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. - -Logging in is an API key, a models.dev catalog provider, or OpenAI Codex OAuth. "Is the user logged in" is now a single predicate over configured providers with a usable credential, shared by the CLI, the VS Code extension and the ACP adapter. `/feedback` opens the issue tracker. diff --git a/.changeset/workflow-blank-items-followups.md b/.changeset/workflow-blank-items-followups.md deleted file mode 100644 index 2580bdb7..00000000 --- a/.changeset/workflow-blank-items-followups.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-ignores-empty-items.md b/.changeset/workflow-ignores-empty-items.md deleted file mode 100644 index 820ec412..00000000 --- a/.changeset/workflow-ignores-empty-items.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-queued-rows-not-stalled.md b/.changeset/workflow-queued-rows-not-stalled.md deleted file mode 100644 index d285a7ae..00000000 --- a/.changeset/workflow-queued-rows-not-stalled.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-retry-keeps-output-schema.md b/.changeset/workflow-retry-keeps-output-schema.md deleted file mode 100644 index 68699c75..00000000 --- a/.changeset/workflow-retry-keeps-output-schema.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-run-correlation.md b/.changeset/workflow-run-correlation.md deleted file mode 100644 index 6d453fa6..00000000 --- a/.changeset/workflow-run-correlation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/.changeset/workflow-running-row-spinner.md b/.changeset/workflow-running-row-spinner.md deleted file mode 100644 index 81139e21..00000000 --- a/.changeset/workflow-running-row-spinner.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-size-guideline-and-kill-switch.md b/.changeset/workflow-size-guideline-and-kill-switch.md deleted file mode 100644 index aeb193c4..00000000 --- a/.changeset/workflow-size-guideline-and-kill-switch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/.changeset/workflow-subagent-caps.md b/.changeset/workflow-subagent-caps.md deleted file mode 100644 index f2ff9cc4..00000000 --- a/.changeset/workflow-subagent-caps.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/.changeset/workflow-warning-wraps.md b/.changeset/workflow-warning-wraps.md deleted file mode 100644 index d4f9730d..00000000 --- a/.changeset/workflow-warning-wraps.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": patch ---- - -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. diff --git a/.changeset/workflow-work-and-idle-column.md b/.changeset/workflow-work-and-idle-column.md deleted file mode 100644 index bb6dc42f..00000000 --- a/.changeset/workflow-work-and-idle-column.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@pythoughts/pythinker-code": minor ---- - -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. diff --git a/apps/pythinker-code/CHANGELOG.md b/apps/pythinker-code/CHANGELOG.md index b098ef93..9e723aa1 100644 --- a/apps/pythinker-code/CHANGELOG.md +++ b/apps/pythinker-code/CHANGELOG.md @@ -1,5 +1,55 @@ # @pythoughts/pythinker-code +## 0.11.0 + +### Minor Changes + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - `pythinker login` now opens a provider picker instead of going straight to one provider, and accepts `--provider ` 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. + +- [#34](https://github.com/Pythoughts-labs/pythinker-code/pull/34) [`42da384`](https://github.com/Pythoughts-labs/pythinker-code/commit/42da384cb36d29ecf0cc147f753790e022e13709) - 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. + + Logging in is an API key, a models.dev catalog provider, or OpenAI Codex OAuth. "Is the user logged in" is now a single predicate over configured providers with a usable credential, shared by the CLI, the VS Code extension and the ACP adapter. `/feedback` opens the issue tracker. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +### Patch Changes + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + +- [#32](https://github.com/Pythoughts-labs/pythinker-code/pull/32) [`a504a82`](https://github.com/Pythoughts-labs/pythinker-code/commit/a504a820c4d9db14e213f4a021c86b048c4b916d) - 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. + ## 0.10.0 ### Minor Changes diff --git a/apps/pythinker-code/package.json b/apps/pythinker-code/package.json index 73276637..81057e60 100644 --- a/apps/pythinker-code/package.json +++ b/apps/pythinker-code/package.json @@ -1,6 +1,6 @@ { "name": "@pythoughts/pythinker-code", - "version": "0.10.0", + "version": "0.11.0", "description": "The Starting Point for Next-Gen Agents", "license": "MIT", "author": "Pythoughts", diff --git a/apps/vscode/CHANGELOG.md b/apps/vscode/CHANGELOG.md index fa63a55e..c4a9c101 100644 --- a/apps/vscode/CHANGELOG.md +++ b/apps/vscode/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.8.5 + +### Patch Changes + +- Updated dependencies [[`42da384`](https://github.com/Pythoughts-labs/pythinker-code/commit/42da384cb36d29ecf0cc147f753790e022e13709)]: + - @pythoughts/pythinker-code-sdk@0.12.0 + ## 0.8.4 ### Patch Changes diff --git a/apps/vscode/package.json b/apps/vscode/package.json index cb3975d3..f0a9a253 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -3,7 +3,7 @@ "publisher": "pythoughts", "displayName": "Pythinker Code", "description": "Pythinker Code extension for VS Code", - "version": "0.8.4", + "version": "0.8.5", "private": true, "license": "Apache-2.0", "type": "module", diff --git a/packages/node-sdk/CHANGELOG.md b/packages/node-sdk/CHANGELOG.md index 2880f611..7873dde8 100644 --- a/packages/node-sdk/CHANGELOG.md +++ b/packages/node-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # @pythoughts/pythinker-code-sdk +## 0.12.0 + +### Minor Changes + +- [#34](https://github.com/Pythoughts-labs/pythinker-code/pull/34) [`42da384`](https://github.com/Pythoughts-labs/pythinker-code/commit/42da384cb36d29ecf0cc147f753790e022e13709) - 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. + + Logging in is an API key, a models.dev catalog provider, or OpenAI Codex OAuth. "Is the user logged in" is now a single predicate over configured providers with a usable credential, shared by the CLI, the VS Code extension and the ACP adapter. `/feedback` opens the issue tracker. + ## 0.11.0 ### Minor Changes diff --git a/packages/node-sdk/package.json b/packages/node-sdk/package.json index 5a8531da..cbc2eda1 100644 --- a/packages/node-sdk/package.json +++ b/packages/node-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@pythoughts/pythinker-code-sdk", - "version": "0.11.0", + "version": "0.12.0", "private": true, "description": "TypeScript SDK for the Pythinker Code Agent", "license": "MIT",