Repository navigation
Release v0.11.1 — Fail Closed - #1064
Conversation
…escapes Review findings on the development -> main promotion (#1061): - The PII-masking page (EN + TR) shows the real `forgelm ingest --pii-mask` summary instead of a "masked 18 PII matches" line the tool never prints (the Turkish page had translated CLI output), and its audit-only example reads an unmasked corpus. Auditing the masked output prints no PII line, so the old counts could not come from it. - The GDPR erasure page (EN + TR) no longer says the identifier never leaves the operator's terminal: the audit chain records a salted digest, but the identifier is typed on the command line and `reverse-pii` prints matching corpus lines unmasked. - Literal invisible characters in string literals are written as escapes: U+202E in tests/test_issue_dependencies.py (Bandit B613, Trojan Source, which failed CodeFactor), U+200B and U+2060 in tests/test_safety_advanced.py, and U+FEFF in forgelm/ingestion.py and tests/test_ingestion_reliability.py. Every string constant in the four files is unchanged (compared through the AST). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs the CodeRabbit note on #1062: "two user-manual pages (English and Turkish)" read as a wrong count; the entry now names the PII-masking and GDPR-erasure pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ings fix: correct two user-manual examples; write invisible characters as escapes
main gained the merge commit of the development -> main promotion (#1061); bring it back so main carries no commit development lacks.
Numbered as a patch by maintainer decision, as a one-time exception: release.md's bump table would make this cycle 0.12.0 (eleven Breaking entries and new features). The rules are unchanged; the exception is recorded in docs/roadmap/risks-and-decisions.md (2026-10-23 addendum to C-20), at the head of the CHANGELOG section and in the release record. - CHANGELOG: [Unreleased] -> [0.11.1] — 2026-10-23, with the duplicate Breaking / Added / Changed blocks merged (every entry line carried over, checked line by line) and a note that a forgelm~=0.11.0 pin picks up the breaking changes. - pyproject.toml 0.11.1rc1 -> 0.11.1; the __api_version__ comment names the release (1.2.0 was bumped during the cycle). - Release record: docs/roadmap/releases.md, the Released / Yayınlandı headlines and the current-state lines in docs/roadmap.md and its Turkish mirror, the Phase 16 plan notes. - Site version literals (tools/update_site_version.py) and the forgelm pins in the notebooks move to 0.11.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n to S4-S16 Review notes on #1063: - The 'every artefact is valid JSON' entry (CHANGELOG and the release record) now says that a JSON Lines file such as the audit log is valid line by line. - The Phase 16 plan no longer names the open 0.11.1rc1 cycle: its header says 'the open development cycle', and the Delivery section's single release follows S4-S16 now that S1-S3 shipped in v0.11.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chore: release v0.11.1 — Fail Closed
|
Note The title starts with
|
|
Sorry @cemililik, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 2 days and 17 hours by commenting |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Reviewer's GuideThis release packages the previously implemented fail-closed validation and evaluation behavior as v0.11.1, records its exceptional patch numbering and Phase 16 scope, and synchronizes release-facing documentation, site versions, and notebook pins; the diff shown is primarily release metadata, documentation corrections, and invisible-character normalization rather than the underlying gate implementations. Sequence diagram for the v0.11.1 fail-closed releasesequenceDiagram
participant Maintainer
participant Development
participant Main
participant SiteDeploy as site-deploy.yml
participant Publish as publish.yml
participant PyPI
Maintainer->>Main: Merge development with merge commit
Main->>SiteDeploy: Trigger site deployment for site and docs changes
SiteDeploy-->>Main: Website republished
Maintainer->>Main: Create GPG-signed tag v0.11.1
Maintainer->>Publish: Push tag and approve pypi deployment
Publish->>Publish: Build package and run cross-OS install matrix
Publish->>PyPI: Publish v0.11.1
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Summary
Release v0.11.1 — "Fail Closed": promote
developmenttomain, then tag the merge commitv0.11.1.publish.ymlpublishes to PyPI once thepypienvironment deployment is approved.This release is numbered as a patch by a maintainer decision, as a one-time exception. Under
docs/standards/release.md's bump table this cycle would be0.12.0, because it carries eleven breaking changes and new features. The rules are unchanged. The exception is recorded in three places:[0.11.1]section inCHANGELOG.md;docs/roadmap/releases.md);docs/roadmap/risks-and-decisions.md, against Phase 16 decision C-20.A pin such as
forgelm~=0.11.0picks this release up.What
maingainsmainalready holds everything up to #1058 through #1061. This pull request adds:ingestandauditoutput and drop the "identifier never leaves the terminal" claim. Invisible characters in string literals are written as escapes; this fixes CodeFactor's Bandit B613 failure on #1061.development, andchore: release v0.11.1 — Fail Closed: CHANGELOG section,pyproject.toml0.11.1, release record, site version literals, notebook pins.The full content of the release since
v0.11.0is inCHANGELOG.mdunder[0.11.1], with a summary indocs/roadmap/releases.md. It has:.sha256export sidecar, the issue triage and dependency gates, governance files and Dependabot;retention:-onlypurge --check-policyconfigs;__api_version__is1.2.0.What merging this does
site-deploy.ymlruns because this touchessite/(the version literals) anddocs/usermanuals/(fix: correct two user-manual examples; write invisible characters as escapes #1062).v0.11.1and push only the tag;pypideployment ofpublish.yml, which builds, runs the 12-combination cross-OS install matrix and publishes.Notes for reviewers
Main: preserve branch historyruleset requires. Afterwards, bringmainback intodevelopmentwith a synchronization pull request (merge commit), and open the next development cycle ([Unreleased]already exists;pyproject.tomlmoves to the nextrcversion).Type
Testing
developmentat the head of this pull request; see the checks below.531cb0e:Version: 0.11.1;ForgeLM 0.11.1and passes theconfig_template.yamldry run.Checklist
[0.11.1] — 2026-10-23check_release_record_sync.py --strict)0.11.1🤖 Generated with Claude Code
Summary by Sourcery
Release ForgeLM v0.11.1 with fail-closed evaluation and validation behavior, corrected compatibility and compliance documentation, and strengthened project governance and CI safeguards.
New Features:
Bug Fixes:
Enhancements:
Build:
CI:
Deployment:
Documentation:
Tests:
Chores: