Releases: iolairus/borderlint
Releases · iolairus/borderlint
Release list
v1.14.1
- KB refresh (Aug 2026 drift resolution) —
fw-*provenance patterns for Fireworks redistributions on Azure AI Foundry (FW-DeepSeek/GLM/Kimi/MiniMax →cn; FW-Nemotron →usNVIDIA; FW-Inkling →usFireworks AI); OpenAIdaybreak-andchat-latestfamilies; Cognition AI as a new provider (api.cognition.ai,swe-models →us); Orpheus TTS (Canopy Labs →us); Nimbleway web-data/search API (sdk.nimbleway.com→il); Bedrock AgentCore runtime hosts now region-resolve via the aws scheme (bedrock-agentcore-runtime.ap-east-1…→hk). All blocs assigned by hand;kb_drift.pyreports nothing actionable.
v1.14.0
--format suricata— the provider KB and residency policy compiled into a Suricata TLS-SNI alert ruleset for network-level detection of disallowed AI egress: one rule per KB endpoint host whose per-host jurisdiction falls outside the policy's expanded allow-list (uk→gb,GBAhonoured); region-selectable clouds always alert, marked region-dependent; without a policy every known AI endpoint alerts (inventory visibility). Deterministic sids from 1900000, provider id and jurisdiction inmsgandmetadata, alert posture with a documenteddropconversion, non-gating export (exit 0). Derived from the KB and policy — not scan findings — so runtime egress the static scan can't see (env-configured base URLs, agent tool calls, providers the codebase doesn't use yet) still trips an alert at the network boundary. Generated rulesets load 110/110 clean in Suricata 8.0.6.- Docs — README restructured around a getting-started path: install → inventory scan →
init→ gated scan with real output up front; formats table; MCP and agent integrations merged into one section.
v1.13.0
- MCP config scanning —
.mcp.json,claude_desktop_config.json,.cursor/mcp.json, and.vscode/mcp.jsonare parsed structurally as a first-class detection surface: onemcp_serverfinding per configured server. Remote (url) servers resolve their host against the provider KB (loopback →local, env-templated →unknown); stdio servers resolve their package/binary/image against the new bundledmcp_servers.jsonmap (npm version suffixes stripped, docker plumbing skipped); anything unmapped surfaces as an explicitunknown. A parsed config is claimed by the structural parser — no duplicate endpoint detections — and malformed JSON falls back to ordinary line scanning. Findings flow through the existing policy/waiver/report machinery with no new flags: the same residency policy that gates your code now gates your agent stack. - KB — six service providers added (GitHub, Slack, Google Drive, Brave Search, Notion, Sentry), including Sentry's hosted remote MCP endpoint
mcp.sentry.dev, found by validating against real-world configs (getsentry/sentry-mcp, apache/skywalking-banyandb, Doist/todoist-mcp).
v1.12.0
--explainflag — plain-language explanations and remediation hints per finding onborderlint scan: the text report gains one→line per reason stating which provider resolves where, why that is disallowed for the data class, and what to change; the JSON report gains anexplanationfield per finding (absent without the flag, so existing consumers see no schema change). Deterministic template-driven text, no LLM in the loop; advisory only — exit codes and gating semantics untouched.- Claude plugin —
versionfield inplugin.jsonsoclaude plugin validate --strictpasses clean. - KB drift report — stamped with the run date for a visible weekly heartbeat.
v1.11.0
- C# / .NET detection — fourth scanned language:
dotnetKB key matched case-sensitively onusingdirectives (plain/global/static/alias) at dot boundaries. - Aliyun AI coverage — DashScope Java SDK (
com.alibaba.dashscope), PAI-EAS regional endpoints with a newaliyunregion scheme (mainland cities →cn,cn-hongkong→hk, numbered international tokens, unmapped →unknown), and ModelScope. - Huawei ModelArts (MaaS) coverage — 100th provider:
modelarts-maas.comhosts with a newhuaweiregion scheme resolving the AWS-token homonym trap (Huaweiap-southeast-1= CN-Hong Kong,me-east-1= Riyadh); map verified against Huawei's 33-region table; unmapped tokens degrade to an explicitunknown. SDK v3 Pangu/ModelArts packages across all four languages; sovereigntycn. - Claude Code plugin — the
borderlint-checkskill is now an installable plugin (/plugin install borderlint@borderlint), making agents run borderlint before adding an AI dependency. - KB drift resolution — chirp and muse model families curated,
metaroute alias recorded. - Docs — capabilities list refresh; AI-assistance disclosure (residency / sovereignty / provenance of the agents used to build borderlint).
v1.10.0
borderlint init— interactive wizard that scaffoldsresidency.json: home-base and data-class interview, inventory-grounded jurisdiction walk, overwrite guard (--force), non-interactive--home/--classesfor CI.--format badge— shields.io endpoint JSON for READMEs and CI dashboards: green clean, red failures, yellow warn-only, blue inventory; non-gating export.
v1.9.0
- Java/Kotlin detection —
.java/.kt/.ktsimports resolved via the new per-providerjvmKB key (official OpenAI, Anthropic, Bedrock, Vertex, Azure OpenAI, Gemini, Cohere, SageMaker, ollama4j SDKs — incl. the AWS SDK for Kotlin namespaces), with LangChain4j and Spring AI as runtime-routed aggregators. Endpoint literals, OpenAI-compatible call paths, config keys, inline waivers, and model-reference binding all apply to JVM sources. - Validated against real codebases (Vespa, Pastefy, langchain4j-examples, spring-ai-examples, anthropic-sdk-java, openai-java, aws-doc-sdk-examples) before release.
v1.8.0
--format html— one self-contained, injection-safe report for privacy/compliance review (export semantics: exits 0)- Browsable KB at https://iolairus.github.io/borderlint/ — 90 providers + 71 model developers, regenerated on every KB change
- Agent integrations — Claude Code and Cursor rules that run borderlint before the agent adds an AI dependency (
integrations/)
v1.1.4
v1.1.3
APAC/EMEA home locations.
A declared home_location of jp, kr, sg, au, uk (=gb), eu, or my now surfaces its data-protection regime tag and cross-border mechanism reference for a flagged flow — APPI, PIPA, PDPA (SG s.26 / MY s.129), Australia APP 8, the UK IDTA, and GDPR. eu surfaces the GDPR reference (GDPR stays a reference, never a regime tag). ae/in/id are researched but deferred until their instruments are operational. README/CAPABILITIES updated.