Skip to content

ci: release packages - #301

Merged
elkaix merged 3 commits into
mainfrom
changeset-release/main
Sep 8, 2026
Merged

elkaix merged 3 commits into
mainfrom
changeset-release/main

Conversation

@pythinker-release-bot

@pythinker-release-bot pythinker-release-bot Bot commented Sep 8, 2026 •

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@1.13.0

Minor Changes

  • #299 62ae31b Thanks @elkaix! - Config changes now refresh the model picker and setup screen live, a dead default model is repaired in your config.toml to the best available model with a notice, and provider configuration errors fail fast instead of retrying for minutes.

  • #300 ae36917 Thanks @elkaix! - The model you pick in the model picker is now remembered and restored when your default model becomes unavailable, and equally capable models now prefer the newer version.

  • #298 0f522b8 Thanks @elkaix! - Refresh the skill catalog automatically when user-level skills are created, changed, or deleted while Pythinker Code is running.

Patch Changes

  • #298 0f522b8 Thanks @elkaix! - Fix a crash when a model config entry lacks its model name.

  • #298 0f522b8 Thanks @elkaix! - Add environment variable overrides for the background Bash task timeout and the print-mode background policy.

  • #298 0f522b8 Thanks @elkaix! - Fix slow resume replay for sessions with many cron turns.

  • #298 0f522b8 Thanks @elkaix! - Fix recent sessions missing from the session list when the sessions folder contains stray files.

  • #298 0f522b8 Thanks @elkaix! - Warn in print mode when an untrusted folder skips project-level MCP servers. Workspace trust info now reports project servers that override same-named user entries as trust-gated.

@pymodel/pythinker-desktop@0.11.0

Minor Changes

  • #299 62ae31b Thanks @elkaix! - Config changes now refresh the model picker and setup screen live, a dead default model is repaired in your config.toml to the best available model with a notice, and provider configuration errors fail fast instead of retrying for minutes.

  • #300 ae36917 Thanks @elkaix! - The model you pick in the model picker is now remembered and restored when your default model becomes unavailable, and equally capable models now prefer the newer version.

  • #298 0f522b8 Thanks @elkaix! - Refresh the skill catalog automatically when user-level skills are created, changed, or deleted while Pythinker Code is running.

Patch Changes

  • #298 0f522b8 Thanks @elkaix! - Fix a crash when a model config entry lacks its model name.

  • #298 0f522b8 Thanks @elkaix! - Add environment variable overrides for the background Bash task timeout and the print-mode background policy.

  • #298 0f522b8 Thanks @elkaix! - Fix slow resume replay for sessions with many cron turns.

  • #298 0f522b8 Thanks @elkaix! - Fix recent sessions missing from the session list when the sessions folder contains stray files.

  • #298 0f522b8 Thanks @elkaix! - Warn in print mode when an untrusted folder skips project-level MCP servers. Workspace trust info now reports project servers that override same-named user entries as trust-gated.

@pymodel/pythinker-code-sdk@0.19.2

Patch Changes

  • #298 0f522b8 Thanks @elkaix! - Warn in print mode when an untrusted folder skips project-level MCP servers. Workspace trust info now reports project servers that override same-named user entries as trust-gated.

@pythinker-release-bot

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@pkg-pr-new

pkg-pr-new Bot commented Sep 8, 2026 •

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

commit: ce945e1

@pythinker-release-bot

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 64500fc to fa09ee7 Compare September 8, 2026 18:33
@elkaix
elkaix enabled auto-merge (squash) September 8, 2026 19:21
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 8feeafc to c30f473 Compare September 8, 2026 19:21
@pythinker-release-bot

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@elkaix
elkaix merged commit 0ae4200 into main Sep 8, 2026
23 checks passed
@elkaix
elkaix deleted the changeset-release/main branch September 8, 2026 23:23
elkaix added a commit that referenced this pull request Sep 10, 2026
…ider (#302)

## Related Issue

Follow-up to #301 (release PR for @pymodel/pythinker-code@1.13.0). No
linked issue — maintainer-authored hygiene fixes surfaced during the
release loop.

## Problem

Two defects left behind by the release commit ce945e1:

1. The remote-control output test asserted the absence of a third setup
step with `/^\s*3\.\s/m` against **raw** CLI output.
`formatRemoteControlOutput` wraps step numbers in `chalk.bold.hex`
(`label()`), so any real third step renders as `
<ESC>[1m<ESC>[38;5;Nm3.<ESC>...` and the line-start anchor never matches
— the assertion cannot catch the regression it exists for (and its
previous form, a plain `not.toContain('3.')`, false-failed on the
`1.13.0` version banner).
2. The vitest 4.1.9 -> 4.1.11 security bump left `@vitest/coverage-v8`
pinned at 4.1.9. The installed coverage provider requires the same exact
vitest version and vitest warns that mixed provider/test-runner versions
are unsupported. Plain test runs do not exercise this path.

## What changed

- `apps/pythinker-code/test/cli/web/remote-control.test.ts`: moved the
third-step assertion below the existing ANSI/OSC stripping and
retargeted it to `plain`, so a styled `3.` step is caught after escapes
are removed. Verified by temporarily injecting a styled third step
through the same `label()` path — the test fails as required; reverted
afterwards.
- `package.json` + `pnpm-lock.yaml`: aligned `@vitest/coverage-v8` to
4.1.11; focused `--coverage` run loads the v8 provider with no
mixed-version warning.
- `flake.nix`: refreshed the `pnpmDeps` fixed-output hash for the
lockfile change.
- Restaged `dist-web/.web-bundle-manifest.json` (root `package.json` is
a web build input).

No changeset: nothing here changes published manifests or user-visible
behavior. No doc update needed.

## Checklist

- [x] I have read the
[CONTRIBUTING](https://github.com/PyModel/pythinker-code/blob/main/CONTRIBUTING.md)
document.
- [x] I have linked a related issue (external PRs: the issue must have a
maintainer's `/approve`). N/A — internal follow-up PR.
- [x] I have added tests that prove my feature works. Existing suite
covers the assertion; rejection of a styled third step proven by
temporary injection.
- [x] Ran `gen-changesets` skill, or this PR needs no changeset. Needs
none.
- [x] Ran `gen-docs` skill, or this PR needs no doc update. Needs none.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Tests**
- Improved validation of remote-control output, including complete URLs,
formatting cleanup, and expected setup-step visibility.

- **Chores**
- Updated web build metadata and project maintenance configuration to
keep generated assets and development workflows current.
- Refreshed development tooling configuration to support consistent
coverage reporting and reproducible builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
elkaix added a commit that referenced this pull request Oct 1, 2026
…ns (#353)

## Requirement or Bug

The release PR (#348) fails `build`, `test`, `nix build`, `Artifact
security` and the preview publish.

## Bug Reproduction Steps

1. Merge any PR with a changeset that names `@pymodel/pythinker-web`.
2. The Release workflow opens `ci: release packages`, which bumps
`apps/pythinker-web/package.json` `version`.
3. Every job that runs `check-web-assets.mjs` fails: "The committed web
bundle is stale".

## Root Cause

`vite.config.ts` compiles the web package version into the bundle
(`__PYTHINKER_WEB_VERSION__`), and `package.json` is a fingerprinted
build input. `changeset version` bumps it but nothing rebuilt
`dist-web`, so the committed bundle was genuinely stale. Earlier
releases (#301) were fixed by rebuilding by hand on the release branch.
Fundamental fix: `version:release` now runs `pnpm run build:web` after
`changeset version`, so the changesets action commits the rebuilt bundle
with the bump. The release job already installs dependencies and runs
`pnpm build` before this step.

Second, unrelated failure in the same run: `towerService.test.ts`
"leaves the roster untouched when another session owns the tower store"
asserted the order of two log lines written by two independent async
event handlers. It failed on CI when the order flipped. The test now
checks both lines without order and finds the payload by message.

## Code Changes

- `package.json`: `version:release` appends `&& pnpm run build:web`.
- `towerService.test.ts`: order-independent assertion.

## Behavior Changes and Affected Users

None for users. Release PRs now include the rebuilt `dist-web` whenever
a version that reaches the bundle changes; the release job takes about
one web build longer.

Verification:
- Simulated the bump locally: set the web version to `9.9.9`. The stale
check failed; after `pnpm run build:web` it passed, and the new version
appears in the bundle. Then I reverted.
- `towerService.test.ts` passes: 108 of 108.

## Checklist

- [x] I have read the
[CONTRIBUTING](https://github.com/PyModel/pythinker-code/blob/main/CONTRIBUTING.md)
document.
- [x] I have linked a related issue (external PRs: issue must have a
maintainer's `/approve`).
- [x] I have added tests that prove my feature works.
- [x] The behavior-change table above is complete, and every removed
behavior or flipped default is named in the changeset and either has an
escape hatch or was explicitly approved by a maintainer in this PR.
- [x] Ran `gen-changesets` skill, or this PR needs no changeset.
- [x] Ran `gen-docs` skill, or this PR needs no doc update.
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.

1 participant