Skip to content

Commit b2bf98a

Browse files
committed
docs(changelog): fold pending notes into 0.28.0 + document migration
The judge subagent, default-prompt redesign, and read-only-profile network/config-injection (RCE) guards merged to main in #43, but their CHANGELOG entries stayed under `## Unreleased` while `## 0.28.0` already existed (release.py promoted it during prep). Tagging v0.28.0 as-is would publish release notes that omit them. Move those entries into the 0.28.0 section across both lockstep changelog files as narrative bullets matching the section style; document the `.pythinker/AGENTS.md` loading change as a scoped breaking change with migration guidance in breaking-changes.md; and tighten the security bullet to cover the `git -c`/`--config-env`/`--exec-path` block. Also drop the now-stale `integrations.md` entry from the old-owner guard's skip_files (its old-owner reference was removed in #44). No shipped-code paths change, so changelog-entry-required exempts this PR and the emptied `## Unreleased` is intentional.
1 parent 6d6f2f7 commit b2bf98a

4 files changed

Lines changed: 10 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,6 @@ GitHub Releases page; `0.8.0` is the new starting line.
1515

1616
## Unreleased
1717

18-
### Changed
19-
20-
- **`.pythinker/AGENTS.md` is no longer loaded as project instructions.** Only `AGENTS.md`/`agents.md` from the project root down to the working directory are merged. Move any instructions kept solely in `.pythinker/AGENTS.md` to a root or directory-level `AGENTS.md`.
21-
22-
### Security
23-
24-
- **Read-only subagent profiles now block network shell commands.** The `read_only`/`plan`/`review`/`verify` permission profiles deny `curl`/`wget`/`ssh`/`git fetch` and similar network clients, so a read-only agent's no-web-tools intent cannot be bypassed through the Shell tool.
25-
2618
## 0.28.0 (2026-05-31)
2719

2820
### What changed in this release
@@ -35,6 +27,9 @@ GitHub Releases page; `0.8.0` is the new starting line.
3527
- **Redesigned startup welcome banner.** The banner now uses a cleaner footer-chip layout: the "What's new / Update available" chip sits on the panel's bottom border, the headline/strapline/help lines align beside the robot logo, and the info grid drops its vertical separator. The robot art and palette are unchanged.
3628
- **Terminal-aware rendering for minimal and CI terminals.** The shell UI adapts to the terminal — ASCII glyph fallbacks for `TERM=dumb` and legacy Windows code pages, reduced-motion mode (`PYTHINKER_REDUCED_MOTION`), and `NO_COLOR`/`CLICOLOR` support that strips color cleanly — so output stays readable in CI logs, SSH panes, and bare terminals.
3729
- **Windows updates avoid encoded PowerShell.** Native updates now launch the signed Inno installer directly with Restart Manager flags instead of a `powershell.exe -EncodedCommand` helper, reducing antivirus command-line heuristic false positives. Windows bootstrap installs use visible `/SILENT` progress instead of fully suppressed setup, and the installer build signs bundled PE files plus Inno's setup/uninstaller/temp copies when signing credentials are configured.
30+
- **New `judge` subagent and redesigned default prompts.** Adds an independent LLM-as-judge quality-gate subagent — a cheap single spot-checking pass for high-stakes deliverables, after deterministic gates — and rewrites the default agent, plan, and system prompts for clearer, more efficient guidance.
31+
- **`.pythinker/AGENTS.md` is no longer loaded as project instructions.** Only `AGENTS.md`/`agents.md` from the project root down to the working directory are merged. Move any instructions kept solely in `.pythinker/AGENTS.md` to a root or directory-level `AGENTS.md` (see breaking changes).
32+
- **Read-only subagent profiles block network and git config-injection shell commands.** The `read_only`/`plan`/`review`/`verify` permission profiles now deny network clients (`curl`/`wget`/`ssh`/`git fetch`) and unsafe `git -c`/`--config-env`/`--exec-path` options that can execute arbitrary commands (for example via `core.pager`/`core.sshCommand`), closing a Shell-tool bypass of a read-only agent's no-web-tools intent.
3833

3934
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.28.0`, or use the native installer for your OS (see the README install table).
4035

docs/en/release-notes/breaking-changes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ This page documents breaking changes in Pythinker Code releases and provides mig
66

77
## 0.28.0 (2026-05-31)
88

9-
No breaking changes. This release is compatible with 0.27.0 user configuration, native installs, and session data. The repository's move to the Pythoughts-labs GitHub org is handled transparently — the default `/feedback` repository auto-migrates and download/update URLs resolve to the new org.
9+
**`.pythinker/AGENTS.md` is no longer loaded as project instructions.** Pythinker now merges only `AGENTS.md`/`agents.md` files from the project root down to the working directory. If you kept instructions solely in `.pythinker/AGENTS.md`, move them to a root or directory-level `AGENTS.md` or they will no longer apply. No action is needed if you did not use `.pythinker/AGENTS.md`.
10+
11+
Otherwise this release is compatible with 0.27.0 user configuration, native installs, and session data. The repository's move to the Pythoughts-labs GitHub org is handled transparently — the default `/feedback` repository auto-migrates and download/update URLs resolve to the new org.
1012

1113
## 0.27.0 (2026-05-31)
1214

docs/en/release-notes/changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ GitHub Releases page; `0.8.0` is the new starting line.
2929
- **Redesigned startup welcome banner.** The banner now uses a cleaner footer-chip layout: the "What's new / Update available" chip sits on the panel's bottom border, the headline/strapline/help lines align beside the robot logo, and the info grid drops its vertical separator. The robot art and palette are unchanged.
3030
- **Terminal-aware rendering for minimal and CI terminals.** The shell UI adapts to the terminal — ASCII glyph fallbacks for `TERM=dumb` and legacy Windows code pages, reduced-motion mode (`PYTHINKER_REDUCED_MOTION`), and `NO_COLOR`/`CLICOLOR` support that strips color cleanly — so output stays readable in CI logs, SSH panes, and bare terminals.
3131
- **Windows updates avoid encoded PowerShell.** Native updates now launch the signed Inno installer directly with Restart Manager flags instead of a `powershell.exe -EncodedCommand` helper, reducing antivirus command-line heuristic false positives. Windows bootstrap installs use visible `/SILENT` progress instead of fully suppressed setup, and the installer build signs bundled PE files plus Inno's setup/uninstaller/temp copies when signing credentials are configured.
32+
- **New `judge` subagent and redesigned default prompts.** Adds an independent LLM-as-judge quality-gate subagent — a cheap single spot-checking pass for high-stakes deliverables, after deterministic gates — and rewrites the default agent, plan, and system prompts for clearer, more efficient guidance.
33+
- **`.pythinker/AGENTS.md` is no longer loaded as project instructions.** Only `AGENTS.md`/`agents.md` from the project root down to the working directory are merged. Move any instructions kept solely in `.pythinker/AGENTS.md` to a root or directory-level `AGENTS.md` (see breaking changes).
34+
- **Read-only subagent profiles block network and git config-injection shell commands.** The `read_only`/`plan`/`review`/`verify` permission profiles now deny network clients (`curl`/`wget`/`ssh`/`git fetch`) and unsafe `git -c`/`--config-env`/`--exec-path` options that can execute arbitrary commands (for example via `core.pager`/`core.sshCommand`), closing a Shell-tool bypass of a read-only agent's no-web-tools intent.
3235

3336
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.28.0`, or use the native installer for your OS (see the README install table).
3437

tests/test_installation_docs.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,11 @@ def test_no_old_repo_owner_references() -> None:
213213
".pytest_cache",
214214
}
215215
# Excluded paths that legitimately reference old owner for non-main-repo projects
216-
# (pythinker-home, pythinker-agent-rs, zsh-pythinker-code) or are this guard itself.
216+
# (pythinker-home, pythinker-agent-rs) or are this guard itself.
217217
skip_files = {
218218
ROOT / "tests" / "test_installation_docs.py",
219219
ROOT / ".github" / "workflows" / "dispatch-pythinker-home-sync.yml",
220220
ROOT / "docs" / "en" / "customization" / "wire-mode.md",
221-
ROOT / "docs" / "en" / "guides" / "integrations.md",
222221
}
223222
violations: list[str] = []
224223
for path in ROOT.rglob("*"):

0 commit comments

Comments
 (0)