Skip to content

ci: release packages - #130

Open
pythinker-release-bot[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

ci: release packages#130
pythinker-release-bot[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@pythinker-release-bot

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@pymodel/pythinker-code@0.37.0

Minor Changes

  • #129 55ffae4 Thanks @elkaix! - Activate multiple skills in a single prompt. Type / after whitespace to insert a skill token; all referenced skills run with the prompt as one turn (and undo as one unit).

  • #129 55ffae4 Thanks @elkaix! - Add the /tower slash command to orchestrate multiple agents iterating on one repo in parallel — you act as the control tower while worker agents execute missions in their own git worktrees. Run /tower to start.

Patch Changes

  • #129 55ffae4 Thanks @elkaix! - Keep pasted image and video attachments available in session history, and clean up temporary uploads automatically.

  • #129 55ffae4 Thanks @elkaix! - Fix Gemini tool-calling sessions failing on follow-up requests: preserve the tool-call thought signature and keep trailing user text before function results.

  • #129 55ffae4 Thanks @elkaix! - Fix UTF-8 text files containing Chinese or emoji being misdetected as binary, so log files preview correctly in the web UI.

  • #129 55ffae4 Thanks @elkaix! - Print the full pythinker --resume command after /fork and copy it to the clipboard, so the fork can be entered directly from a new CLI process.

  • #129 55ffae4 Thanks @elkaix! - Warn in the footer while a typed /goal objective exceeds the 4000-character limit, and restore the input instead of losing it when an over-limit objective is rejected. The error message now suggests putting long content in a file and referencing the file path.

  • #129 55ffae4 Thanks @elkaix! - Fix several seconds of startup lag: the global search index (used only by the web UI's search) was being opened and synced in every terminal session, including ones that never search. It now loads on demand, so interactive startup stays fast.

  • #129 55ffae4 Thanks @elkaix! - Fix an [unexpected] Error2: Model "<alias>" is not configured in config.toml error printed on startup when a restored session references a model that is no longer configured (e.g. after logging out of the managed Pythinker Code account). Media tool registration now degrades gracefully instead of throwing from the agent.status.updated listener.

  • #129 55ffae4 Thanks @elkaix! - Persist the token counting ledger (token_counting.measured / truncated / rebased) to the wire journal, so the displayed context size keeps its measured value after archiving and unarchiving a session (or any close → resume) instead of dropping to a smaller estimate until the next LLM call.

  • #129 55ffae4 Thanks @elkaix! - Queue slash skill commands entered while the agent is busy instead of rejecting them with "Cannot / while streaming" — they now behave exactly like normal input: queued visibly by default, and Ctrl-S steers them into the running turn as real skill activations.

  • #129 55ffae4 Thanks @elkaix! - On the legacy engine, plugin MCP server changes (install / enable / disable / remove / reload) now apply to open sessions immediately, and an MCP server OAuth sign-in or credential reset automatically refreshes the affected sessions instead of leaving them stuck until a manual reconnect; a connection that fails mid-session for auth reasons is now reported as needing sign-in rather than as a generic failure.

    @pymodel/pythinker-code-sdk: the MCP management surface is now backed by a unified, source-tagged registry — listMcpServers also covers plugin-declared servers (read-only, with their effective config) and returns source / origin / mutable markers; new getMcpServer for a single effective config; testMcpServerConfig probes an unsaved inline config; sessions can connect a server at runtime via addMcpServer with an optional persist flag; reconnectMcpServer accepts an optional replacement config and otherwise re-resolves the current config instead of reusing a stale snapshot; listMcpServerAuthStatuses accepts cwd / verify (online probe) and distinguishes dead grants via the new oauth-expired state; stored OAuth grants now record their absolute expiry and are refreshed proactively and single-flight per credential. Session status entries and read-only management entries redact secret-bearing stdio env / remote headers values to key lists, and concurrent logins for the same credential join a single browser flow. A new app-level inspection, inspectAppMcpServers, reports every server's effective config and real (probe-verified) authorization state — including plugin servers and runtime-name collisions — and the OAuth flow RPCs have locator-addressed variants (authenticateAppMcpServer / resetAppMcpServerAuth) so plugin servers can be signed in and reset directly.

  • #129 55ffae4 Thanks @elkaix! - Add pythinker web --web-title <title> to set a custom browser tab title for the web UI instance, so multiple instances on different machines are easy to tell apart; without the flag the tab title shows the active workspace's directory name.

@pymodel/pythinker-code-sdk@0.19.0

Minor Changes

  • #129 55ffae4 Thanks @elkaix! - Daemon file references no longer persist a materialization path: the daemon-file URL builder takes only a file id, and the parsed reference no longer carries a path field. The display path is derived from the session media store at read time, so a session fork or home relocation can no longer stale a persisted reference. Urls with a legacy ?path= query still parse.

  • #129 55ffae4 Thanks @elkaix! - Add session.promptWithSkills(input, skills) to submit one prompt with one or more skill activations bundled into the same user message — one turn, one undo unit (v2 engine only; rejects on the v1 engine).

  • #129 55ffae4 Thanks @elkaix! - Add uploadFile for uploading media to the engine's file store and referencing it from prompts, plus an optional promptId on prompt submissions for correlating them with turn-started events. Both require the v2 harness.

  • #129 55ffae4 Thanks @elkaix! - On the legacy engine, plugin MCP server changes (install / enable / disable / remove / reload) now apply to open sessions immediately, and an MCP server OAuth sign-in or credential reset automatically refreshes the affected sessions instead of leaving them stuck until a manual reconnect; a connection that fails mid-session for auth reasons is now reported as needing sign-in rather than as a generic failure.

    @pymodel/pythinker-code-sdk: the MCP management surface is now backed by a unified, source-tagged registry — listMcpServers also covers plugin-declared servers (read-only, with their effective config) and returns source / origin / mutable markers; new getMcpServer for a single effective config; testMcpServerConfig probes an unsaved inline config; sessions can connect a server at runtime via addMcpServer with an optional persist flag; reconnectMcpServer accepts an optional replacement config and otherwise re-resolves the current config instead of reusing a stale snapshot; listMcpServerAuthStatuses accepts cwd / verify (online probe) and distinguishes dead grants via the new oauth-expired state; stored OAuth grants now record their absolute expiry and are refreshed proactively and single-flight per credential. Session status entries and read-only management entries redact secret-bearing stdio env / remote headers values to key lists, and concurrent logins for the same credential join a single browser flow. A new app-level inspection, inspectAppMcpServers, reports every server's effective config and real (probe-verified) authorization state — including plugin servers and runtime-name collisions — and the OAuth flow RPCs have locator-addressed variants (authenticateAppMcpServer / resetAppMcpServerAuth) so plugin servers can be signed in and reset directly.

Patch Changes

  • #129 55ffae4 Thanks @elkaix! - Fix Gemini tool-calling sessions failing on follow-up requests: preserve the tool-call thought signature and keep trailing user text before function results.

pythinker@0.9.3

Patch Changes

@pymodel/acp-adapter@0.3.10

Patch Changes

@pymodel/agent-core@0.15.9

Patch Changes

  • #129 55ffae4 Thanks @elkaix! - Include the file-reference workaround in the GOAL_OBJECTIVE_TOO_LONG error message so clients surface how to submit long objectives.

@pymodel/agent-core-v2@0.4.1

Patch Changes

  • #129 55ffae4 Thanks @elkaix! - Include the file-reference workaround in the GOAL_OBJECTIVE_TOO_LONG error message so clients surface how to submit long objectives.

@pymodel/pi-tui@0.84.4

Patch Changes

  • #129 55ffae4 Thanks @elkaix! - Add an opt-in inline slash autocomplete trigger that fires after whitespace mid-input and at the start of subsequent editor lines.

@pythinker-release-bot

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@pkg-pr-new

pkg-pr-new Bot commented Aug 19, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@pymodel/pythinker-code@0495d8a
npx https://pkg.pr.new/@pymodel/pythinker-code@0495d8a

commit: 0495d8a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants