Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/security_vulnerability.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ body:
attributes:
label: Zenzic version
description: Output of `zenzic --version`
placeholder: "0.6.1rc1"
placeholder: "0.7.1"
validations:
required: true

Expand Down
3 changes: 0 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ repos:
- id: check-merge-conflict
- id: check-case-conflict
- id: mixed-line-ending
- id: no-commit-to-branch
args: ["--branch", "main"]
stages: [pre-commit] # only at commit time — not during 'pre-commit run --all-files' in CI

# 2. Markdown linting
- repo: https://github.com/igorshubovych/markdownlint-cli
Expand Down
41 changes: 40 additions & 1 deletion CHANGELOG.it.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,46 @@ Le versioni seguono il [Semantic Versioning](https://semver.org/).

> **Cronologia di sviluppo (v0.1.0 – v0.6.x):** Consultare l'[Archivio Changelog](CHANGELOG.it.archive.md).

## [0.7.0] — 2026-05-07 — Quartz Maturity (Stable)
## [Non Rilasciato]

### Aggiunto

- **DX guard `_check-hooks`:** Aggiunta recipe nascosta `_check-hooks` come prima dipendenza
di `just verify`. Emette un avviso se l’hook Final Guard pre-push (`pre-commit install
-t pre-push`) non è installato localmente, senza bloccare l’esecuzione della verifica.- **Recipe `version`:** `just version` stampa la versione corrente del progetto direttamente
tramite `bump-my-version`. Alternativa rapida alla lettura manuale di `pyproject.toml`.
- **Flag `--short` per `release-dry`:** `just release-dry patch --short` filtra l'output
verbose di bump-my-version alle tre righe essenziali: versione corrente, nuova versione
e conferma dry-run. Il comportamento predefinito (diff verbose completo) è invariato.
- **DX guard `release-contracts`:** Nuova recipe che impone i contratti architetturali sul
justfile: presenza obbligatoria delle recipe `version`, `release` e `release-dry`;
`--allow-dirty` deve comparire solo in `release-dry`, mai in `release`. Inclusa in
`just verify` come controllo strutturale che fallisce immediatamente in caso di violazione.

### Modificato

- **Matrice di test — Boundary Testing (parità CI):** `PYTHONS` di Nox aggiornato da
`["3.11", "3.12", "3.13"]` a `["3.10", "3.14"]`, specchiando la CI Pillar Matrix
(Floor 3.10 / Peak 3.14). Elimina la divergenza "verde in locale ≠ verde in remoto".
- **Sessioni a versione fissa pinnate al Peak 3.14:** Le sessioni `lint`, `format`,
`fmt`, `typecheck`, `reuse`, `security`, `mutation` e `bump` aggiornate da
`python="3.11"` a `python="3.14"`.
- **Floor Mypy abbassato a 3.10:** `[tool.mypy] python_version` modificato da `"3.11"` a
`"3.10"`, imponendo la compatibilità al floor dichiarato `requires-python = ">=3.10"`.
Il guard `tomllib` / `tomli` (`sys.version_info >= (3, 11)`) e la dipendenza runtime
`tomli>=2.0.0; python_version < '3.11'` erano già in posto.

### Corretto

- **`Z000` aggiunto al registro dei codici (`codes.py`):** `Z000` (UNSUPPORTED_ENGINE)
era già documentato nello schema nel docstring di `codes.py` e in `finding-codes.mdx`,
ma mancava dai dizionari `CODE_NAMES`, `CODE_DESCRIPTIONS` e `CODE_SARIF_LEVELS`.
Il registro conta ora 34 codici canonici. La sessione `verify-codes-parity` include
Z000 come voce completa dell’enciclopedia con anchor `{#z000}`.

---

## [0.7.1] — 2026-05-07 — Quartz Maturity (Stable)

> **Documentazione precedente:** Le versioni precedenti a v0.7.0 sono ufficialmente deprecate
> e non seguono l'attuale architettura Diátaxis. Per riferimento storico, vedere la
Expand Down
42 changes: 41 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,47 @@ Versions follow [Semantic Versioning](https://semver.org/).

> **Development history (v0.1.0 – v0.6.x):** See the [Changelog Archive](CHANGELOG.archive.md).

## [0.7.0] — 2026-05-07 — Quartz Maturity (Stable)
## [Unreleased]

### Added

- **`_check-hooks` DX guard:** Added hidden `_check-hooks` recipe as first dependency of
`just verify`. Emits a warning if the pre-push Final Guard hook (`pre-commit install
-t pre-push`) is not installed locally, without blocking the verification run.
- **`version` recipe:** `just version` prints the current project version directly from
`bump-my-version`. Fast alternative to reading `pyproject.toml` manually.
- **`release-dry --short` flag:** `just release-dry patch --short` filters the verbose
bump-my-version output to three essential lines: current version, new version, and
dry-run confirmation. Default behaviour (full verbose diff) is unchanged.
- **`release-contracts` DX guard:** New recipe enforces architectural contracts on the
justfile: mandatory presence of `version`, `release`, and `release-dry` recipes;
`--allow-dirty` must appear only in `release-dry`, never in `release`. Wired into
`just verify` as a structural pre-flight check that fails fast on violations.

### Changed

- **Test matrix — Boundary Testing (CI parity):** Nox `PYTHONS` updated from
`["3.11", "3.12", "3.13"]` to `["3.10", "3.14"]`, mirroring the CI Pillar Matrix
(Floor 3.10 / Peak 3.14). Eliminates the local-vs-remote "green divergence".
- **Fixed-version sessions pinned to Peak 3.14:** `lint`, `format`, `fmt`, `typecheck`,
`reuse`, `security`, `mutation`, and `bump` sessions updated from `python="3.11"` to
`python="3.14"`.
- **Mypy floor lowered to 3.10:** `[tool.mypy] python_version` changed from `"3.11"` to
`"3.10"`, enforcing compatibility at the declared `requires-python = ">=3.10"` floor.
The `tomllib` / `tomli` compatibility guard (`sys.version_info >= (3, 11)`) and the
`tomli>=2.0.0; python_version < '3.11'` runtime dependency were already in place.

### Fixed

- **`Z000` added to code registry (`codes.py`):** `Z000` (UNSUPPORTED_ENGINE) was
already documented in the `codes.py` docstring schema and in `finding-codes.mdx`,
but was absent from `CODE_NAMES`, `CODE_DESCRIPTIONS`, and `CODE_SARIF_LEVELS`.
Registry now complete at 34 canonical codes. The `verify-codes-parity` session
counts Z000 as a full encyclopedia entry with `{#z000}` anchor.

---

## [0.7.1] — 2026-05-07 — Quartz Maturity (Stable)

> **Legacy Documentation:** Versions prior to v0.7.0 are officially deprecated and do not follow
> the current Diátaxis architecture. For historical reference, see the
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ abstract: >-
Markdown-based documentation. Zenzic introduces Universal Discovery,
VCS-aware exclusion mapping, and the Sentinel Shield middleware to provide
a deterministic Safe Harbor for complex documentation lifecycles.
version: 0.7.0
date-released: 2026-05-07
version: 0.7.1
date-released: 2026-05-08
url: "https://zenzic.dev"
repository-code: "https://github.com/PythonWoods/zenzic"
repository-artifact: "https://pypi.org/project/zenzic/"
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.it.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ I controlli di qualità e le attività di sviluppo sono guidati da **just** (per
| `mutation` | — | `nox -s mutation` | mutmut su `rules.py`, `shield.py`, `reporter.py` |
| `preflight` | `just preflight` | `nox -s preflight` | lint, typecheck, test, reuse, security |
| **Pre-push gate** | **`just verify`** | — | **preflight + self-lint — esegui prima di ogni push** |
| Versione corrente | `just version` | — | Stampa la versione corrente tramite bump-my-version |
| Release dry-run | `just release-dry patch` | — | Simula un bump (output diff completo) |
| Release dry-run (compatto) | `just release-dry patch --short` | — | Simula un bump — solo riepilogo 3 righe |
| Controllo contratti | `just release-contracts` | — | Verifica i contratti architetturali del justfile (invocato da `verify`) |
| `clean` | `just clean` | — | Rimuove `dist/`, `.hypothesis/`, cache |
| `bump` | — | `nox -s bump -- patch` | avanza la versione + commit + tag |

Expand Down
8 changes: 6 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ uvx pre-commit install # commit-stage: light hooks (ruff, format, h
uvx pre-commit install -t pre-push # pre-push: 🛡️ Final Guard runs `just verify`
```

The pre-push hook is the atomic gate of EPOCH 4 / v0.7.0: a single
The pre-push hook is the atomic gate of EPOCH 4 / v0.7.1: a single
entry-point (`just verify`) runs both locally and in GitHub Actions —
**locale ≡ remote, no drift**. Pushes are blocked when any of the
4 Gates (pre-commit hooks, coverage, tests, `zenzic check all`) fails.
Expand Down Expand Up @@ -115,6 +115,10 @@ the exact same environment as CI.
| Test (thorough) | `just test-full` | — | pytest with Hypothesis **ci** profile (500 examples) |
| Mutation testing | — | `nox -s mutation` | mutmut on `rules.py`, `shield.py`, `reporter.py` |
| **Final Guard** | **`just verify`** | — | **pre-commit + test-cov + check — runs automatically on `git push`** |
| Show version | `just version` | — | Print current version from bump-my-version |
| Release dry-run | `just release-dry patch` | — | Simulate a bump (full diff output) |
| Release dry-run (compact) | `just release-dry patch --short` | — | Simulate a bump — 3-line summary only |
| Contract check | `just release-contracts` | — | Verify justfile architectural contracts (run by `verify`) |
| Clean | `just clean` | — | Remove `dist/`, `.hypothesis/`, caches |
| Version bump | — | `nox -s bump -- patch` | bump version + commit + tag |

Expand Down Expand Up @@ -145,7 +149,7 @@ paths in any contribution, use `pathlib.Path` throughout — never string concat
> Node 24 runner environment. GitHub-hosted runners (`ubuntu-latest`) satisfy this
> automatically; self-hosted runners must use Node ≥ 24.

### CI Pillar Matrix (v0.7.0)
### CI Pillar Matrix (v0.7.1)

Zenzic adopts a **Pillar Matrix** strategy — testing the boundaries rather than every
intermediate version:
Expand Down
10 changes: 5 additions & 5 deletions README.it.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ zenzic check all # Analizza la cartella corrente

**Correzione automatica:** `zenzic clean assets [-y] [--dry-run]` elimina gli asset inutilizzati.

> 🚀 **v0.7.0 "Quartz Maturity" (Stabile)** — Suggerimenti proattivi Z104, audit di verità
> 🚀 **v0.7.1 "Quartz Maturity" (Stabile)** — Suggerimenti proattivi Z104, audit di verità
> Standalone Mode e hardening dell'Engineering Ledger. Vedi [CHANGELOG.md](CHANGELOG.md).

---
Expand Down Expand Up @@ -221,7 +221,7 @@ severity = "warning"

Le regole si attivano identicamente su tutti gli adapter. Nessuna modifica richiesta dopo la migrazione del motore.

> **Garanzia DFA** (v0.7.0+): I pattern delle custom rule devono essere compatibili con RE2 —
> **Garanzia DFA** (v0.7.1+): I pattern delle custom rule devono essere compatibili con RE2 —
> backreference, lookahead e lookbehind vengono rifiutati al caricamento. Consulta
> [Architettura › Garanzia DFA](https://zenzic.dev/it/docs/explanation/architecture#dfa-guarantee).

Expand Down Expand Up @@ -322,7 +322,7 @@ zenzic lab [--act N] [--list]
## 📟 Tour Visivo

```text
╭─────────────────────── 🛡 ZENZIC SENTINEL v0.7.0 ────────────────────────╮
╭─────────────────────── 🛡 ZENZIC SENTINEL v0.7.1 ────────────────────────╮
│ │
│ docusaurus • 38 file (18 docs, 20 asset) • 0.9s │
│ │
Expand Down Expand Up @@ -498,9 +498,9 @@ Zenzic è nato da un percorso tecnico attraverso la fragilità dei moderni ecosi
documentazione. Scopri la filosofia, l'assedio della sicurezza e l'ingegneria dietro il
Sentinel nelle [**Engineering Chronicles**](https://zenzic.dev/blog/tags/chronicles) sul blog ufficiale.

La storia della release v0.7.0 — l'assedio red-team guidato dall'IA, 4 vettori di bypass
La storia della release v0.7.1 — l'assedio red-team guidato dall'IA, 4 vettori di bypass
chiusi, e la strada verso la parità engine-agnostica — è documentata in
[**Beyond the Siege: Zenzic v0.7.0**](https://zenzic.dev/blog/beyond-the-siege-zenzic-v070-quartz).
[**Beyond the Siege: Zenzic v0.7.1**](https://zenzic.dev/blog/beyond-the-siege-zenzic-v070-quartz).

---

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ zenzic check all # Audit the current directory

**Autofix:** `zenzic clean assets [-y] [--dry-run]` deletes unused images.

> 🚀 **v0.7.0 "Quartz Maturity" (Stable)** — Z104 proactive suggestions, Standalone
> 🚀 **v0.7.1 "Quartz Maturity" (Stable)** — Z104 proactive suggestions, Standalone
> Mode truth audit, and Engineering Ledger hardening. See [CHANGELOG.md](CHANGELOG.md).

---
Expand Down Expand Up @@ -234,7 +234,7 @@ severity = "warning"

Rules fire identically across all adapters. No changes required after engine migration.

> **DFA Guarantee** (v0.7.0+): Custom rule patterns must be RE2-compatible — backreferences,
> **DFA Guarantee** (v0.7.1+): Custom rule patterns must be RE2-compatible — backreferences,
> lookaheads, and lookbehinds are rejected at load time. See
> [Architecture › DFA Guarantee](https://zenzic.dev/docs/explanation/architecture#dfa-guarantee).

Expand Down Expand Up @@ -493,9 +493,9 @@ Zenzic was born from a technical journey through the fragility of modern documen
ecosystems. Discover the philosophy, the security siege, and the engineering behind the
Sentinel in the [**Engineering Chronicles**](https://zenzic.dev/blog/tags/chronicles) on the official blog.

The v0.7.0 release story — AI-driven red-team siege, 4 bypass vectors closed, and the
The v0.7.1 release story — AI-driven red-team siege, 4 bypass vectors closed, and the
road to engine-agnostic parity — is documented in
[**Beyond the Siege: Zenzic v0.7.0**](https://zenzic.dev/blog/beyond-the-siege-zenzic-v070-quartz).
[**Beyond the Siege: Zenzic v0.7.1**](https://zenzic.dev/blog/beyond-the-siege-zenzic-v070-quartz).

---

Expand Down
6 changes: 3 additions & 3 deletions RELEASE.it.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<!-- SPDX-FileCopyrightText: 2026 PythonWoods <dev@pythonwoods.dev> -->
<!-- SPDX-License-Identifier: Apache-2.0 -->
# 💎 Zenzic v0.7.0 — L'Era del Quarzo (Quartz Maturity)
# 💎 Zenzic v0.7.1 — L'Era del Quarzo (Quartz Maturity)

Questa release segna la nascita del Sistema di Conoscenza Sovrano. Dopo l'Epurazione del Quarzo, Zenzic abbandona definitivamente ogni residuo sperimentale per diventare un'infrastruttura deterministica di grado industriale.

## 🏛️ I Pilastri della v0.7.0
## 🏛️ I Pilastri della v0.7.1

- **Integrità Deterministica**: Assenza integrale di ogni dipendenza o logica probabilistica. Zenzic opera ora esclusivamente su fatti strutturali e invarianti certe.
- **Sentinel Seal**: Un sistema di validazione a 4 stadi (4-Gates Standard) che garantisce la qualità assoluta prima di ogni push.
Expand All @@ -14,7 +14,7 @@ Questa release segna la nascita del Sistema di Conoscenza Sovrano. Dopo l'Epuraz

## ⚠️ Nota di Evoluzione (Breaking Changes)

La v0.7.0 è l'Anno Zero. Le versioni precedenti sono ufficialmente deprecate poiché non seguono l'attuale architettura Diátaxis. Ogni riferimento ai vecchi brand o alle architetture legacy è stato rimosso per far posto a un ecosistema snello e focalizzato sulla purezza della sorgente.
La v0.7.1 è l'Anno Zero. Le versioni precedenti sono ufficialmente deprecate poiché non seguono l'attuale architettura Diátaxis. Ogni riferimento ai vecchi brand o alle architetture legacy è stato rimosso per far posto a un ecosistema snello e focalizzato sulla purezza della sorgente.

## 🚀 Verso il Futuro

Expand Down
Loading
Loading