Skip to content

Commit a208a2b

Browse files
committed
Add CHANGELOG, fix CI paths, add JetBrains + npm badges
1 parent c2625a0 commit a208a2b

3 files changed

Lines changed: 89 additions & 17 deletions

File tree

.github/workflows/forcefield-ci.yml

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@ name: ForceField CI
22

33
on:
44
push:
5-
paths:
6-
- 'sdk/**'
7-
- '.github/workflows/forcefield-ci.yml'
5+
branches: [main]
86
pull_request:
9-
paths:
10-
- 'sdk/**'
7+
branches: [main]
118

129
jobs:
1310
test:
@@ -24,19 +21,13 @@ jobs:
2421
python-version: ${{ matrix.python-version }}
2522

2623
- name: Install dependencies
27-
working-directory: sdk
28-
run: |
29-
pip install -e ".[dev,ml]"
24+
run: pip install -e ".[dev,ml]"
3025

3126
- name: Run tests
32-
working-directory: sdk
33-
run: |
34-
python -m pytest tests/ -v --tb=short
27+
run: python -m pytest tests/ -v --tb=short
3528

3629
- name: Run selftest
37-
working-directory: sdk
38-
run: |
39-
python -m forcefield selftest
30+
run: python -m forcefield selftest
4031

4132
audit:
4233
runs-on: ubuntu-latest
@@ -49,11 +40,9 @@ jobs:
4940
python-version: '3.12'
5041

5142
- name: Install ForceField
52-
working-directory: sdk
5343
run: pip install -e ".[ml]"
5444

5545
- name: Audit source for hardcoded prompts and PII
56-
working-directory: sdk
5746
run: |
5847
python -m forcefield audit forcefield/ --json > audit-report.json
5948
cat audit-report.json
@@ -63,4 +52,4 @@ jobs:
6352
uses: actions/upload-artifact@v4
6453
with:
6554
name: forcefield-audit-report
66-
path: sdk/audit-report.json
55+
path: audit-report.json

CHANGELOG.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Changelog
2+
3+
All notable changes to ForceField will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.7.2] - 2026-03-27
9+
10+
### Added
11+
12+
- `forcefield init` -- scaffold `.forcefield/constitution.yaml` for vibe coding governance (default/strict/permissive templates)
13+
- `guard.audit_report()` -- generate structured JSON or Markdown audit reports from scan events
14+
- `guard.eval()` -- run security eval suites (116 built-in attacks or custom YAML)
15+
- Constitution engine -- YAML-driven governance rules for files, commands, tools, and content
16+
- `guard.scan_command()` -- scan terminal commands for 22 dangerous patterns
17+
- `guard.scan_filename()` -- scan filenames for 12 security-sensitive patterns
18+
- `guard.protect_path()` / `guard.is_protected()` -- glob-based protected path management
19+
- CLI commands: `forcefield init`, `forcefield eval`, `forcefield scan-command`, `forcefield scan-filename`
20+
- GitHub Action for CI/CD integration (GitHub Marketplace listed)
21+
- pre-commit hook support
22+
- Homebrew tap (`brew tap datasciencetech/forcefield`)
23+
- npm wrapper (`npx forcefield-ai`)
24+
- VS Code extension with Sentinel Mode
25+
- Open VSX Registry listing
26+
- JetBrains Marketplace plugin
27+
28+
### Changed
29+
30+
- Multi-turn session tracker now detects crescendo and probe-then-inject sequences
31+
- Anti-obfuscation normalizer handles zero-width chars, homoglyphs, leetspeak, and mixed scripts
32+
33+
## [0.6.0] - 2026-03-15
34+
35+
### Added
36+
37+
- ONNX ML model for prompt injection detection (95%+ accuracy, 235KB)
38+
- TF-IDF + Random Forest ensemble scoring
39+
- Endpoint security testing (`forcefield test <url>`)
40+
- Cloud hybrid scoring via ForceField Gateway API
41+
- Output moderation (hate speech, violence, credential leaks)
42+
- Chat template validation (`forcefield validate-template`)
43+
- LangChain callback handler (`langchain-forcefield` package)
44+
- LlamaIndex callback handler (`llama-index-forcefield` package)
45+
- OpenAI drop-in wrapper (`ForceFieldOpenAI`)
46+
- FastAPI middleware (`ForceFieldMiddleware`)
47+
48+
## [0.5.0] - 2026-02-28
49+
50+
### Added
51+
52+
- PII detection for 18 types (SSN, credit card, email, phone, IBAN, JWT, API keys, etc.)
53+
- PII redaction with configurable replacements
54+
- Jinja2 chat template backdoor scanning
55+
- Token smuggling and payload splitting detection
56+
- Source file auditing (`forcefield audit <path>`)
57+
- JSON and Markdown report output formats
58+
59+
## [0.4.0] - 2026-02-15
60+
61+
### Added
62+
63+
- Prompt injection detection across 12 categories with 60+ regex patterns
64+
- Jailbreak and role escalation detection (DAN-style attacks)
65+
- Data exfiltration detection (obfuscated destinations, JSON payloads)
66+
- System prompt extraction detection
67+
- Sensitivity levels (low/medium/high/critical) with configurable thresholds
68+
- CLI selftest with 116 built-in attack prompts
69+
- HTTP proxy mode (`forcefield serve`)
70+
71+
## [0.3.0] - 2026-02-01
72+
73+
### Added
74+
75+
- Initial public release
76+
- Core `Guard` class with `scan()`, `redact()`, `moderate()` methods
77+
- Regex-based detection engine (81% detection rate)
78+
- CLI: `forcefield scan`, `forcefield redact`, `forcefield selftest`
79+
- Python 3.9-3.13 support
80+
- Zero external dependencies for core package

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# ForceField
22

3+
[![CI](https://github.com/Data-ScienceTech/forcefield/actions/workflows/forcefield-ci.yml/badge.svg)](https://github.com/Data-ScienceTech/forcefield/actions/workflows/forcefield-ci.yml)
34
[![PyPI version](https://img.shields.io/pypi/v/forcefield.svg)](https://pypi.org/project/forcefield/)
45
[![PyPI downloads](https://img.shields.io/pypi/dm/forcefield.svg)](https://pypi.org/project/forcefield/)
56
[![Python versions](https://img.shields.io/pypi/pyversions/forcefield.svg)](https://pypi.org/project/forcefield/)
67
[![License](https://img.shields.io/pypi/l/forcefield.svg)](https://pypi.org/project/forcefield/)
78
[![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/DataScienceTech.forcefield?label=VS%20Code)](https://marketplace.visualstudio.com/items?itemName=DataScienceTech.forcefield)
89
[![Open VSX](https://img.shields.io/open-vsx/v/DataScienceTech/forcefield?label=Open%20VSX)](https://open-vsx.org/extension/DataScienceTech/forcefield)
10+
[![JetBrains](https://img.shields.io/badge/JetBrains-Marketplace-orange?logo=jetbrains)](https://plugins.jetbrains.com/plugin/com.datasciencetech.forcefield)
11+
[![npm](https://img.shields.io/npm/v/forcefield-ai?label=npm)](https://www.npmjs.com/package/forcefield-ai)
912
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/Data-ScienceTech/forcefield)
1013
[![Detection Rate](https://img.shields.io/badge/detection-100%25_with_ML-brightgreen.svg)](https://github.com/Data-ScienceTech/forcefield)
1114
[![Regex Only](https://img.shields.io/badge/regex_only-81%25-blue.svg)](https://github.com/Data-ScienceTech/forcefield)

0 commit comments

Comments
 (0)