feat: v0.5.0a3 β The Sentinel: Aesthetic Identity, Agnostic Target & Plugin SDK#28
Merged
PythonWoods-Dev merged 3 commits intomainfrom Apr 3, 2026
Merged
feat: v0.5.0a3 β The Sentinel: Aesthetic Identity, Agnostic Target & Plugin SDK#28PythonWoods-Dev merged 3 commits intomainfrom
PythonWoods-Dev merged 3 commits intomainfrom
Conversation
β¦nhancements Header: - Delete overrides/partials/source.html; revert to 100% native Material source widget (stops JS collision that duplicated stars/forks) - Inject version into Material's own facts <ul> via MutationObserver in main.html β zero override, single row: π· 0.5.0a3 β 1 Ο 0 - Simplify extra.css to 2 header rules (text-only tabs + version icon mask) - Set reconfigure_material: false with manual extra.alternate (en/it) Core: - Extend validator with new check capabilities - Add MkDocs adapter enhancements - CLI: add new commands and options (+150 lines) Docs: - Architecture, plugins, examples, commands: expand EN + IT - Add CHANGELOG.md and RELEASE.md entries for v0.5.0a3 Tests: - Expand test_cli, test_scanner, test_validator coverage Infra: - Update justfile and noxfile.py 24 files changed, 632 insertions(+), 73 deletions(-)
CORE & PERFORMANCE: - Implement Two-Phase Parallel Engine (Anchors index first, then validate) - Optimized anchor map merging for O(1) main-process performance - Distinguish Z001 (Broken Link - Error) from Z002 (Orphan Link - Warning) (Closes #6) SDK & EXTENSIBILITY: - Create stable public namespace `zenzic.rules` for plugin developers (Closes #13) - Add `run_rule` test helper for isolated rule verification - Update `zenzic init --plugin` to use the new public API and namespace - Rule DSL engine fully documented and verified (Closes #4) UI & DX: - Implement non-invasive version injection via MutationObserver - Restore native Material horizontal layout (Stars, Forks, Version) - Standardize developer workflow via `just verify` Tests: 570+ passed, 100% REUSE compliant.
Bug fixes: - Fix VanillaAdapter crash in adapter factory when engine=vanilla is declared explicitly in [build_context] β the factory attempted to pass (context, docs_root) to a no-arg constructor - Fix TOML scoping in i18n-standard: excluded_build_artifacts was parsed inside [build_context] instead of root scope - Fix all example configs: move engine, default_locale, locales from root-level keys (silently dropped) to proper [build_context] table SDK alignment: - plugin-scaffold-demo: import from zenzic.rules (public namespace) instead of zenzic.core.rules (internal) - plugin-scaffold-demo: add tests/test_rules.py demonstrating the run_rule() test helper - plugin-scaffold-demo: fix docs word count below placeholder threshold Documentation: - Add README.it.md bilingual READMEs for all 7 examples - Document [tool.zenzic] pyproject.toml fallback in mkdocs-basic README Verified: just verify GREEN (583 passed, 81.50% cov, 253/253 REUSE)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ui.py) β Indigo/Slate/Rose/Amber color identity across reporter and banner; no bold on numberszenzic check all README.md/content/; VanillaAdapter auto-selected; off-target exit-1 bug fixedzenzic.rulesstable namespace,zenzic init --plugin,run_rule()helper, Z001/Z002 split.pre-commit-hooks.yamlshipped; use directly from GitHubMutationObserver;source.htmldeletedTest plan
just preflightβ ruff β Β· mypy 0 errors β Β· 587 tests Β· REUSE β Β· mkdocs build --strict βzenzic check allself-dogfood β SUCCESSzenzic check all README.mdβ exit 0, banner shows1 file (1 docs, 0 assets)zenzic check all content/β exit 0, banner shows./content/Closes #4 Β· Closes #6 Β· Closes #13