Releases: neomatrix369/tripwire
Releases · neomatrix369/tripwire
Release list
v0.4.0
[0.4.0] - 2026-08-14
Added
- Tiered post-scan router:
tripwire routeand auto-route aftertripwire scan
(SIE triage + optional Model Studio escalation;scanner_source=tiered_router) - Model Studio and SIE sample CLIs under
prototypes/model-studio/and
prototypes/sie-studio/ - Dashboard router strip, SIE-only / escalated filters, and Mock router fixtures
- Optional
.envkeys for SIE / Model Studio (documented indocs/user-guide/env-vars.md) - ADR-0016: tiered router via SIE and Model Studio
Changed
- Card
heatmap_statusis worst-of actionable findings (any red → red; amber-only
→ amber);risk_scorestays weighted density for sort/trend. Dashboard cards
show an actionable finding-count chip so one vs many vulns stay distinguishable - Severity rollup excludes
tiered_routerfindings so triage does not inflate
scanner red/amber counts - CLI coverage floors temporarily lowered (60/60/80/60) while measured CLI
coverage recovers after the router land;cli/test/router.test.jsexists;
ADR-0013 ≥95% target unchanged
Fixed
- Tiered router no longer batch-deletes
tiered_routerfindings before routing;
per-item replace-on-success preservesScan → SIE → ■strips when SIE skips - Dashboard shows
Scan → ■/ “SIE not called” on scanned cards with no
tiered_routerfinding (SIE never invoked)
Docs
- Formal ADR catalog under
docs/adr/: Accepted retrospective records
0002–0016 for shipped topology, scanning, security, CLI, quality,
Horizon A scope, and tiered router. Number 0001 reserved (Monk Live packaging
draft on a side branch, not published). Indexes wired from Architecture,
STATUS, README, QUICKSTART, CONTRIBUTING, and plan README. - Provider setup guides for optional tiered routing:
docs/user-guide/sie-setup.mdanddocs/user-guide/model-studio-setup.md
(wired from README, QUICKSTART, docs index, env-vars, prerequisites) - Operator howto for pathway strips / Escalated / SIE-only / categories:
docs/user-guide/reading-router-results.md - Screenshot gallery refreshed: CLI help includes
route, live Modal scan
capture updated, dashboard/skill/MCP shots retaken from Mock demo data,
Escalated / SIE-only / pathway filter shots; regenerate UI shots with
scripts/capture-screenshots.mjs
v0.3.0
[0.3.0] - 2026-08-05
Added
cli/eslint.config.js— flat-format ESLint 10 enforcement gate (@eslint/js+globals.node);complexity: ['error', 10]andmax-depth: ['error', 4]now block in error mode at commit (eslint-cli hook) and CI (npm run lint), replacing the legacy.eslintrc.cjsfor enforcement purposesprototypes/dc-dashboard/eslint.config.js— flat-format ESLint enforcement gate for the live dashboard; same rules as CLI gate plusglobals.browser;support.js(generated build artifact) excluded from lintingpylint>=3.0dev dependency,[tool.pylint.similarities]config (≥6-line similarity threshold), andpylint-duplicationpre-commit hook (Python files only); same check wired instatic-analysisCI jobscripts/pip-audit.sh— centralised Python dep audit with documented per-CVE ignore slotsscripts/check_coverage_threshold_drift.py— FE↔backend coverage threshold drift guard (self-skips when CLI has no vite config).trivyignore— Trivy CVE suppression starter with Why/Compensating-control/Unblock format enforced per entry.meterian— Meterian SCA thresholds (security + licensing ≥95, CVSS ≥7.0);METERIAN_API_TOKENalready wired in CI.github/PULL_REQUEST_TEMPLATE.md— PR description template aligned with/create-prskill section names (Summary,Test Results,Checklist,Closes).github/CODEOWNERS— auto-reviewer assignment (@neomatrix369global fallback)cli/stryker.config.mjs— Stryker config targetingsrc/**/*.jswith built-incommandtest runner, 80% kill threshold, HTML + JSON reporters- CLI mutation testing job in
nightly.yml(mutation-tests-cli) — installs only@stryker-mutator/core@^8(no separate test-runner package), seeds sandbox fixtures, uploads HTML/JSON report artifact (30-day retention)
Changed
scripts/pre-push-gates.sh— T3 now runs gitleaks commit-range only (pushed commits via--log-opts FROM..TO); full-tree SAST/SCA (security-scan.sh, semgrep, trivy, trufflehog) moved entirely to CI where latency is acceptablescripts/pre-push-gates.sh— CLI unit tests at push now gated onCLI_CHANGED; previously ran unconditionally on every push even when nocli/files were touched.pre-commit-config.yaml— addedxenon(complexity),vulture(dead code),pylint-duplication,eslint-cli, andeslint-dashboardhooks at commit stage; all are file-type-gated so they fire only on matching changed files- Xenon ceiling split:
scan_app.py + guard + __init__.py → --max-absolute C;scanners.py → --max-absolute D(onlyrun_snykis D-grade; tracked for refactor) — clean files no longer inherit the worst offender's ceiling - Pre-push CLI gate upgraded from bare
npm testtonpm run test:coverage(c8 ≥95%); the coverage floor now enforced locally before code reaches the remote, matching Python's push behaviour ci.ymlcli-testsjob: ESLint lint step added beforetest:coverage;static-analysisjob: xenon split applied and pylint duplicate-code check added;live-acl-testsjob: ESLint lint step added beforetest:coverage.github/workflows/nightly.ymlChalk job — replaced silent|| truewithcontinue-on-error: trueso Chalk failures appear as visible ⚠ warnings in the Actions UI rather than being swallowedCLAUDE.md— added## PR Compositionsection so agent skills include the project Checklist in generated PR bodies
Fixed
prototypes/dc-dashboard/tripwire-status.jsnormalizeSeverity— refactored from CC 14 to CC 6 using Set-based dispatch (SEVERITY_RED/AMBER/GREEN);resolveItemStatusreduced from CC 13 to CC 8 by extractingresolveCompletedStatusandresolveNoRunStatusand removing unnecessary destructuring defaults that inflated the ESLint complexity countprototypes/dc-dashboard/tripwire-live.js— extracted 7 named helper functions (worstScannerSeverity,buildCompletedScannerSummary,buildScannerOutput,shapeScannerRow,resolveLastScanTime,getRunContext,shapeItem) from the 120-lineitems.mapclosure; all 52 tests preserved, coverage above floorscli/src/discovery.jsdiscoverTargets— refactored from CC 18 to CC 8 by extractingresolveTargetandannotateWithTypes; all 15 existing tests preservedcli/src/ensureSchema.jsapplySchema— refactored from CC 13 to CC 6 by extractingpgSslConfigandpgConnectHint; added{ cause: err }to preserve caught error in the chaincli/src/orchestrator.js— removed uselesscontentHash = nullinitialisation (always overwritten before use)cli/stryker.config.mjs— switched from non-existent@stryker-mutator/node-test-runnerpackage (404 on npm) to Stryker's built-incommandrunner withnode --test test/*.test.js; setcoverageAnalysis: "off"(command runner limitation)nightly.ymlmutation-tests-cli— added fixture seed step (cp -r db fixtures cli/.stryker-tmp/) so relative paths inside Stryker's sandbox resolve correctly and the dry-run passes without|| truesuppression
v0.2.0
0.2.0 - 2026-08-04
Added
- Walking skeleton: CLI (
tripwire scan/tripwire setup), schema bootstrap, Modal sandbox, fixtures, guard module, and dashboard in a single deployable slice - Live/demo data mode — dashboard serve/sync with Supabase live data support
_acquire_targetdispatch for clone, copy, and introspect target modes- Dashboard redesign with Deep Ops aesthetic and live Supabase data support
- Modal secrets sync script and sandbox deploy workflow
- Scanner console output persistence and Snyk skill CLI flag corrections
scan --forceandsetup --forceisolation support- MCP discovery and Cisco scanner CLI integration
- Screenshot gallery in README: CLI output, dashboard, skills, and MCP server views
- Serious-tier project hygiene: pre-commit hooks, ruff, bandit, mypy, vulture, xenon, pip-audit, gitleaks
- Two-tier tech badges across README and docs
- Onboarding user guide with Live-first setup path and operator readiness notes
Fixed
- Demo scan recovery:
--forceflag, rollup on failure, unreachable detail handling - Demo heatmap stability: status SSOT, severity mapping, item upsert
- MCP fixtures: drop postponed annotations, pin Python 3.11
- Scanner detail summaries and dashboard raw_summary synthesis
- Resolve demo-blocking issues: quiet dotenv, ISO timestamps, manifest expansion
- Anon RLS policies and demo-readiness capture
CI
- Python ship-path coverage gate at 95% (sandbox)
- CLI coverage gate at 95%
- Live ACL coverage gate at 95%
- Publish complexity evidence on pull requests
- Pinned security action versions (CodeQL v4, SBOM v0.24.0, artifact upload v7, cache v6, checkout v7, setup-python v7, setup-node v7)
- Fixed broken action pins and gitleaks permissions
Docs
- Lean README with persona quickstart paths and early-adopter expectations
- Setup docs synced with schema bootstrap and Modal operator evidence
- Tech badges extended to docs index, quickstart, and CI workflows
- Screenshot gallery with real CLI and dashboard captures