Skip to content

Releases: iolairus/borderlint

v1.14.1

Choose a tag to compare

@iolairus iolairus released this 21 Aug 07:51
6e04f67
  • KB refresh (Aug 2026 drift resolution)fw-* provenance patterns for Fireworks redistributions on Azure AI Foundry (FW-DeepSeek/GLM/Kimi/MiniMax → cn; FW-Nemotron → us NVIDIA; FW-Inkling → us Fireworks AI); OpenAI daybreak- and chat-latest families; Cognition AI as a new provider (api.cognition.ai, swe- models → us); Orpheus TTS (Canopy Labs → us); Nimbleway web-data/search API (sdk.nimbleway.comil); 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.py reports nothing actionable.

v1.14.0

Choose a tag to compare

@iolairus iolairus released this 15 Aug 14:57
dd204b2
  • --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 (ukgb, GBA honoured); 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 in msg and metadata, alert posture with a documented drop conversion, 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

Choose a tag to compare

@iolairus iolairus released this 13 Aug 12:56
7b8f064
  • MCP config scanning.mcp.json, claude_desktop_config.json, .cursor/mcp.json, and .vscode/mcp.json are parsed structurally as a first-class detection surface: one mcp_server finding 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 bundled mcp_servers.json map (npm version suffixes stripped, docker plumbing skipped); anything unmapped surfaces as an explicit unknown. 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

Choose a tag to compare

@iolairus iolairus released this 11 Aug 06:49
7b15841
  • --explain flag — plain-language explanations and remediation hints per finding on borderlint 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 an explanation field 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 pluginversion field in plugin.json so claude plugin validate --strict passes clean.
  • KB drift report — stamped with the run date for a visible weekly heartbeat.

v1.11.0

Choose a tag to compare

@iolairus iolairus released this 19 Jul 14:35
1026ca3
  • C# / .NET detection — fourth scanned language: dotnet KB key matched case-sensitively on using directives (plain/global/static/alias) at dot boundaries.
  • Aliyun AI coverage — DashScope Java SDK (com.alibaba.dashscope), PAI-EAS regional endpoints with a new aliyun region scheme (mainland cities → cn, cn-hongkonghk, numbered international tokens, unmapped → unknown), and ModelScope.
  • Huawei ModelArts (MaaS) coverage — 100th provider: modelarts-maas.com hosts with a new huawei region scheme resolving the AWS-token homonym trap (Huawei ap-southeast-1 = CN-Hong Kong, me-east-1 = Riyadh); map verified against Huawei's 33-region table; unmapped tokens degrade to an explicit unknown. SDK v3 Pangu/ModelArts packages across all four languages; sovereignty cn.
  • Claude Code plugin — the borderlint-check skill 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, meta route alias recorded.
  • Docs — capabilities list refresh; AI-assistance disclosure (residency / sovereignty / provenance of the agents used to build borderlint).

v1.10.0

Choose a tag to compare

@iolairus iolairus released this 13 Jul 13:21
707e782
  • borderlint init — interactive wizard that scaffolds residency.json: home-base and data-class interview, inventory-grounded jurisdiction walk, overwrite guard (--force), non-interactive --home/--classes for 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

Choose a tag to compare

@iolairus iolairus released this 13 Jul 06:20
2be497b
  • Java/Kotlin detection.java/.kt/.kts imports resolved via the new per-provider jvm KB 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

Choose a tag to compare

@iolairus iolairus released this 13 Jul 03:30
a74778e
  • --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

Choose a tag to compare

@iolairus iolairus released this 30 Jun 13:11

Docs-only release: refreshes the PyPI long_description with the repositioned README (APAC/EMEA data-residency linter with first-class HK/GBA support). Functionally identical to 1.1.3.

v1.1.3

Choose a tag to compare

@iolairus iolairus released this 30 Jun 13:00

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.