|
3 | 3 | All notable changes to `tekimax-security` will be documented here. |
4 | 4 | Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · SemVer. |
5 | 5 |
|
| 6 | +## [0.3.1] — 2026-04-16 |
| 7 | + |
| 8 | +### Added |
| 9 | + |
| 10 | +- **Gate G — Dependency CVEs.** New `scripts/bash/dep-audit.sh` and |
| 11 | + `speckit.tekimax-security.dep-audit` command. Resolution order: |
| 12 | + `osv-scanner` (polyglot, preferred) → `pnpm audit` → `npm audit` |
| 13 | + → `yarn npm audit`. Skips cleanly when no scanner is available. |
| 14 | + Threshold configurable via `dep_audit.fail_on` |
| 15 | + (`low` | `moderate` | `high` | `critical`, default `high`). |
| 16 | + Opt-out via `dep_audit.enabled: false`. Gate G runs automatically |
| 17 | + as part of `gate-check` and logs to |
| 18 | + `.tekimax-security/dep-audit-log.jsonl`. |
| 19 | +- **Polyglot file coverage.** Gate F and the audit now scan Go, |
| 20 | + Rust, Ruby, Java, Kotlin, Swift, PHP, shell, YAML, JSON, TOML, |
| 21 | + Terraform, and Markdown by default — secrets and inline prompts |
| 22 | + commonly live outside TS/Py. Defaults live in |
| 23 | + `lib/defaults.sh:DEFAULT_INCLUDE_EXTS`. |
| 24 | +- **`audit.include_globs` and `audit.exclude_paths` config keys** |
| 25 | + to extend the polyglot scan without replacing defaults. |
| 26 | +- **`audit.direct_sdk_patterns` config key.** Extend the default |
| 27 | + SDK list (`@google/genai`, `@anthropic-ai/sdk`, `openai`, |
| 28 | + `cohere-ai`, `@mistralai/mistralai`, |
| 29 | + `@aws-sdk/client-bedrock-runtime`, `replicate`, `together-ai`) |
| 30 | + with any provider your stack adopts. |
| 31 | +- **`--staged-only` flag** on `audit.sh` and `gate-check.sh`. |
| 32 | + Scans only files in the git index. Pre-commit-hook-friendly: a |
| 33 | + typical change touches <5 files, not the whole tree. |
| 34 | +- **`--json` flag** on `audit.sh`, `gate-check.sh`, and |
| 35 | + `dep-audit.sh`. Emits machine-readable findings alongside (or in |
| 36 | + place of) the human table so CI jobs and dashboards don't have |
| 37 | + to re-parse the log file. |
| 38 | +- **`build_exclude_regex` and `scan_staged_files`** helpers in |
| 39 | + `lib/defaults.sh` to support polyglot and staged-file scans. |
| 40 | +- **Three regression tests:** |
| 41 | + `anchored-allowlist-rejects-prefix-bypass.sh`, |
| 42 | + `polyglot-go-secret.sh`, `env-in-subdirectory.sh`. Suite is 18/18. |
| 43 | + |
| 44 | +### Changed |
| 45 | + |
| 46 | +- **Gateway allowlist uses anchored matching.** |
| 47 | + `_is_gateway_allowed` in `lib/defaults.sh` now matches only at |
| 48 | + the exact path, as a directory prefix with a '/' boundary, or |
| 49 | + with a file-extension append. An entry `src/ai/gateway` no |
| 50 | + longer silently matches `src/ai/gateway-bypass.ts`. Teams that |
| 51 | + relied on the substring match must list full file paths or the |
| 52 | + containing directory. |
| 53 | +- **`.env` detection is recursive.** `apps/*/.env`, |
| 54 | + `packages/*/.env.local`, and similar nested env files are now |
| 55 | + detected; previously only the repo root was checked. |
| 56 | + `.env.example`, `.env.sample`, and `.env.template` remain |
| 57 | + allowed. |
| 58 | + |
6 | 59 | ## [0.3.0] — 2026-04-16 |
7 | 60 |
|
8 | 61 | ### Added |
|
0 commit comments