Release Notes
Complete release history, key architectural additions, and feature highlights for Project Nemesis Index (pni501).
Version 0.1.4
Release Date: 2026/11/10
Version 0.1.4 introduces official PNI501 brand assets and cover helper utilities for Drawlib PDF reports, the pni cache clean CLI subcommand for local and container artifact pruning, and deep static and runtime analysis improvements for Go, TypeScript, and JavaScript (including monorepo lockfile scoping, .d.ts companion declarations, IIFE/ES2022 #private classes, and Playwright headless Chromium auto-provisioning).
1. Official Brand Assets & Report Compiler Enhancements (pni._reporter)
- Bundled Brand Assets &
draw_pni_logo()Cover Helper:pni report initnow copies official brand assets (logo.png,logo_dark.png, andfavicon.png) into<src_dir>/<target>_src/_assets/across Audit, Migration, and Progress blueprints.- Scaffolded
utils.pymodules now includedraw_pni_logo(xy=(135.0, 48.0), width=9.0, *, dark=True)for rendering the official PNI501 emblem on00_cover.mddark and light covers without boilerplate coordinate math.
- Drawlib Linter Check for
ClassDiagram/ClassNode:lint_drawlib_chapters()(pni report checkandpni report build) now detects and warns whenClassDiagramorClassNodeusesStyles.White(which renders invisible white text on a white background) and recommendsStyles.Neutral.
- Multi-Portal Relative Link Verification (
--link-check-root):- Added
--link-check-root <dir>(link_check_root) topni report build/compile_report_project()so reports nested inside multi-target HTML portals can validate parent-relative links (../index.html) against the portal root directory.
- Added
2. CLI Additions (pni cache clean & --version)
pni cache cleanSubcommand:- Added
pni cache clean [--docker] [--container-engine auto|docker|podman]to clean local.pni/cache/directories and optionally prune temporarypni-harness-*,pni-proj-*,pni-sec-*, andpni-pentest-*container images, dangling layers, and builder caches.
uv run pni cache clean --docker- Added
- Root
--version/-VFlag:- Added
pni --version(-V) alongsidepni versionto displaypni501 v0.1.4and exit immediately.
- Added
- Automatic Workflow Superseding:
start_workflow_run()now defaults tosupersede=True, automatically marking older unfinished runs of the same workflow asCANCELLED(superseded_by_<run_id>) when starting a fresh run.
3. TypeScript & JavaScript Analysis & Runtime Harness Enhancements
- AST Analysis Refinements (
ast_analyze/ts_js/):- Barrel Re-Export Cycle Separation: Distinguishes intentional
index.tsbarrel re-export loops (type_checking_cycles) from true implementationcircular_dependencies. - IIFE / UMD Unwrapping & ES2022
#privateClasses: Unwraps top-level IIFE/UMD factory closures (var lib = (() => { ... })()) and inspectsprivate_field_definition/#privatemethods for accurate symbol and doc-coverage metrics. - Companion
.d.tsType Declarations: Automatically detects companion.d.tsfiles (package.json"types"/"typings"or co-located*.d.ts) ashas_type_marker = Truefor JavaScript packages and credits exported.d.tstype signatures. - Type-Level & Helper Test Recognition: Credits
expectTypeOf<T>(),assertType<T>(),// @ts-expect-error, suffix-less test files undertest//tests/(while filtering out non-test helpers), customassert*/verify*/check*helpers, and external CDN script dependencies inweb-test-runner.config.*.
- Barrel Re-Export Cycle Separation: Distinguishes intentional
- Playwright Browser Harness & Coverage Parsers (
runtime_check/):- Updated
typescript/node.dockerfileandjavascript/node.dockerfileto pre-install@vitest/coverage-v8and automatically provision Playwright Headless Chromium (PLAYWRIGHT_BROWSERS_PATH=/ms-playwright) and OS shared libraries whenever@playwright/test,playwright, or@vitest/browseris detected. - Added
lcov.info(parse_lcov_info),@web/test-runner(WTR), and Mocha (parse_node_test_output) output parsers, multi-suite Vitest coverage merging (--coverage.clean=false), and monorepo subpackagetsc --noEmit -p <subpkg>/tsconfig.jsonscoping.
- Updated
- Monorepo Lockfile & Container Vulnerability Scoping (
security_scan/):discover_non_core_packages()now parses workspace importers acrosspnpm-lock.yaml,package-lock.json, andyarn.lock(isolating workspace/docs packages for zero-dependency targets) and classifies global container toolchain paths (/usr/local/lib/node_modules, etc.) asharness_os/os_package.
4. Go AST Refinements & Non-Root Container Harness (go)
- Go AST Refinements (
ast_analyze/go/):- Detects partially ignored error returns (
val, _ := ...) incheck_exception_hygiene(). - Exempts multiline raw backtick strings (SQL/HTML/templates) from function LOC bloat in
check_complexity(). - Exempts
fmt.Printf-style variadic...any/...interface{}parameters when accompanied by aformat stringparameter incheck_type_safety(). - Credits
t.Runmethod-value delegation and helper function assertions incheck_test_quality().
- Detects partially ignored error returns (
- Hardened Go Container Template (
go/go.dockerfile):- Enforces a Go
1.22Bookworm image floor (1.22–1.24), runs tests as non-rootUSER pni(UID 10001), and pre-warms/go/cacheduring image build for reliable--network=noneoffline test execution. - Default
.pni/pni.tomlnow includes"go.sum"ininclude_gitignoredand excludes"docs/**"and"docs_src/**".
- Enforces a Go
Version 0.1.3
Release Date: 2026/11/10
Version 0.1.3 expands pni501 from 3 to 6 first-class target languages by introducing complete Tree-sitter AST analyzers, engineering rule cascades, offline Docker harnesses, test/coverage parsers, and migration analyzers for Go (go), TypeScript (typescript), and JavaScript (javascript), alongside major enhancements for Java and PHP.
1. Go, TypeScript, and JavaScript Support (6 Supported Languages)
- Tree-Sitter AST Analyzers (
27New Checkers):- Implemented
9deterministic AST checkers each forgo,typescript, andjavascript(complexity,type_safety,doc_coverage,architecture,code_hygiene,exception_hygiene,test_quality,security_patterns, andresource_safety).
- Implemented
- Built-in Language Rule Cascades (
15New Rule Files):- Added
coding_convention.md,architecture_design.md,test_strategy.md,security_policy.md, andaudit_rubric.mdunderrules/go/,rules/typescript/, andrules/javascript/.
- Added
- Composite Actions, Workflows & Offline Container Templates:
- Added
go.audit_analyze,typescript.audit_analyze, andjavascript.audit_analyzecomposite actions,full_auditandquick_checkworkflows, and hermetic Docker templates (go/go.dockerfile,typescript/node.dockerfile,javascript/node.dockerfile) withgo-coverandistanbul-summarycoverage parsers.
- Added
- Migration Analyzers:
- Added external dependency touchpoint scanners, public API contract extractors, and AST codemod candidate detectors for Go, TypeScript, and JavaScript.
2. Java & PHP Analyzer Enhancements
- Java (
java):- Recognizes JUnit 4
@Test(expected=...), AssertJ, Hamcrest, and SpringMockMvcassertions; excludes Javadoc comments from method LOC; supports custom Maven build arguments; and filterstest,provided, andoptionalscopes inpom.xml.
- Recognizes JUnit 4
- PHP (
php):- Formats anonymous class symbols cleanly, distinguishes PSR-3 logger calls from raw
error_log()debug statements, and auto-detects target source directories fromcomposer.jsonPSR-4 mappings.
- Formats anonymous class symbols cleanly, distinguishes PSR-3 logger calls from raw
Version 0.1.2
Release Date: 2026/11/08
Version 0.1.2 introduces granular 4-tier vulnerability scope classification in security_scan, Python AST analyzer refinements, and workflow state management commands (rewind and cancel).
1. 4-Tier Vulnerability Scope Classification (security_scan)
dep_scopes.pyDependency Scope Classifier:- Automatically classifies Trivy and OSV findings into four scopes to eliminate false-positive scoring penalties from dev/docs dependencies or container base images:
runtime_core: Production application dependencies (full scoring impact).dev_or_optional: Test/linter/docs dependencies and optional extras.os_package: Debian/Alpine OS packages inside the application container.harness_os: Audit container harness packages (pni-sec-*/pni-harness-*).
- Automatically classifies Trivy and OSV findings into four scopes to eliminate false-positive scoring penalties from dev/docs dependencies or container base images:
2. Workflow Rewind & Cancellation CLI & Python AST Refinements
- Workflow State Recovery (
pni workflows rewind&cancel):- Added
pni workflows rewind <action_id>(aliasretry-action) to roll back a workflow run to any action and clear downstream artifacts, andpni workflows cancel(--superseded/--supersede) to clean up stale runs.
- Added
- Python AST Refinements:
- Improved
TYPE_CHECKINGconditional import handling,@overload/@abstractmethodstub filtering, and docstring coverage calculation inast_analyze/python/.
- Improved
Version 0.1.1
Release Date: 2026/11/06
- PyPI Packaging & Metadata Refinements:
- Refined package classifiers, entry points (
pniCLI), bundled rule/workflow package data, and release verification workflows.
- Refined package classifiers, entry points (
Version 0.1.0
Release Date: 2026/11/06
Initial public release of Project Nemesis Index (pni501) — an AI-orchestrated software engineering audit, security verification, migration planning, and visual reporting framework.
- Core Architecture:
- Stateful Pull-Push SQLite Workflow Engine (
.pni/state.db) with deterministic action execution and LLM judgment gates. - 3-Layer Cascading Rule System (
common/→<language>/→.pni/rules/) and 2-Tier Config Loader (.pni/pni.toml). - Deterministic analyzers (
project_inspect,ast_analyze,run_check,security_scan,web_pentest,migration_analyze,progress_analyze) for Python, Java, and PHP. - 7-Axis
ScoreResult(100-point weighted rubric withS/A/B/C/Dgrades) andMigrationPlanResult. - Drawlib Visual PDF Reporting (
pni report init,pni report check,pni report build) producing 7-chapter 16:9 vector PDF and HTML slide decks.
- Stateful Pull-Push SQLite Workflow Engine (